abarret / multiphase-stokes

Solver a mixture of fluids based on IBAMR
1 stars 0 forks source link

Implement physical boundary conditions #56

Closed bindi-nagda closed 7 months ago

bindi-nagda commented 1 year ago

Currently, we are employing bi-periodic boundary conditions. We should provide the ability to implement physical boundary conditions as well. We need to figure out how to set up these up in the solver and smoother.

abarret commented 1 year ago

The main roadblock here is the smoother. At physical boundaries, the size of the system we solve in the smoother changes. We'll need a bunch of if statements in the smoother to handle this, so it's a fairly tedious thing to implement. It might be easier to handle in something like C++ which has a more flexible API for varying system sizes. If we replace the smoother with a PETSc smoother, then physical boundaries can be baked into the matrix.

Everywhere else, physical boundaries are just a matter of passing around RefinePatchStrategy and RobinBcCoefStrategy objects and giving them to the ghost filling routines.

abarret commented 9 months ago

An initial implementation of Dirichlet BC's is in the branch physical_bcs. There's something off with the box relaxation operator: it's use currently leads to failure to converge spatially.

This does not change the application of the smoother, which may be the problem. I think the box system needs to be adjusted.