fix: enable FullyImplicit for SinglePhaseReservoirPoromechanicsConformingFractures#3851
fix: enable FullyImplicit for SinglePhaseReservoirPoromechanicsConformingFractures#3851paveltomin merged 13 commits intodevelopfrom
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR enables the FullyImplicit feature for SinglePhaseReservoirPoromechanicsConformingFractures by refactoring the assembly system architecture. The changes move common assembly logic to the base PoromechanicsSolver class and update derived classes to leverage this shared implementation.
Key changes:
- Moves assembleSystem implementation from derived classes to PoromechanicsSolver base class
- Adds virtual assembleElementBasedTerms method for derived class customization
- Updates error messages to use consistent single quote formatting
- Adds getDiscretizationName override for coupled reservoir and wells
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| SinglePhasePoromechanicsConformingFractures.hpp | Adds assembleSystem override and removes private method declaration |
| SinglePhasePoromechanicsConformingFractures.cpp | Implements template specialization for SinglePhaseReservoirAndWells assembly |
| SinglePhasePoromechanics.hpp | Updates assembleSystem to use base class implementation |
| SinglePhasePoromechanics.cpp | Removes duplicate assembly logic, delegates to base class |
| PoromechanicsSolver.hpp | Adds common assembleSystem implementation and virtual assembleElementBasedTerms |
| MultiphasePoromechanics.hpp | Updates to use base class assembleSystem implementation |
| MultiphasePoromechanics.cpp | Removes duplicate assembly logic, delegates to base class |
| CoupledReservoirAndWellsBase.hpp | Adds virtual getDiscretizationName override |
| PhysicsSolverBase.hpp | Makes getDiscretizationName virtual |
| MeshObjectPath.cpp | Updates error message to use single quotes |
| testGroupPath.cpp | Updates test expectation for new error message format |
| Group.hpp | Updates error messages to use single quotes for consistency |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanicsConformingFractures.hpp
Show resolved
Hide resolved
src/coreComponents/physicsSolvers/multiphysics/SinglePhasePoromechanics.cpp
Show resolved
Hide resolved
|
Ready for review |
dkachuma
left a comment
There was a problem hiding this comment.
Looks good to me. This is also done for multiphase, right?
Once wells are enabled for multiphase, similar version of assembleSystem function needs to be added there, not done yet in this PR |
| Base::postInputInitialization(); | ||
|
|
||
| // assume that reservoir solver discretization is the primary one | ||
| this->m_discretizationName = reservoirSolver()->getDiscretizationName(); |
There was a problem hiding this comment.
this is first fix
|
|
||
| Base::assembleSystem( time_n, dt, domain, dofManager, localMatrix, localRhs ); | ||
|
|
||
| // assemble well contributions |
There was a problem hiding this comment.
this is second fix
|
@castelletto1 @OmarDuran @frankfeifan @Guotong-Ren review please |
castelletto1
left a comment
There was a problem hiding this comment.
Looks good to me, thanks.
should fix #3850
fixes are:
the rest of the changes is cleanup - move code to parent class where possible to avoid duplication