Skip to content
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

Open
wants to merge 45 commits into
base: develop
Choose a base branch
from

Conversation

paveltomin
Copy link
Contributor

@paveltomin paveltomin commented Oct 12, 2024

and call it with poromechanics solver pointer except for hydrofrac case

@paveltomin paveltomin added the type: feature New feature or request label Oct 12, 2024
@paveltomin paveltomin self-assigned this Oct 12, 2024
@paveltomin paveltomin added the ci: run integrated tests Allows to run the integrated tests in GEOS CI label Oct 12, 2024
@@ -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 );
Copy link
Contributor Author

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

Copy link
Contributor

@tjb-ltk tjb-ltk Oct 14, 2024

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 ?

Copy link
Contributor Author

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

// Note: for now, we assume that the reservoir is in a single-phase state at initialization

@paveltomin paveltomin requested a review from tjb-ltk October 12, 2024 16:31
@paveltomin paveltomin changed the title feature: make possible to use solid mechanics solver to perform poromechanics initialization feat: make possible to use solid mechanics solver to perform poromechanics initialization Oct 12, 2024
@@ -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 )
Copy link
Member

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.

Copy link
Contributor

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.

@rrsettgast
Copy link
Member

@paveltomin Why can the mechanics solver not be called directly from the poromechanics initialization? I am missing something.

@paveltomin
Copy link
Contributor Author

@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.
When mechanics solver is called directly it should know that the whole problem is a poromechanics problem, not pure mechanics.

Base automatically changed from pt/flow-init to develop December 3, 2024 15:36
@CusiniM CusiniM requested a review from wrtobin as a code owner December 3, 2024 15:36
@paveltomin paveltomin added the ci: run integrated tests Allows to run the integrated tests in GEOS CI label Dec 3, 2024
@paveltomin paveltomin added the flag: requires rebaseline Requires rebaseline branch in integratedTests label Dec 4, 2024
@paveltomin
Copy link
Contributor Author

new baselines are needed but no real results changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flag: requires rebaseline Requires rebaseline branch in integratedTests type: feature New feature or request
Projects
None yet
3 participants