-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: make possible to use solid mechanics solver to perform poromechanics initialization #3396
base: develop
Are you sure you want to change the base?
Conversation
inputFiles/poromechanics/PoroElastic_staircase_co2_3d_fim_new.xml
Outdated
Show resolved
Hide resolved
@@ -118,6 +114,10 @@ class PoromechanicsSolver : public CoupledSolver< FLOW_SOLVER, MECHANICS_SOLVER | |||
GEOS_FMT( "{} {}: The attribute `{}` of the flow solver `{}` must be set to 1 since the poromechanics solver is thermal", | |||
this->getCatalogName(), this->getName(), FlowSolverBase::viewKeyStruct::isThermalString(), this->flowSolver()->getName() ), | |||
InputError ); | |||
|
|||
DomainPartition & domain = this->template getGroupByPath< DomainPartition >( "/Problem/domain" ); | |||
flowSolver()->initialize( domain ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to call this first to initialize porosity and densities
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm surprised that initialization of these quantities can be called from a constructor.... versus in some post process routine... it's good to have explicit naming for initialization... I'm assuming this is capillary gravity equilibrium for the reservoir solver ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's a bunch of things including hydrostatic equilibrium
multiphase equilibration is not yet supported, see
GEOS/src/coreComponents/physicsSolvers/fluidFlow/CompositionalMultiphaseBase.cpp
Line 1153 in e601fad
// Note: for now, we assume that the reservoir is in a single-phase state at initialization |
src/coreComponents/physicsSolvers/multiphysics/PoromechanicsSolver.hpp
Outdated
Show resolved
Hide resolved
@@ -1055,7 +1056,7 @@ void SolidMechanicsLagrangianFEM::assembleSystem( real64 const GEOS_UNUSED_PARAM | |||
MeshLevel & mesh, | |||
arrayView1d< string const > const & regionNames ) | |||
{ | |||
if( m_isFixedStressPoromechanicsUpdate ) | |||
if( m_isFixedStressPoromechanicsUpdate || m_performStressInitialization ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not that this PR is the introduction of this, but the single physics solver shouldn't know about the coupled physics solver.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the case of coupled reservoir and well solver, where the event section only activates the reservoir solver, doesn't the well solver need to know that reservoir solver is assuming that well variables are constant. the well solver knows its coupled to the reservoir via perforations.
@paveltomin Why can the mechanics solver not be called directly from the poromechanics initialization? I am missing something. |
I am not sure I understood you correctly, sorry. |
new baselines are needed but no real results changes |
and call it with poromechanics solver pointer except for hydrofrac case