Overview of H2OLAB
Architecture

Software is organized in four main components: applications, physical models, numerical models,
utilitaries. These components are divided into several modules and submodules.

Several applications are available in the platform:
the analysis of macrodispersion coefficients in 2D or 3D heterogeneous porous media;
the analysis of channeling in 2D or 3D fracture networks;
etc.

Physical models include the description of the geometry,
of the physical data, of the physical equations and of the spatial discretization considered.
Flow and transport can occur in porous media or fracture networks.
The model provides random data generation, data analysis and mesh generation.
A specific mesh generation algorithm is applied to fracture networks.
The mesh can be conforming or non conforming at intersections.

Numerical methods contains spatial discretization schemes for steady or transient flow and solute transport.
Flow equations are discretized either by finite volume with a structured mesh
or by mixed finite element with a unstructured mesh.
A specific mortar method is used for non conforming intersections.
Transport can be any combination of advection, diffusion, hydrodynamic dispersion.
It is done with a particle tracker.
Uncertainty quantification is dealt with MonteCarlo method.
Interfaces to several ODE solvers and several linear solvers are available.

Utilitaries gather all basic tools, parallel tools providing an API to the library MPI, visualization tools, etc.
Applications
They are implemented as a launcher which contains an executable file.
 Macro dispersion in 2D and 3D heterogeneous porous media.
This application simulates steadystate flow and inerte solute transport in 2D or 3D regular computational domains.
Permeability is a random field.
The application computes the macrodispersion coefficients and analyzes asymptotic behavior.
Largescale computations are done with parallel clusters.
 Analysis of fractures and flow in 2D or 3D Discrete Fracture Networks (DFN).
The applications MPFRACD2 and MPFRACD3 generate respectively 2D and 3D DFN; they perform various analysis of the fractures.
The associated applications MPFRACD2Flow and MPFRACD3Flow simulate steadystate flow in respectively 2D and 3D DFN.
Geometry and data are stochastic functions.
MPFRACD2Flow and MPFRACD3Flow compute statistics on flow and derive hydraulic characteristics of DFN.

PorousFranc: this application is under development.

Free surface: this application is under development.
Physical models
Physical models are implemented as generic packages.
 PARADIS : Parallel dispersion in 2D and 3D heterogeneous porous media.
The computational domain is regular, either 2D or 3D.
Physical characteristics can be deterministic or random variables.
PARADIS solves either steadystate or transient flow equations, with a finite volume method and a sturctured mesh.
When the velocity field is computed, it solves transport equations with a particle tracker.
Transport can be any combination of advection, diffusion, dispersion.
 MPFRAC : Fracture Networks.
The computational domain is a random fracture of networks, either 2D or 2D.
Physical characteristics can be deterministic or random variables.
MPFRAC solves steadystate flow equations, with a mixed hybrid finite element method and an unstructured mesh.
Continuity equations are defined at intersections of fractures.
They are handled with a mortar method for a non conforming mesh.
Numerical models
Numerical models are implemented as generic packages.

Flow solvers : these packages solve flow equations.
Currently, finite volume with structured mesh is implemented in 2D or 3D and
mixed finite element method is implemented with unstructured mesh in 2D.
For fracture networks, a mortar method is implemented.

Transport solvers: these packages solve transport by advection and dispersion.
Currently, a particle tracker is implemented.

UQ method : this package deals with uncertainty quantification; currently, MonteCarlo is implemented;
it drives multiple random simulations and generates statistics of results.

Interfacte to libraries : this package is the interface to various sparse linear solvers and ODE solvers.