GEOS
GEOS copied to clipboard
Implemented initialization elastic time step for coupled problems
This PR implements the necessary components to perform the initialization time step in Discussion #1926.
That is, assembling and solving the following system:
delta x = - J^-1 R
where the Jacobian looks like
| J_uu J_up J_us |
J = | I |
| I |
and the residual has been modified appropriately to fix pressure and compositions at their initial values.
To do that, I needed:
- A function in
CompositionalMultiphaseBasethat usesFieldSpecificationsfunctions to modify the flow (J_p* and J_s*) blocks of the Jacobian matrix appropriately (similar to Dirichlet BC). - A task to trigger the call of this function.
and
- An MGR recipe that can solve the modified system: flow vars eliminated first, and then BoomerAMG on the coarse grid (displacements).
- A task to trigger the switch in MGR recipe.
I only implemented this for the MultiphasePoromechanicsSolver.
This PR is here mostly to have something concrete to discuss (but it seems fully working and usable)