Commit 5470f1d3 authored by Lukas Riedel's avatar Lukas Riedel

Differentiate BC docs for Richards and Transport models

* Specify respective quantities and use cases.
* Add docs on Outflow BC.
parent f8159599
......@@ -11,6 +11,7 @@ boundary conditions by means of the segment indices.
.. contents::
:depth: 3
:local:
Boundary Condition File
-----------------------
......@@ -27,9 +28,9 @@ of values. This way, the time interval may be limited, or a boundary condition
may be interpolated between the specified times. Certain types of boundary
conditions may require additional keys.
.. code_block:: yaml
.. code:: yaml
<boundary-name>
<boundary-name>:
index: <int>
conditions:
<cond-1>:
......@@ -86,54 +87,101 @@ A boundary condition has the following template:
value: <scalar or sequence>
# <additional keys>
.. object:: Dirichlet
.. option:: Dirichlet
A Dirichlet boundary conditions determines the exact value of the solution
at the boundary.
**Richards simulation**
Quantity: Matric head :math:`h_m \, [\text{m}]`.
.. tip::
Typical use cases for Dirichlet conditions in a Richards simulation
include:
A Dirichlet boundary condition determines the value of the solution
(here: matric head :math:`h_m`) at the boundary. Use cases in soil
hydrology include:
* Height above a fixed water table at the lower boundary.
* Evaporative potential at upper boundary, if :math:`h_m < z_\text{wt}`,
where :math:`z_\text{wt}` is the height above the water table.
* Height above a fixed water table at lower boundary
* Evaporative potential at upper boundary, if
:math:`h_m < z_\text{wt}`, where :math:`z_\text{wt}` is the height above
the water table.
**Transport simulation**
Quantity: Total concentration :math:`C_t\,[\text{kg}\,\text{m}^{-d}]`
or concentration in the water phase
:math:`C_w\,[\text{kg}\,\text{m}^{-d}]`, depending on the value of
``concentration_type``. The integer :math:`d` denotes the spatial
dimension.
Variables:
* ``type``: ``Dirichlet``
* ``value``: Quantity as specified above.
* ``concentration_type`` **(Transport only)**: Switch between ``total``
(:math:`C_t`) or ``water_phase`` (:math:`C_w`) concentration as
defined above.
* ``type``: ``Dirichlet``
* ``value``: Matric head :math:`h_m` in meters :math:`\text{[m]}` at the
boundary.
.. option:: Neumann
.. object:: Neumann
A Neumann boundary condition determines the value of target quantity flux
at the boundary.
A Neumann boundary condition determines the value of the solution gradient
(here: water flux :math:`\mathbf{j}_w`) at the boundary.
Use cases in soil hydrology include:
**Richards Simulation**
Quantity: Water flux :math:`\mathbf{j}_w \, [\text{ms}^{-1}]`.
* Infiltration or evaporation of fixed fluxes at the upper boundary.
Precipitation and evapotranspiration fluxes are typically measured
with respect to a flat surface. For modeling these fluxes, the
``horizontal_projection`` key is used, which scales the flux applied
to the boundary with its inclination with respect to the direction of
gravitational force,
Precipitation and evapotranspiration fluxes are typically measured with
respect to a flat surface. For modeling these fluxes, the
``horizontal_projection`` key is used, which scales the flux applied to the
boundary with its inclination with respect to the direction of
gravitational force,
.. math::
.. math::
j_{N, \text{scaled}}
= \left| \mathbf{\hat{n}} \cdot \mathbf{\hat{g}} \right| j_N .
.. note:: Hydraulic conductivity decreases with water content. Evaporation
fluxes must not infinitely exceed the stable limit, or else the
solver will inevitably fail.
j_{N, \text{scaled}}
= \left| \mathbf{\hat{n}} \cdot \mathbf{\hat{g}} \right| j_N .
**Transport Simulation**
Quantity: Solute flux
:math:`\mathbf{j}_s \, [\text{kg}\,\text{m}^{-d+1}\,\text{s}^{-1}]`,
where :math:`d` indicates the spatial dimensions.
Variables:
* ``type``: ``Neumann``
* ``value``: Flux perpendicular to the surface :math:`j_N`, in the
quantities defined above. Fluxes into the domain are negative, fluxes
out of the domain positive.
* ``horizontal_projection`` **(Richards only)**: Boolean if the
actual boundary flux should be scaled with the surface inclination
against the direction of gravity.
* ``type``: ``Neumann``
* ``value``: Water flux in surface normal direction,
:math:`j_N`, in volume per area per second
:math:`[\text{m]/\text{s}]` at the boundary. Fluxes into the domain
are negative, fluxes out of the domain positive.
* ``horizontal_projection``: Boolean if the actual boundary flux should be
scaled with the surface inclination.
.. option:: Outflow (Transport only)
.. note:: Hydraulic conductivity decreases with water content. Evaporation
fluxes must not infinitely exceed the stable limit, or else the solver
will inevitably fail.
An outflow boundary condition allows solute be transported throw the
boundary by the water flux. As solute concentration and water flux are
only modelled inside the domain, this effectively only allows the solute
to leave the domain and be discarded. The boundary condition value is an
additional solute flux for which all considerations of a Neumann boundary
condition apply (see above).
Quantity: Solute flux
:math:`\mathbf{j}_s \, [\text{kg}\,\text{m}^{-d+1}\,\text{s}^{-1}]`, where
:math:`d` indicates the spatial dimensions.
The total solute flux through the boundary is then given by
.. math::
j_s = \left| \mathbf{j}_s \cdot \mathbf{\hat{n}} \right| + j_N ,
where :math:`\mathbf{j}_s = C_w \mathbf{j}_w` is the solute flux at the
boundary, :math:`\mathbf{\hat{n}}` is the boundary unit normal vector and
:math:`j_N` is the given boundary condition ``value``, as defined below.
Variables:
* ``type``: ``Outflow``
* ``value``: Flux perpendicular to the surface :math:`j_N`, as in
:option:`Neumann`. This flux is applied in addition to regular
seepage through the boundary. It is recommended to set this value to
0 (zero).
.. _YAML: https://gettaurus.org/docs/YAMLTutorial/
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