@@ -172,12 +172,10 @@ DORiE can solve the solute transport equation together with the Richards equatio

For doing so, dune modules have to be built in more steps. Make sure you have completed the first 5 steps in the step-by-step instructions, and follow the instructions below:

6.1. Building all DUNE dependencies for DORiE:

6.1. Building all DUNE dependencies for DORiE. If you have installed `dune-testtools, add it to the list of modules.

CMAKE_FLAGS="-DDUNE_PYTHON_VIRTUALENV_SETUP=True -DDUNE_PYTHON_ALLOW_GET_PIP=True" ./dune-common/bin/dunecontrol --module=dune-pdelab,dune-uggrid,dune-randomfield all

If you have installed `dune-testtools`, add it to the list of modules

@@ -187,7 +185,7 @@ For doing so, dune modules have to be built in more steps. Make sure you have co

CMAKE_FLAGS="-DDUNE_PYTHON_VIRTUALENV_SETUP=True -DDUNE_PYTHON_ALLOW_GET_PIP=True" ./dune-common/bin/dunecontrol --only=dorie make <dorie-target>

### Parallel compilation

DUNE, and hence, DORiE supports compilation of targets in parallel using the environmental variable `MAKE_FLAGS="-j X"`, where `X` is the number of processes. Some care has to be taken when setting this number. We estimate that each process will use about 2GB of memory RAM. If the memory RAM is overflown during compilation, build process may take much longer due to use of swap memory. Hence, make sure take this into account when assigning a higher number of processors.

DUNE, and hence, DORiE support compilation of targets in parallel using the environmental variable `MAKE_FLAGS="-j X"`, where `X` is the number of processes. Some care has to be taken when setting this number. We estimate that each process will use about 2GB of memory RAM. If the memory RAM is overflown during compilation, build process may take much longer due to use of swap memory. Hence, make sure take this into account when assigning a higher number of processors.

### Experimental Features

The local operator implementing Richards equation's discretization supports

This part of the documentation is intended for first-time DORiE users. It explaines 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.

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

-------------

...

...

@@ -57,7 +57,7 @@ Let's begin with the ``output``. We want the program to give us at least some ou

.. code-block:: none

[output]

verbose = 1

logLevel = info

outputPath = ./sand

fileName = sand

...

...

@@ -105,15 +105,15 @@ Depending on the application for what you want to use DORiE, there might be the

Understanding the water flux output

-----------------------------------

Firstly, we have to recall that DORiE solves a Discontinuous Galerking finite element problem with *matric head* as unknown. It means that the solution of the *matric head* (and therefore the *water flux*) is continuous only element-wise, or in other words, it is discontinuous on the intersections between elements. On the other hand, the dG method solves *numerical fluxes* on the intersections between elements composed together with a penalty term that increases with respect to the discontinuity of the *matric head*. This ensures that the local solution is conservative while keeps the discontinuity as low as possible.

Firstly, we have to recall that DORiE solves a Discontinuous Galerking (dg) finite element problem with *matric head* as unknown. It means that the solution of the *matric head* (and therefore the *water flux*) is continuous only element-wise, or in other words, it is discontinuous on the intersections between elements. On the other hand, the dG method solves *numerical fluxes* on the intersections between elements composed together with a penalty term that increases with respect to the discontinuity of the *matric head*. This ensures that the local solution is conservative while keeps the discontinuity as low as possible.

From the description above one can infer that one has to distinguish between *water fluxes* at the interior of each element and at the intersections of all elements (we call these intersections skeleton of the grid). Unfortunately, there is no a standard form to write the skeleton fluxes on formats like VTK and that's the main reason why DORiE only provides the interior fluxes. However, assuming one can write both fluxes into some output format, they are still discontinuous (notice that direct use of discontinuous fluxes are useless for conservative computations since the transported quantities are very likely to get stagnated or over-transported in the nearby of intersections between elements). It means that it is needed some sort of post-processing that ensures that the *water mass* is still locally and globally conserved.

From the description above one can infer that one has to distinguish between *water fluxes* at the interior of each element and at the intersections of all elements (we call these intersections skeleton of the grid). Unfortunately, there is no a standard form to write the skeleton fluxes on formats like VTK and that's the main reason why DORiE only provides the "interior" fluxes. However, assuming one can write both fluxes into some output format, they are still discontinuous (notice that direct use of discontinuous fluxes are useless for conservative computations since the transported quantities are very likely to get stagnated or over-transported in the nearby of intersections between elements). It means that it is needed some sort of post-processing that ensures that the *water mass* is still locally and globally conserved.

Flux reconstruction

-------------------

The flux reconstruction is a projection of the fluxes used in the Discontinuous Galerkin method into a vector field function. Using correct elements, this procedure can ensure that fluxes in normal direction to the element are *equivalent* to those computed by the Discontinuous Galerkin method, and most importantly, it can also ensure the continuity of them. Hence, the resulting vector field is useful to compute other problems that rely on the fluxes of the water (i.e. solute transport).

The flux reconstruction is a projection of the fluxes of the dG method into a vector field function. Using correct elements, this procedure can ensure that fluxes in normal direction to the element are *equivalent* to those computed by the Discontinuous Galerkin method, and most importantly, it can also ensure the continuity of them. Hence, the resulting vector field is useful to compute other problems that rely on the fluxes of the water (i.e. solute transport).

The flux reconstruction technique always use Raviar Thomas finite elements of one degree less than the one set for the Richards model. It can be identified in the vtk file by the name ``flux_RT{k-1}``, where ``k`` is the finite element order set for the Richards model. Flux reconstruction is not available for non-conforming grids (i.e. Cube-adaptive grids).

The flux reconstruction technique used in DORiE always use Raviar Thomas finite elements of one degree less than the one set for the Richards model. It can be identified in the vtk file by the name ``flux_RT<k-1>``, where ``k`` is the finite element order set for the Richards model. Flux reconstruction is not available for non-conforming grids (i.e. Cube-adaptive grids).