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? |
|
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. |
|
after some thoughts, here's my strategy (I assume one single grid so far)
|
|
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_bShould we put it in the core of porepy? |
|
Not sure, but this could potentially be useful. @IvarStefansson, what do you think? |
Uh oh!
There was an error while loading. Please reload this page.
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.
All reactions