[Doc] Document the dispersion transport parametererizations

parent 170aa99c
......@@ -4,11 +4,12 @@ Soil Parameterization
Specifying the domain properties requires input of the
:doc:`soil architecture <grid>`
(in relation to the grid) and of the soil parameters. The latter incorporate
the *subscale physics*, the representation of the soil hydraulic properties
below the REV scale. DORiE requires several input files for retrieving this
information, depending on the type of grid used for the computation.
the *subscale physics*, the representation of the soil hydraulic and solute
properties below the REV scale. DORiE requires several input files for
retrieving this information, depending on the type of grid used for the
computation.
A YAML_ parameter file is always required. It specifies a set of soil
A YAML_ parameter file is always required. It specifies a set of
parameterizations, along with a medium index. This index is used to reference
the medium specified in the architecture files, or with the "global" indices
given in the config file.
......@@ -24,13 +25,14 @@ YAML Parameter File
-------------------
This file is used to specify the parameterization for each medium inside the
simulated domain. It follows a simple hierarchical syntax. The file path and
name must be specified via the ``parameters.file`` key of the
name must be specified via the ``<model>.parameters.file`` key of the
:doc:`config file <config-file>`.
The top-level mapping must contain the key ``volumes``. This key contains a
sequence of arbitrary parameterization names. These, in turn, contain the
parameterization ``type``, the medium ``index``, and the actual ``parameters``.
The medium index must be an **integer**.
sequence of arbitrary parameterization names. These, in turn, contain the
medium ``index``, and the model type (i.e. ``ricards`` and ``transport``).
The medium index must be an **integer**. Each model key contain the
parameterization ``type``, and the actual ``parameters``.
Heterogeneities throughout the entire domain are set via the top level key
``scaling``. It must contain a supported scaling ``type``, which may default
......@@ -38,6 +40,9 @@ to ``none``. In case an actual scaling is to be applied, the section must
contain the key ``data``, which specifies the datasets required for this type
of scaling.
.. warning:: Transport parameters like *porosity* or *characteristic lenght*
are not currently affected by small scale heterogoeneities.
Every ``scaling_section`` has the same keys: The H5 filepath is given by
``file``, and the internal dataset path by ``dataset``. You can then choose an
``interpolation`` method for the dataset, which requires you to insert values
......@@ -51,12 +56,17 @@ shapes.
volumes:
<name-0>:
type: <string>
index: <int>
parameters:
<param-name-0>: <float>
# more parameters ...
richards:
type: <string>
parameters:
<param-name-0>: <float>
# more parameters ...
transport:
type: <string>
parameters:
<param-name-0>: <float>
# more parameters ...
# more volumes ...
scaling:
......@@ -74,9 +84,9 @@ shapes.
You find a documentation of the parameterizations implemented in DORiE
along with the parameters they require below.
The parameterization ``type`` must match the static ``type`` member of one of
them. Likewise, the parameters must match the names of parameters
these objects use.
The parameterization ``type`` must match a static parameterization name or a
valid combination of them. Likewise, the parameters must match the names of
parameters these objects use.
.. _man-parameter_scaling:
......@@ -101,8 +111,8 @@ This section lists the available types for parameterizations, scalings, and
interpolators in a understandable format. You can also dig through the code
documentation below, or the code itself, to retrieve this information.
Parameterizations
^^^^^^^^^^^^^^^^^
Richards Parameterizations
^^^^^^^^^^^^^^^^^^^^^^^^^^
As the *soil porosity* :math:`\phi \, [-]` and the *residual water content*
:math:`\theta_s \, [-]` vary between soil types, it is convenient to define the
......@@ -145,6 +155,7 @@ porosity, :math:`\theta_s = \phi`.
.. code-block:: yaml
richards:
type: MvG
parameters:
theta_r:
......@@ -154,6 +165,233 @@ porosity, :math:`\theta_s = \phi`.
n:
tau:
Transport Parameterizations
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The hydrodynamic dispersion tensor :math:`\mathsf{D}_\mathsf{hd} \,
[\mathrm{m}^2\mathrm{s}^{-1}]` is
.. object:: Constant parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}_\mathsf{hd} = \text{const}.
* ``type: Dhd_const``
Parameters:
* ``hydrodynamic_disp_ij``: (i,j) Component of the hydrodynamic
dispersion tensor
:math:`\mathsf{D}^\mathsf{hd}_{ij} \, [\mathrm{m}^2\mathrm{s}^{-1}]`
YAML template:
.. code-block:: yaml
transport:
type: Dhd_const
parameters:
hydrodynamic_disp_xx:
hydrodynamic_disp_xy:
hydrodynamic_disp_xz:
hydrodynamic_disp_yx:
hydrodynamic_disp_yy:
hydrodynamic_disp_yz:
hydrodynamic_disp_zx:
hydrodynamic_disp_zy:
hydrodynamic_disp_zz:
(Alternative) YAML template:
.. code-block:: yaml
transport:
type: Dhd_const
parameters:
hydrodynamic_disp: [ ... ]
.. object:: Power law parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}_\mathsf{hd} = \gamma\mathsf{D}^\mathsf{m}\text{pe}^\alpha.
* ``type: Dhd_pl``
Parameters:
* ``gamma``: Scale the power law :math:`[-]`
* ``alpha``: Exponent of the power law :math:`[-]`
YAML template:
.. code-block:: yaml
transport:
type: Dhd_pl
parameters:
alpha:
gamma:
.. object:: Superposition parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}_\mathsf{hd} = \mathsf{D}_\mathsf{hm}+I\mathsf{D}_\mathsf{eff}.
* ``type: <Dhm_type> + <Deff_type>``
.. object:: Constant effective diffusion parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}_\mathsf{eff} = \text{const}.
* ``Deff_type: Deff_const``
Parameters:
* ``eff_diff``: Effective diffusion
:math:`\mathsf{D}^\mathsf{eff} \, [\mathrm{m}^2\mathrm{s}^{-1}]`
YAML template:
.. code-block:: yaml
transport:
type: <Dhm_type> + Deff_const
parameters:
eff_diff:
.. object:: Milligton-Quirk I effective diffusion parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}_\mathsf{eff} = \mathsf{D}_\mathsf{m}\frac{\theta_s^{7/3}}{\phi^{2/3}}.
where the volumetric water content :math:`\theta_s \, [-]`
is automatically obtained from richards simulation.
* ``Deff_type: Deff_MQ1``
Parameters:
* ``mol_diff``: Molecular diffusion
:math:`\mathsf{D}^\mathsf{m} \, [\mathrm{m}^2\mathrm{s}^{-1}]`
* ``phi``: Soil porosity :math:`\phi \, [-]`
YAML template:
.. code-block:: yaml
transport:
type: <Dhm_type> + Deff_MQ1
parameters:
mol_diff:
phi:
.. object:: Milligton-Quirk I effective diffusion parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}_\mathsf{eff} = \mathsf{D}_\mathsf{m}\frac{\theta_s}{\phi^{2/3}}.
where the volumetric water content :math:`\theta_s \, [-]`
is automatically obtained from richards simulation.
* ``Deff_type: Deff_MQ2``
Parameters:
* ``mol_diff``: Molecular diffusion
:math:`\mathsf{D}^\mathsf{m} \, [\mathrm{m}^2\mathrm{s}^{-1}]`
* ``phi``: Soil porosity :math:`\phi \, [-]`
YAML template:
.. code-block:: yaml
transport:
type: <Dhm_type> + Deff_MQ1
parameters:
mol_diff:
phi:
.. object:: Constant effective hydromechanic dispersion tensor parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}^\mathsf{hm} = \text{const}.
* ``Dhm_type: Dhm_const``
Parameters:
* ``eff_hydromechanic_disp_ij``: (i,j) Component of the hydromechanic
dispersion tensor
:math:`\mathsf{D}^\mathsf{hm}_{ij} \, [\mathrm{m}^2\mathrm{s}^{-1}]`
YAML template:
.. code-block:: yaml
transport:
type: Dhm_const + <Deff_type>
parameters:
eff_hydromechanic_disp_xx:
eff_hydromechanic_disp_xy:
eff_hydromechanic_disp_xz:
eff_hydromechanic_disp_yx:
eff_hydromechanic_disp_yy:
eff_hydromechanic_disp_yz:
eff_hydromechanic_disp_zx:
eff_hydromechanic_disp_zy:
eff_hydromechanic_disp_zz:
(Alternative) YAML template:
.. code-block:: yaml
transport:
type: Dhm_const + <Deff_type>
parameters:
eff_hydromechanic_disp: [ ... ]
.. object:: Effective hydromechanic dispersion tensor for isotropic media parameterization
Implements the following parameterization function:
.. math::
\mathsf{D}^\mathsf{hm}_{ij} = (\lambda_l-\lambda_t)\frac{v_i v_j}{|v|} + \delta_{ij}\lambda_t |v|.
* ``Dhm_type: Dhm_iso``
Parameters:
* ``lambda_l``: Longitudinal dispersivity :math:`\lambda_l \, [...]`
* ``lambda_t``: Transverse dispersivity :math:`\lambda_t \, [...]`
YAML template:
.. code-block:: yaml
transport:
type: Dhm_iso + <Deff_type>
parameters:
lambda_l:
lambda_t:
Scalings
^^^^^^^^
Every ``scaling_section`` has the following layout:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment