.. _PorousSolids:
############################################
Porous Solids
############################################
Overview
========================
Simulation of fluid flow in porous media and of poromechanics,
requires to define, along with fluid properties, the hydrodynamical properties of
the solid matrix. Thus, for porous media flow and and poromecanical simulation in GEOS,
two types of composite constitutive models can be defined to specify the characteristics
of a porous material: (1) a `CompressibleSolid` model, used for flow-only simulations and which
assumes that all poromechanical effects can be represented by the pressure dependency of the
porosity; (2) a `PorousSolid` model which, instead, allows to couple any solid model with
a `BiotPorosity` model and to include permeability's dependence on the mechanical response.
Both these composite models require the names of the solid, porosity and permeability models
that, combined, define the porous material. The following sections outline how these models can be
defined in the Constitutive block of the xml input files and which type of submodels they
allow for.
CompressibleSolid
========================
This composite constitutive model requires to define a `NullModel` as solid model (since
no mechanical properties are used), a `PressurePorosity` model and any type of `Permeability` model.
To define this composite model the keyword `CompressibleSolid` has to be appended to the name
of the permeability model of choice, as shown in the following example for the `ConstantPermeability` model.
.. code-block:: xml
PorousSolid
======================
To run poromechanical problems, the total stress is decomposed into an "effective stress" (driven by mechanical deformations) and a pore fluid
pressure component, following the `Biot theory of poroelasticity `__.
For single-phase flow, or multiphase problems with no capillarity, this decomposition reads
.. math::
\sigma_{ij} = \sigma\prime_{ij} - b p \delta_{ij}
where :math:`\sigma_{ij}` is the :math:`ij` component of the total stress tensor,
:math:`\sigma\prime_{ij}` is the :math:`ij` component of the effective (Cauchy) stress tensor,
:math:`b` is Biot's coefficient,
:math:`p` is fluid pressure,
and :math:`\delta` is the Kronecker delta.
The `PorousSolid` models simply append the keyword Porous in front of the solid model they contain,
e.g., PorousElasticIsotropic, PorousDruckerPrager, and so on. Additionally, they require to
define a `BiotPorosity` model and a `ConstantPermeability` model. For example, a Poroelastic material
with a certain permeability can be defined as
.. code-block:: xml
Note that any of the previously described solid models is used by the `PorousSolid` model
to compute the effective stress, leading to either poro-elastic, poro-plastic, or poro-damage
behavior depending on the specific model chosen.