porepy.models.thermoporomechanics module

Coupling of energy, mass and momentum balance to obtain thermoporomechanics equations.

The module only contains what is needed for the coupling, the three 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 and temperature dependency and an additional \(lpha abla\cdot\mathbf{u}\) term, while the stress is modified to include isotropic pressure and temperature terms \(lpha p \mathbf{I}+ eta T \mathbf{I}\).

Suggested references (TODO: add more, e.g. Inga’s in prep, ppV2):
class BoundaryConditionsThermoporomechanics[source]

Bases: BoundaryConditionsEnergyBalance, BoundaryConditionsSinglePhaseFlow, BoundaryConditionsMechanicsTimeDependent

Combines energy, 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 :class:pp.ad.TimeDependentArray. This is as of yet untested.

class ConstitutiveLawsThermoporomechanics[source]

Bases: DisplacementJumpAperture, BiotCoefficient, ThermalExpansion, ThermoPressureStress, ThermoPoroMechanicsPorosity, FluidDensityFromPressureAndTemperature, EnthalpyFromTemperature, FouriersLaw, ThermalConductivityLTE, DarcysLaw, DimensionReduction, AdvectiveFlux, FluidMobility, ConstantPermeability, ConstantViscosity, LinearElasticSolid, FracturedSolid, FrictionBound

Class for the coupling of energy, mass and momentum balance to obtain thermoporomechanics equations.

stress(subdomains)[source]

Thermo-poromechanical stress operator.

Parameters:

subdomains (list[Grid]) – List of subdomains where the stress is defined.

Returns:

Operator for the stress.

Return type:

Operator

class EquationsThermoporomechanics[source]

Bases: EnergyBalanceEquations, MassBalanceEquations, MomentumBalanceEquations

Combines energy, mass and momentum balance equations.

set_equations()[source]

Set the equations for the poromechanics problem.

Call all parent classes’ set_equations methods.

class SolutionStrategyThermoporomechanics(params=None)[source]

Bases: SolutionStrategyTimeDependentBCs, SolutionStrategyEnergyBalance, SolutionStrategySinglePhaseFlow, SolutionStrategyMomentumBalance

Combines mass and momentum balance solution strategies.

This class has an extended diamond structure inheritance, i.e., all parent classes inherit from SolutionStrategy. The user should be aware of this and take method resolution order into account when defining new methods.

TODO: More targeted (re-)discretization. See parent classes and other combined models.

Parameters:

params (Optional[dict])

set_discretization_parameters()[source]

Set parameters for the subproblems and the combined problem.

Return type:

None

class Thermoporomechanics(params=None)[source]

Bases: SolutionStrategyThermoporomechanics, EquationsThermoporomechanics, VariablesThermoporomechanics, BoundaryConditionsThermoporomechanics, ConstitutiveLawsThermoporomechanics, ModelGeometry, DataSavingMixin

Class for the coupling of energy, mass and momentum balance in a mixed-dimensional porous medium.

Parameters:

params (Optional[dict])

class VariablesThermoporomechanics[source]

Bases: VariablesEnergyBalance, VariablesSinglePhaseFlow, VariablesMomentumBalance

Combines mass and momentum balance variables.

create_variables()[source]

Set the variables for the poromechanics problem.

Call all parent classes’ set_variables methods.