Flow problem with no Dirichlet bc #597
Replies: 5 comments 7 replies
-
It is not present in the core, but we have talked about it on various occasions, e.g. while working on solvers based on domain decomposition, where fractures not in touch with a Dirichlet boundary form floating subdomains. So in principle, this is definitely of interest; of course it depends a bit on how the implementation ends up. How do you plan to do it - on the matrix level or discretization level? |
Beta Was this translation helpful? Give feedback.
-
I don't have the implementation yet, but I was thinking to introduce a new discretization that might be added to fix the value with its appropriate Lagrange multiplier. This probably fit well in the framework of pp. |
Beta Was this translation helpful? Give feedback.
-
after some thoughts, here's my strategy (I assume one single grid so far)
|
Beta Was this translation helpful? Give feedback.
-
If someone is interested, here's a possible solution A, b = assembler.assemble_matrix_rhs()
A, b = fix_integral_of_variable(A, b, assembler._dof_manager, variable, gb.get_grids())
solution = sps.linalg.spsolve(A, b)[:-1]
def fix_integral_of_variable(A, b, dof_manager, variables, gs):
variables = np.atleast_1d(variables).tolist()
dof_block = dof_manager.grid_and_variable_block_range(gs, variables)
values = np.zeros((len(variables), dof_manager.num_dofs()))
for (g, v), dof in dof_block.items():
values[variables.index(v), np.arange(*dof)] = g.cell_volumes
new_A = sps.bmat([[A, values.T], [values, None]], format=A.getformat())
new_b = np.append(b, [0.]*values.shape[0])
return new_A, new_b Should we put it in the core of porepy? |
Beta Was this translation helpful? Give feedback.
-
Not sure, but this could potentially be useful. @IvarStefansson, what do you think? |
Beta Was this translation helpful? Give feedback.
-
Dear all, I'm planning to implement the condition (zero/or given mean pressure) to fix the uniqueness of the solution in case of only Neumann bc flow problem. Is it already present? If not, is it something you are interested to have in the pp core? Let me know, thanks.
Beta Was this translation helpful? Give feedback.
All reactions