feat: MGR strategy for single phase flow + ALM poromechanics - #4125
Conversation
… into jafranc/feat/ALMreciepe
This reverts commit b877903.
…csConformingFracturesALM-FullyImplicit
…csConformingFracturesALM-FullyImplicit
…ciepe # Conflicts: # src/coreComponents/linearAlgebra/utilities/LinearSolverParameters.hpp
- The mechanics solver replaced the existing flow sparsity pattern, discarding flow and custom FIM couplings. - Pressure–bubble couplings checked for the nonexistent wrapper bubbleElementsList instead of the registered bubbleCells key. Fixed both by unioning the flow and mechanics patterns before adding FIM couplings, and by using the correct wrapper key
…phase' into jafranc/feat/ALMreciepe
jafranc
left a comment
There was a problem hiding this comment.
Great work @victorapm 👍
Nice utilities introduced here in addition to the core enabling of MGR for 1p-ALM contact
jhuang2601
left a comment
There was a problem hiding this comment.
Thanks @victorapm for adding mgr recipe for ALM with FIM coupling.
It is working well for two analytical examples (slanted fault and vertical fault).
frankfeifan
left a comment
There was a problem hiding this comment.
Everything looks good. Thanks!
| void HydrofractureSolver< POROMECHANICS_SOLVER >::setUpDflux_dApertureMatrix( DomainPartition & domain, | ||
| DofManager const & dofManager, | ||
| CRSMatrix< real64, globalIndex > & localMatrix ) | ||
| void HydrofractureSolver< POROMECHANICS_SOLVER >::setUpDflux_dApertureMatrix( DomainPartition & domain ) |
There was a problem hiding this comment.
setUpDflux_dApertureMatrix now exists in three solvers, and their differences look small. I think it is possible to do some refactor (maybe in another PR) and pull into a share utility hearder at some point to save duplicated lines.
There was a problem hiding this comment.
Thanks Frank, good point. @jafranc is working on refactoring the LM/ALM codes, maybe your suggestion can go in?
There was a problem hiding this comment.
Thanks for letting me know! I'll port this comment there.
|
Needs code owner review and we're ready to merge |
|
@OmarDuran thanks for taking a look |
OmarDuran
left a comment
There was a problem hiding this comment.
Great work @victorapm, I left one minor suggestion and one potential suggestion.
…lver.cpp Co-authored-by: Omar Duran <oduran@stanford.edu>
Co-authored-by: Omar Duran <oduran@stanford.edu>
Completes the fully implicit single-phase poromechanics + conforming-fractures ALM path started in #3961 and the MGR recipe work in #3962.
On top of #3961 / #3962, this PR adds:
setSparsityPatternbuilds the exact union of flow and mechanics patterns (incl. well/perforation blocks for reservoir-and-wells)dR/dAperturerow offsets throughassembleHydrofracFluxTerms(fixes multi-body row aliasing); reject unsupported multi-target setupssinglePhasePoromechanicsConformingFracturesALMReservoirFVMMGR strategy that eliminates the well block on a third levelappendSparsityPatternutility and tighter ALM MGR field/thermal guards