porepy.models.poromechanics module
Coupling of mass and momentum balance to obtain poromechanics equations.
The module only contains what is needed for the coupling, the two individual subproblems are defined elsewhere.
The main changes to the equations are achieved by changing the constitutive laws for porosity and stress. The former aquires a pressure dependency and an additional \(lpha\) ablacdotmathbf{u} term, while the latter is modified to include a isotropic pressure term \(lpha p \mathbf{I}\).
- Suggested references (TODO: add more, e.g. Inga’s in prep):
Coussy, 2004, https://doi.org/10.1002/0470092718.
Garipov and Hui, 2019, https://doi.org/10.1016/j.ijrmms.2019.104075.
- class BoundaryConditionsMechanicsTimeDependent[source]
Bases:
BoundaryConditionsMomentumBalance
- bc_values_mechanics(subdomains)[source]
Boundary values for mechanics.
- class BoundaryConditionsPoromechanics[source]
Bases:
BoundaryConditionsSinglePhaseFlow
,BoundaryConditionsMechanicsTimeDependent
Combines mass and momentum balance boundary conditions.
Note
The mechanical boundary conditions are differentiated wrt time in the div_u term. Thus, time dependent values must be defined using
TimeDependentArray
.To modify the values of the mechanical boundary conditions, the user must redefine the method
time_dependent_bc_values_mechanics()
, which is called by the methodsinitial_condition()
andbefore_nonlinear_loop()
to update the boundary conditions in data[pp.STATE] and data[pp.STATE][pp.ITERATE].
- class ConstitutiveLawsPoromechanics[source]
Bases:
DisplacementJumpAperture
,BiotCoefficient
,PressureStress
,PoroMechanicsPorosity
,DarcysLaw
,DimensionReduction
,AdvectiveFlux
,FluidMobility
,ConstantPermeability
,FluidDensityFromPressure
,ConstantViscosity
,LinearElasticSolid
,FracturedSolid
,FrictionBound
Class for the coupling of mass and momentum balance to obtain poromechanics equations.
- class EquationsPoromechanics[source]
Bases:
MassBalanceEquations
,MomentumBalanceEquations
Combines mass and momentum balance equations.
- class Poromechanics(params=None)[source]
Bases:
EquationsPoromechanics
,VariablesPoromechanics
,ConstitutiveLawsPoromechanics
,BoundaryConditionsPoromechanics
,SolutionStrategyPoromechanics
,ModelGeometry
,DataSavingMixin
Class for the coupling of mass and momentum balance in a mixed-dimensional porous medium.
- Parameters:
params (Optional[dict])
- class SolutionStrategyPoromechanics(params=None)[source]
Bases:
SolutionStrategyTimeDependentBCs
,SolutionStrategySinglePhaseFlow
,SolutionStrategyMomentumBalance
Combines mass and momentum balance solution strategies.
This class has a diamond structure inheritance. The user should be aware of this and take method resolution order into account when defining new methods.
TODO: More targeted (re-)discretization.
- Parameters:
params (Optional[dict])
- set_discretization_parameters()[source]
Set parameters for the subproblems and the combined problem.
- Return type:
None
- mdg: pp.MixedDimensionalGrid
Mixed dimensional grid.
- class SolutionStrategyTimeDependentBCs(params=None)[source]
Bases:
SolutionStrategy
- Parameters:
params (Optional[dict])
- initial_condition()[source]
Set initial condition for the coupled problem.
The initial condition for the coupled problem is the initial condition for the subproblems.
- Return type:
None
- update_time_dependent_ad_arrays(initial)[source]
Update the time dependent arrays for the mechanics boundary conditions.
- Parameters:
initial (bool) – If True, the array generating method is called for both state and iterate. If False, the array generating method is called only for the iterate, and the state is updated by copying the iterate.
- Return type:
None
- class VariablesPoromechanics[source]
Bases:
VariablesSinglePhaseFlow
,VariablesMomentumBalance
Combines mass and momentum balance variables.