Commit 9ef03e96 authored by Lukas Riedel's avatar Lukas Riedel

Merge branch 'cookbook-infiltration-in-homogeneous-medium' into 'master'

Cookbook: Infiltration in homogeneous medium

See merge request !157
parents 0bb5f38d 311c7398
......@@ -3,6 +3,8 @@ build-cmake/
# Exclude generated files
doc/manual/config-file.rst
doc/default_files/config.ini
doc/cookbook/1-infiltration-sand/config.ini
python/dorie/wrapper/pf_from_file.py
python/dorie/wrapper/test_dorie.py
python/dorie/dorie/cli/cmds.py
......
......@@ -47,6 +47,7 @@
* [Google Test](https://github.com/google/googletest) unit test framework
as Git Submodule !159
* Upwinding options for Richards finite volume local operator !161
* Cookbook tutorial on infiltration into homogeneous sand !157
### Changed
* `Simulation` is renamed `RichardsSimulation` and moved to
......
......@@ -48,6 +48,7 @@ add_subdirectory("dune")
add_subdirectory("lib")
if(DORIE_TESTING)
add_subdirectory("test")
add_subdirectory("doc/cookbook")
endif()
# finalize the dune project, e.g. generating config.h etc.
......
......@@ -95,7 +95,7 @@ by CI tests.
#### Optional Packages
| Software | Version/Branch | Comments |
| ---------| -------------- | -------- |
| [dune-testtools](https://gitlab.dune-project.org/quality/dune-testtools) | releases/2.6 | Handles system tests
| [dune-testtools](https://gitlab.dune-project.org/quality/dune-testtools) | releases/2.6 | Required for tests and parts of the user manual
| [doxygen](http://www.stack.nl/~dimitri/doxygen/) | 1.8.13 | Builds documentation
| [METIS](http://glaros.dtc.umn.edu/gkhome/views/metis) | 5 | For parallel runs
| [ParMETIS](http://glaros.dtc.umn.edu/gkhome/views/metis) | 4 | For parallel runs
......
......@@ -213,9 +213,14 @@ breathe_default_project = "dorie"
# -- Pass special options to build setup -------------------------------------
# Config: dune-testtools module was found by CMake
meta_ini_available = "@DORIE_TESTING@".lower() in ["1", "true", "yes", "on"]
# Apply custom configuration to the Sphinx app
def setup(app):
app.add_config_value('recommonmark_config', {
'enable_math': True,
'enable_inline_math': True
}, True)
app.add_config_value('meta_ini_available', False, 'env')
app.add_transform(AutoStructify)
dorie_add_metaini_test(TARGET dorie_test
METAINI tutorial-1.mini.in)
configure_file(${CMAKE_CURRENT_BINARY_DIR}/tutorial-1.ini
${CMAKE_CURRENT_SOURCE_DIR}/config.ini
COPYONLY)
# Copy files needed for the test to run
configure_file(${CMAKE_BINARY_DIR}/doc/default_files/2d_infiltr.bcdat
2d_infiltr.bcdat
COPYONLY)
configure_file(${CMAKE_BINARY_DIR}/doc/default_files/richards_param.yml
richards_param.yml
COPYONLY)
include ${CMAKE_BINARY_DIR}/doc/default_files/config.ini
_test_command = run
__name = tutorial-1
# WARNING: Any change in the line ordering of this file will affect the
# tutorial view on this file
[simulation]
mode = richards
[grid]
gridType = rectangular
dimensions = 2
extensions = 1 4
cells = 1 200
[grid.mapping]
volume = 0
[richards.parameters]
file = richards_param.yml
[richards.initial]
type = analytic
quantity = matricHead
equation = -h
[richards.boundary]
file = 2d_infiltr.bcdat
[richards.output]
fileName = infiltr_homogeneous_sand_2D
outputPath = ./
\ No newline at end of file
**********************************
Infiltration in Homogeneous Medium
**********************************
One of the most simple DORiE simulations is the case of constant infiltration on
a 2D homogeneous medium. In particular, we will create a similar simulation to
the one conducted by Kurt Roth in his
`Soil Physics Lecture Notes <http://ts.iup.uni-heidelberg.de/teaching/#c520>`_,
Chapter 6.3.1.
Study Case
----------
Consider a uniform and isotropic soil with constant water table
(:math:`h_m = 0\,\text{m}`) at height :math:`y=0\,\text{m}` and vertical flux
in the vadose zone. We choose the :math:`y`-axis to point upwards.
For times :math:`t < 0`, the water phase is in static equilibrium, i.e.,
:math:`j_w = 0\,\text{ms}^{-1}` in the entire domain. The soil surface is
located at :math:`y=4\,\text{m}`. For :math:`t \leq 0`, the water flux through
the surface boundary is set to
:math:`j_w = 5.56 \cdot 10^{−6}\,\text{ms}^{-1} = 20\,\text{mm}\,\text{h}^{-1}`,
equivalent to heavy rainfall.
Configure DORiE Input Files
---------------------------
In what follows, we will set up input files and run the simulation step-by-step
reviewing the most important parts of the DORiE work-flow.
Simulation Mode
^^^^^^^^^^^^^^^
The first decision to make is to choose the mode of your simulation. In this
case, we are only interested in the water flow movement. Hence, the richards
mode in the configuration file is well suited for our purpose.
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 9-10
:caption: config.ini
Grid Creation
^^^^^^^^^^^^^
For any simulation, the :doc:`grid settings </manual/grid>` have to be
setup exactly once since all models share the same grid.
In this case, we will create a ``rectangular`` grid by specifying the number
of ``cells`` and the ``extensions`` of the domain. Grids of this type are
directly created within DORiE, thus, the keyword ``gridFile`` is ignored.
.. note::
The original simulation is one dimensional, but DORiE only supports two and
three dimensions. Hence, we use a 2D simulation with 1 cell for the
:math:`x`-direction, as the simulation is symmetrical along this axis.
We set ``1 4`` as the ``extensions`` of the domain. This means that the
rectangular grid will be generated with an extension of :math:`1\,\text{m}` in
the :math:`x`-direction and an extension of :math:`4\,\text{m}` in
the :math:`y`-direction. Notice that the :math:`x`-direction points to the
right, and the :math:`y`-direction upwards. The point of origin in DORiE's
reference frame is located at the lower left point.
Now we have to fill a domain of this size with rectangular grid cells by
specifying the number of cells into each direction. For the
:math:`x`-direction, we will set this to ``1``. For the :math:`y`-direction,
we choose a reasonable resolution of :math:`2\,\text{cm}` per cell, meaning
that we need ``200`` cells in total. That is, we set the pair ``1 200`` of
``cells`` in the config file.
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 12-16
:caption: config.ini
Soil Parameterization
^^^^^^^^^^^^^^^^^^^^^
First, in the configuration file we set the
:ref:`parameterization file <man-parameter_file>` that we want to use. In this
case, we select the file ``richards_param.yml`` provided by the
``dorie create`` command.
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 21-22
:caption: config.ini
Now, for homogeneous materials, the key ``grid.mapping.volume`` in the config
file refers to the keyword ``index`` to use in the parameterization file for
the whole domain. That said, if the parameterization file looks like this:
.. literalinclude:: ../../default_files/richards_param.yml
:emphasize-lines: 2-3,14-15
:language: yaml
:caption: richards_param.yml
then, a ``volume`` set to ``0`` will have a parameterization for ``sand`` while
a ``volume`` set to ``1`` will have a parameterization for
``silt``. For now, let's say we want to simulate an homogeneous sand.
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 18-19
:caption: config.ini
Initial Condition
^^^^^^^^^^^^^^^^^
The :doc:`initial condition </manual/initial>` can be fed with HDF5 data
files or with analytic functions. In this case, we set an initial
condition with the water table at :math:`y = 0\,\text{m}` with a fluid phase in
hydrostatic equilibrium. This can be represented by an ``analytic`` function
where the ``matricHead`` is simply set to ``-h``. See the documentation of
:ref:`analytic initial conditions <man-initial-types>` for details.
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 24-27
:caption: config.ini
Boundary Condition
^^^^^^^^^^^^^^^^^^
The :doc:`boundary conditions file </manual/bcfile>` has to be specified by the
keyword ``richards.boundary.file`` in the configuration file. For now, we will
use the infiltration file for 2D, ``2d_infiltr.bcdat``, provided by the command
``dorie create``. By default, this file sets a constant infiltration of
:math:`j_w = -5.55\cdot 10^{-6}\,\text{ms}^{-1}` at the top, a constant matric
head of :math:`h_m = 0\,\text{m}` at the bottom, and a no-flux condition on the
sides of the domain.
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 29-30
:caption: config.ini
Output
^^^^^^
Finally, we give a name and a path to the
:doc:`output files </introduction/data-io>` of the simulation:
.. literalinclude:: tutorial-1.mini.in
:language: ini
:lines: 32-34
:caption: config.ini
Run DORiE
---------
Once everything is set up, we :doc:`run DORiE </manual/cli>` by calling the
command ``dorie run`` followed by the configuration file ``confing.ini``:
.. code-block:: bash
dorie run config.ini
By doing this, the simulation should start and provide information about the
status of the simulation depending on the on the ``logLevel`` keyword on the
configuration file. A typical DORiE simulation has the following output:
.. code-block:: none
[18:27:32.762 I] Starting DORiE
[18:27:32.762 I] Reading configuration file: config.ini
[18:27:32.768 I] Creating output directory: ./
[18:27:32.768 I] Creating a rectangular grid in 2D
[18:27:32.776 I] [RIC] Loading parameter data file: richards_param.yml
[18:27:32.779 I] [RIC] Reading boundary condition data file: 2d_infiltr.bcdat
[18:27:32.784 I] [RIC] Setup complete
[18:27:33.296 I] [RIC] Time Step 0: 0.00e+00 + 1.00e+01 -> 1.00e+01
[18:27:33.581 I] [RIC] Time Step 1: 1.00e+01 + 1.50e+01 -> 2.50e+01
[18:27:33.899 I] [RIC] Time Step 2: 2.50e+01 + 2.25e+01 -> 4.75e+01
[18:27:34.177 I] [RIC] Time Step 3: 4.75e+01 + 3.38e+01 -> 8.12e+01
...
[18:27:46.863 I] [RIC] Time Step 51: 7.67e+05 + 1.00e+05 -> 8.67e+05
[18:27:46.894 I] [RIC] Time Step 52: 8.67e+05 + 1.00e+05 -> 9.67e+05
[18:27:46.923 I] [RIC] Time Step 53: 9.67e+05 + 3.34e+04 -> 1.00e+06
[18:27:46.938 I] DORiE finished after 1.47e+01s :)
Results
-------
The :ref:`results <intro-io-output>` should have been written in several
:file:`.vtu` files, one for each time step, and gathered by a :file:`.pvd`
file. By opening the latter in Paraview_ (or VisIt_) it is possible to
visualize the dynamics of the matric head, water content, and water flux as
shown below.
.. _Paraview: http://www.paraview.org/
.. _VisIt: https://visit.llnl.gov/
.. image:: result.gif
.. admonition:: Input files
============= ======================================================================
Configuration :download:`config.ini <config.ini>`
Boundary :download:`2d_infiltr.bcdat </default_files/2d_infiltr.bcdat>`
Parameters :download:`richards_param.yml </default_files/richards_param.yml>`
============= ======================================================================
message(STATUS "Handling cookbook tests")
add_subdirectory(1-infiltration-sand)
......@@ -2,17 +2,65 @@ Introduction
************
This part of the documentation guides through increasingly complicated
use-cases of DORiE. It is intended for users who wish to jump right into using
DORiE, without much knowledge of all its functions. The relevant manual pages
will be linked on the way.
use-cases of DORiE. It is intended for users who are using DORiE for the first
time. It explains the usage of the program, how to execute a simulation and how
to analyze its results. The relevant manual pages will be linked on the way.
Prerequisites
=============
You need a working application. You can either use the image shipped via
`Docker Hub <https://hub.docker.com/r/dorie/dorie/>`_ or use a local
installation. See the installation manual for details.
Additionally, install Paraview_ for analyzing the output.
installation. See the :doc:`installation manual </introduction/readme>` for
details. Additionally, install Paraview_ for analyzing the output.
.. _Paraview: http://www.paraview.org/download/
.. _Gmsh: http://gmsh.info
Setup DORiE virtual environment
===============================
Before of any proper calculation, it is necessary to set up the DORiE virtual
environment in your terminal. This will allow you to call the DORiE commands
anywhere in your system. For this, follow the instructions in the
:doc:`command line interface documentation </manual/cli>`.
Once ready, create a directory where you want to perform the simulations.
For instance
.. code-block:: bash
mkdir $HOME/Documents/dorie/ex1
cd $HOME/Documents/dorie/ex1
Create DORiE Input Files
========================
DORiE needs multiple :doc:`input files </introduction/data-io>` to work.
Although these files seem to be quite overwhelming at the beginning, you will
notice that most of their parameters will not be modified in most of the
cases. Now, you can find an example of these input files using the command
.. code-block:: bash
dorie create
which will provide the files for a simple DORiE application in your
current folder. Explore them!
.. tip::
Most recipes in this cookbook provide a complete set of input files for the
specified simulation. You will find them at the end of the recipe in blocks
as the one below.
.. admonition:: Input files
============= ======================================================================
Configuration :download:`config.ini </default_files/config.ini>`
Boundary :download:`2d_infiltr.bcdat <../default_files/2d_infiltr.bcdat>`,
:download:`3d_infiltr.bcdat </default_files/3d_infiltr.bcdat>`,
:download:`2d_solute.bcdat </default_files/2d_solute.bcdat>`,
:download:`3d_solute.bcdat </default_files/3d_solute.bcdat>`
Parameters :download:`richards_param.yml </default_files/richards_param.yml>`,
:download:`transport_param.yml </default_files/transport_param.yml>`
============= ======================================================================
......@@ -5,7 +5,7 @@ Restart
Currently, DORiE does not have an option to restart simulations. However, it
is possible to make a pseudo-restart from a past simulation using
:doc:`initial conditions<initial>` from data files.
:doc:`initial conditions<initial>` from output data files.
Pseudo-restart
--------------
......@@ -75,3 +75,6 @@ Notice that this qualifies as a pseudo-restart because the degrees of freedom
of the last simulation are not completely recovered. Indeed, they are
degenerated! Hence, strictly speaking, a pseudo-restart will lead to different
results compared with respect to a one-run simulation.
.. todo:: Add files
.. todo:: Add test
\ No newline at end of file
......@@ -167,4 +167,9 @@ create_default_config(
"config.ini;parameters.html;parameters.rst"
${PROJECT_SOURCE_DIR}/dune/dorie
${CMAKE_CURRENT_SOURCE_DIR}/parameters.css
)
\ No newline at end of file
)
# Copy Dorie config in source for reference in the cookbook
configure_file(${CMAKE_CURRENT_BINARY_DIR}/config.ini
${CMAKE_CURRENT_SOURCE_DIR}/config.ini
COPYONLY)
......@@ -91,6 +91,7 @@ adding an empty line, make text **bold** or ``monospaced``.
<category name="boundary">
<parameter name="file">
<definition> Path to the boundary condition file. </definition>
<suggestion> 2d_infiltr.bcdat </suggestion>
<values> path </values>
</parameter>
......
......@@ -12,6 +12,12 @@ DORiE is free software and licensed under the `GNU General Public License v3.0
DORiE complies to `Semantic Versioning <https://semver.org/>`_. Version number
assignment and increment are based on the :doc:`public-api`.
.. ifconfig:: not meta_ini_available
.. warning::
This documentation was built without the ``dune-testtools`` module.
Example configuration files might be missing.
.. toctree::
:maxdepth: 2
......@@ -22,6 +28,15 @@ assignment and increment are based on the :doc:`public-api`.
introduction/features
introduction/data-io
.. toctree::
:maxdepth: 1
:numbered:
:caption: Cook Book
cookbook/index
cookbook/1-infiltration-sand/tutorial
cookbook/restart
.. toctree::
:maxdepth: 2
:caption: Manual
......@@ -36,13 +51,6 @@ assignment and increment are based on the :doc:`public-api`.
manual/interpolators
public-api
.. toctree::
:maxdepth: 2
:caption: Cook Book
cookbook/index
cookbook/restart
.. toctree::
:maxdepth: 1
:caption: Python Modules
......
......@@ -18,26 +18,33 @@ Input Files
Templates for the required files can conveniently be generated with the
:doc:`CLI </manual/cli>`.
* :doc:`Configuration File </manual/config-file>` (``.ini``):
The main input file for the solver. Template: ``config.ini``
* :ref:`Parameterization Data File <man-parameter_file>` (``.yml``):
Specifies the soil parameterization type(s) and parameters.
Template: ``param.yml``
* :doc:`Boundary Condition Data File </manual/bcfile>` (``.bcdat``):
Specifies the boundary segmentation and the boundary conditions.
Templates: ``2d_infiltr.bcdat``, ``3d_infiltr.bcdat``
* :ref:`GMSH Mesh File <man-grid_gmsh>` (optional): Mesh with possibly
complicated geometry to build an unstructured grid from.
* :ref:`Grid Mapping H5 File <man-grid_mapping-dataset>` (optional):
Used to generate heterogeneous soil architectures and boundary segmentations
for rectangular grids.
* :ref:`Scaling Field H5 Files <man-parameter_scaling>` (optional):
Datasets for interpolating local heterogeneities in the parameterization.
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
| Type | Format | Description | Templates |
+========================================+================+==========================================+======================================================================+
| :doc:`Configuration File | :file:`.ini` | The main input file for the solver. | :download:`config.ini </default_files/config.ini>` |
| </manual/config-file>` | | | |
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
| :ref:`Parameterization Data File | :file:`.yml` | Specifies the soil and solute | :download:`richards_param.yml </default_files/richards_param.yml>`, |
| <man-parameter_file>` | | parameterization type(s) and parameters. | :download:`transport_param.yml </default_files/transport_param.yml>` |
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
| :doc:`Boundary Condition Data File | :file:`.bcdat` | Specifies the boundary segmentation and | :download:`2d_infiltr.bcdat </default_files/2d_infiltr.bcdat>`, |
| </manual/bcfile>` | | the boundary conditions. | :download:`3d_infiltr.bcdat </default_files/3d_infiltr.bcdat>`, |
| | | | :download:`2d_solute.bcdat </default_files/2d_solute.bcdat>`, |
| | | | :download:`3d_solute.bcdat </default_files/3d_solute.bcdat>` |
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
| :ref:`GMSH Mesh File | :file:`.gmsh` | Mesh with possibly complicated geometry | --- |
| <man-grid_gmsh>` (optional) | | to build an unstructured grid from. | |
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
| :ref:`Grid Mapping H5 File | :file:`.h5` | Used to generate heterogeneous soil | --- |
| <man-grid_mapping-dataset>` (optional) | | architectures and boundary segmentations | |
| | | for rectangular grids. | |
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
| :ref:`Scaling Field H5 Files | :file:`.h5` | Datasets for interpolating local | --- |
| <man-parameter_scaling>` (optional) | | heterogeneities in the parameterization. | |
| | | | |
+----------------------------------------+----------------+------------------------------------------+----------------------------------------------------------------------+
.. _intro-io-output:
Output Files
============
......
*********
Cook Book
*********
.. contents::
:depth: 3
Introduction
============
This part of the documentation is intended for first-time DORiE users. It explains the basic usage of the program, how to execute a simulation and how to analyze its results. It will also showcase more complex features like Adaptive Grid Refinement.
Prerequisites
-------------
Before you start, make sure that :doc:`DORiE is installed correctly <man-installation>`. To analyze DORiE's results to their full extend, install Paraview_. DORiE will create rectangular grids according to user specifications on the fly, using the DUNE GridFactory. For building simplex grids in two or three dimensions, you can use Gmsh_. Its :file:`.msh` files can be read directly into DORiE to run simulations on.
DORiE Input Files
-----------------
DORiE needs multiple input files to work:
* **Parameter File:** (:file:`.ini`) Supplying static information on the simulation. Have a look at the :doc:`man-config-file` for more information on the file syntax, or default and possible values.
* **Boundary Condition Datafile:** (:file:`.bcdat`) Specifying the boundary conditions dependent on time and space.Name (and path) of the desired file have to be stated in the Parameter File at key ``boundary.file``. The :doc:`man-bcfile` supplies information on how write and use the BC Datafile.
* *Optional* **Mesh File:** (:file:`.msh`) Representing the grid on which the simulation will run. This file is only required if ``grid.gridType = simplex`` is chosen in the Parameter File. The Path to the file and it's name will then have to be stated at ``grid.gridFile``. Use Gmsh_ to easily create such a file.
DORiE Output Files
------------------
DORiE places its output into the directory defined at ``output.outputPath``.
* **Time Stamp File:** (:file:`.pvd`) Containing the time information for the respective VTK output files. Load this file into Paraview_ to analyze the entire output of DORiE. This file is always saved in the directory from which DORiE is executed!
* **VTK Output Files:** (:file:`.vtu`) Containing the grid and the solution for a single time step. The solution contains information on the Matric Head (``head``, scalar), the Volumetric Water Content (``theta_w``, scalar), the Water Saturation (``Theta``, scalar), the Volumetric Water Flux (``flux``, vector), and the Saturated Hydrolic Conductivity (``K_0``, scalar). The files can be visualized using Paraview_ or the :ref:`DORiE VTK Parser <plot_vtk>`.
* *Optional* **Random Field Data** (:file:`.h5` or :file:`.dat`) Information on the Random Field created for a run. If the ``randomField`` values match the ones of the saved files, the Random Field is loaded from these files instead of being computed again.
* *Optional* **Parallel Collection Files** (:file:`.pvtu`) Containing information on combining :file:`.vtu`-files from different processes, if DORiE was executed in parallel (feature pending).
First Steps
===========
In this section, we will recreate some simulations conducted by Kurt Roth, the results of which are displayed in his `Soil Physics Lecture Notes <http://www.iup.uni-heidelberg.de/institut/forschung/groups/ts/soil_physics/students/lecture_notes05>`_, Chapter 6.3.1.
Preparations
------------
To keep everything in order, create a new folder for the input and output files. How to get those? Let's simply make use of the :doc:`Parameter Scraper <python-dorie-parscraper>`!
To create a set of dummy input files, open up a terminal in your newly created folder and execute
.. code-block:: shell
dorie create
This will create a :file:`parameter.ini` file and two BC datafiles, one for each supported spatial dimension. We will tweak these to match the simulations depicted at Figure 6.19.
To do so, make sure you understand the :ref:`Parameter File syntax <inifile-syntax>`.
*We will only mention parameters relevant for the problems at hand, so leave the ones not appearing in this guide as they are by default!*
Output Definition
^^^^^^^^^^^^^^^^^
Let's begin with the ``output``. We want the program to give us at least some output on what it's doing, so we should increase verbosity. As output path we chose a new subdirectory which will automatically be created by DORiE. We will first simulate the sand, so we will call our results that way:
.. code-block:: none
[output]
logLevel = info
outputPath = ./sand
fileName = sand
Grid Creation
^^^^^^^^^^^^^
Let's begin with the spatial extensions. The point of origin in DORiE's reference frame is located at the lower left (front) point of the domain. In 2D, the x-direction points to the right, and the y-direction upwards. In 3D, the x-direction points to the right, the y-direction points backwards, and the z-direction points upwards. Notice that DORiE does not support negative coordinates!
The simulation by Roth is one dimensional, but DORiE only supports two dimensions. For now, we leave the extension in x-direction at :math:`1 \, \text{m}`. For the y-direction, we notice that :math:`y_\text{DORiE} = -z_\text{Roth}`, so we set this extension to :math:`4 \, \text{m}`.
Now we have to fill a domain of this size with rectangular grid cells by specifying the number of cells into each direction. For the x-direction, we will set this to 1, as the simulation is symmetrical along this axis. For the y-direction, we choose a reasonable resolution of :math:`2 \, \text{cm}` per cell, meaning that we need 200 cells in total.
.. code-block:: none
[grid]
extensions = 1 4
cells = 1 200
Initial Condition
^^^^^^^^^^^^^^^^^
The Initial Condition should be a stable situation (:math:`\partial h_m / \partial y = -1`) with a fixed water table (:math:`h_m = 0 \, \text{m}`) at the lower (south) boundary.
.. code-block:: none
[initial]
condition = hydrEquilibrium
headLower = 0
headGradient = -1
Boundary Conditions
^^^^^^^^^^^^^^^^^^^
The Boundary Condition Datafile supplied by ``dorie create`` already contains everything we need.
Executing the Program
---------------------
Analyzing Results
-----------------
Examples
========
.. _Paraview: http://www.paraview.org/download/
.. _Gmsh: http://gmsh.info
\ No newline at end of file
......@@ -6,8 +6,7 @@ and :doc:`parameterizations <parameter-file>` must exactly map to grid
boundary faces and grid cells, respectively. DORiE therefore not only requires
a specification of the actual grid, but also of these mappings.
DORiE supports two types of grid input, which are controlled via the config
file parameter ``grid.gridType``:
DORiE supports two types of grid input, which are controlled via the :doc:`configuration file <config-file>` parameter ``grid.gridType``:
1. Building a rectangular grid on the fly (``rectangular``).
Depending on whether grid adaptivity is enabled or not, DORiE will use
......@@ -23,6 +22,15 @@ file parameter ``grid.gridType``:
The mapping is read from this file and must be considered when
:ref:`building the mesh <man-grid_gmsh>`.
.. note::
The point of origin in DORiE's
reference frame is located at the lower left (front) point of the domain.
In 2D, the :math:`x`-direction points to the right, and the
:math:`y`-direction upwards. In 3D, the :math:`x`-direction points to
the right, the :math:`y`-direction points backwards, and the
:math:`z`-direction points upwards. Notice that DORiE does not support
negative coordinates!
.. _man-grid_mapping-dataset:
......
......@@ -22,6 +22,8 @@ Initial condition input is controlled entirely via the
interpolator (if applicable), the resulting solution may vary greatly from
the actual input data.
.. _man-initial-types:
Input Types
-----------
This is an overview of all input types for initial conditions.
......
Soil Parameterization
=====================
Parameterization
================
Specifying the domain properties requires input of the
:doc:`soil architecture <grid>`
......
message(STATUS "Handling unit tests")
# copy ALL the config files and stuff
file(COPY scaling.h5
scaling.yml
......
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