Initial Conditions
==================
DORiE computes transient solutions, and hence needs a solution from which it
can start. There are multiple ways of specifying an initial condition.
All have in common that the data provided must be interpolated on the
respective solution grid function space. Depending on the actual input data,
this means that information can be lost and specific features can be distorted.
Users are responsible to ensure that the solution grid function space and the
input data for initial conditions match in this sense.
Initial conditions can generally be stated in several physical quantities, as
long as the respective quantity has a unique transformation to the solver
solution quantity.
Initial condition input is controlled entirely via the
:doc:`Configuration File `.
Input Types
-----------
This is an overview of all input types for initial conditions.
They are controlled by the ``initial.type`` key and available for every model.
.. object:: Linear Function
* ``type = linear``
This type of initial condition defines an analytic linear function
:math:`f(h)` which only depends on height :math:`h`. The user specifies
the value at height zero, :math:`f_0 = f(h = 0 \, \mathrm{m})`, and a
gradient :math:`\Delta f`. The function defining the solution is then
given by
.. math::
f (h) = f_0 + h \cdot \Delta f
.. object:: HDF5_ Dataset
* ``type = data``
This type of initial condition defines function :math:`f(x,y,z)` depending
on the data included in the datafile ``initial.datafile`` and the dataset
``initial.dataset`` within the datafile. Values between the centers of the
data set are interpolated depending on the keyword ``initial.interpolator``
Transformation Types
--------------------
This is an overview of the transformation types of all models.
They are controlled via the ``initial.quantity`` key.
Richards
^^^^^^^^
Initial condition tranformations for the Richards solver.
.. object:: No Transformation
* ``quantity = matricHead``
The input data is directly interpreted as matric head
:math:`h_m [\mathrm{m}]`.
Interpolators
-------------
.. object:: Nearest neighbor interpolator
Interprets dataset values as cell values.
* ``interpolation: nearest``
.. _HDF5: https://www.h5py.org/