Investigating the Robin conditions in PorePy.
All the simulations have a west Dirichlet boundary of value 1. The other boundaries are either:
- All zero Dirichlet
- All zero Neumann
- All zero Robin in the limit case Dirichlet or Neumann
The Robin conditions are on the form: sigma * n + alpha * u = G. The limit case where alpha goes to infinity is a Dirichlet condition, and when alpha goes to zero it is a Neumann condition.
The intention is to check if the Robin condition implementation honors these limit cases as expected.
-
In the case of a huge alpha (I chose 5e12), we should see similar simulation results as when Dirichlet conditions are chosen for the remaining boundaries. See here for simplex and here for cartesian grid.
-
In the case of a small alpha (I chose alpha = 0 for simplex grids, and alpha = 0 and alpha = 0.000001 for cartesian grids), we should see similar simulation results as when Neumann are chosen for the remaining boundaries. Alpha = 0 worked nicely for simplex grids, and not as well for cartesian. See here for simplex, here for cartesian (alpha = 0) and here for cartesian (alpha = 0.000001).
Note: The cartesian grid with alpha = 0 seemingly only runs for cell_size = 0.05 and bigger in a unit square. Matrix is reported singular for e.g. 0.025.