/*!
 * \file
 *
 * \brief This file contains all module definitions for the doxygen documentation.
 *
 */

/* ***************** Porousmediumflow ******************/
/*!
 * \defgroup PorousmediumflowModels Porous-Medium Flow Models
 * \brief Single and multi-phase models for flow and transport in porous materials
 */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup OnePModel 1p
     * \brief Single-phase (immiscible) Darcy flow
     * For a detailed model decription see porousmediumflow/1p/model.hh
     */
        /*!
         * \ingroup OnePModel
         * \defgroup SequentialOnePModel Sequential
         * \brief Sequential single-phase (immiscible) Darcy flow
         *
         * # Pressure
         * \copydetails Dumux::FVPressure1P
         *
         * # Velocity
         * \copydetails Dumux::FVVelocity1P
         */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup OnePNCModel 1pnc
     * \brief Single-phase, multi-component Darcy flow
     * For a detailed model decription see porousmediumflow/1pnc/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup OnePNCMinModel 1pncmin
     * \brief Single-phase, multi-component Darcy flow with mineralization
     * For a detailed model decription see porousmediumflow/1pncmin/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup TwoPModel 2p
     * \brief Two-phase (immiscible) Darcy flow
     * For a detailed model decription see porousmediumflow/2p/model.hh
     */
        /*!
         * \ingroup TwoPModel
         * \defgroup SequentialTwoPModel Sequential
         * \brief Sequential two-phase (immiscible) Darcy flow
         *
         * # Pressure
         * \copydetails Dumux::FVPressure2P
         *
         * # Velocity
         * \copydetails Dumux::FVVelocity2P
         */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup TwoPOneCModel 2p1c
     * \brief Two-phase, one-component Darcy flow
     * For a detailed model decription see porousmediumflow/2p1c/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup TwoPTwoCModel 2p2c
     * \brief Two-phase, two-component Darcy flow
     * For a detailed model decription see porousmediumflow/2p2c/model.hh
     */
        /*!
         * \ingroup TwoPTwoCModel
         * \defgroup SequentialTwoPTwoCModel Sequential
         * \brief Sequential two-phase, two-component Darcy flow
         *
         * # Pressure
         * \copydetails Dumux::FVPressure2P2C
         *
         * # Velocity
         * \copydetails Dumux::FVTransport2P2C
         */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup TwoPNCModel 2pnc
     * \brief two-phase, multi-component Darcy flow
     * For a detailed model decription see porousmediumflow/2pnc/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup TwoPNCMinModel 2pncmin
     * \brief Two-phase, multi-component Darcy flow with mineralization
     * For a detailed model decription see porousmediumflow/2pncmin/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup ThreePModel 3p
     * \brief Three-phase (immiscible) Darcy flow
     * For a detailed model decription see porousmediumflow/3p/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup ThreePThreeCModel 3p3c
     * \brief Three-phase, three-component Darcy flow
     * For a detailed model decription see porousmediumflow/3p3c/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup ThreePWaterOilModel 3pwateroil
     * \brief Three-phase, two-component Darcy flow with water (liquid & gas) and oil
     * For a detailed model decription see porousmediumflow/3pwateroil/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup BoxDFMModel boxdfm
     * \brief Vertex-centered, continuous-pressure, conforming lower-dimensional discrete-fracture model
     * For a detailed model decription see porousmediumflow/boxdfm/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup CO2Model CO2
     * \brief Two-phase, two-component Darcy flow specialized for supercritical CO<sub>2</sub> storage
     * For a detailed model decription see porousmediumflow/co2/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup MineralizationModel mineralization
     * \brief Model adding components that can precipitate as a solid phase to a standard Darcy flow model
     *
     * For a detailed model decription see porousmediumflow/mineralization/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup MPNCModel mpnc
     * \brief Generalized multi-phase, multi-component Darcy flow
     *
     * For a detailed model decription see porousmediumflow/mpnc/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup NonEquilibriumModel NonEquilibrium
     * \brief Model that adds nonequilibrium equations to another porous medium flow model (only used in MPNCModel currently)
     * For a detailed model decription see porousmediumflow/nonequilibrium/model.hh
     */
        /*!
         * \ingroup NonEquilibriumModel
         * \defgroup ThermalNonEquilibriumModel ThermalNonEquilibrium
         * \brief Model that adapts the energy localresidual to thermal nonequilibrium
         * For a detailed model decription see porousmediumflow/nonequilibrium/thermal/localresidual.hh
         */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup NIModel nonisothermal
     * \brief Model that adds an energy equation (thermal equilibrium) to another porous medium flow model
     *
     * For a detailed model decription see porousmediumflow/nonisothermal/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup RichardsModel Richards
     * \brief Richards flow
     * For a detailed model decription see porousmediumflow/richards/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup RichardsNCModel Richards nc
     * \brief Richards multi-component flow
     * For a detailed model decription see porousmediumflow/richardsnc/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup SolidEnergyModel Solid energy
     * \brief Energy equation for the solid (general heat equation)
     * For a detailed model decription see porousmediumflow/solidenergy/model.hh
     */
    /*!
     * \ingroup PorousmediumflowModels
     * \defgroup TracerModel Tracer
     * \brief Multi-component advection-diffusion-reaction model with given velocity field
     * For a detailed model decription see porousmediumflow/tracer/model.hh
     */

/* ***************** FreeflowModels ******************/
/*!
 * \defgroup FreeflowModels Free Flow Models
 * \brief Single-phase models based on the Navier-Stokes equation
 */
    /*!
     * \ingroup FreeflowModels
     * \defgroup NavierStokesModel Navier-Stokes
     * \brief Single-phase Navier-Stokes flow
     * For a detailed model decription see freeflow/navierstokes/model.hh
     */
    /*!
     * \ingroup FreeflowModels
     * \defgroup RANSModel Reynolds-Averaged Navier-Stokes
     * \brief Single-phase Reynolds-Averaged Navier-Stokes flow
     * For a detailed model decription see freeflow/rans/model.hh
     */
        /*!
         * \ingroup RANSModel
         * \defgroup ZeroEqModel 0-Eq. Models
         * \brief Zero-equation or algebraic turbulence models
         * For a detailed model decription see freeflow/rans/zeroeq/model.hh
         */
        /*!
         * \ingroup RANSModel
         * \defgroup OneEqModel 1-Eq. Models
         * \brief One-equation turbulence model by Spalart-Allmaras
         * For a detailed model decription see freeflow/rans/oneeq/model.hh
         */
        /*!
         * \ingroup RANSModel
         * \defgroup TwoEqModel 2-Eq. Models
         * \brief Two-equation turbulence models
         */
            /*!
             * \ingroup TwoEqModel
             * \defgroup KEpsilonModel K-epsilon model
             * \brief K-epsilon model
             * For a detailed model decription see freeflow/rans/twoeq/kepsilon/model.hh
             */
            /*!
             * \ingroup TwoEqModel
             * \defgroup KOmegaModel K-omega model
             * \brief K-omega model
             * For a detailed model decription see freeflow/rans/twoeq/komega/model.hh
             */
            /*!
             * \ingroup TwoEqModel
             * \defgroup LowReKEpsilonModel Low-Re k-epsilon model
             * \brief Low-Re k-epsilon model
             * For a detailed model decription see freeflow/rans/twoeq/lowrekepsilon/model.hh
             */
    /*!
     * \ingroup FreeflowModels
     * \defgroup FreeflowNCModel Compositional
     * \brief Single-phase multi-component free-flow flow models
     * For a detailed model decription see freeflow/compositional/navierstokesncmodel.hh
     */
    /*!
     * \ingroup FreeflowModels
     * \defgroup FreeflowNIModel Nonisothermal
     * \brief An energy equation adaptor for isothermal free-flow models
     * For a detailed model decription see freeflow/nonisothermal/model.hh
     */
    /*!
     * \ingroup FreeflowModels
     * \defgroup ShallowWaterModel 2D shallow water model
     * \brief Two-dimensional shallow water flow (depth-averaged)
     * For a detailed model decription see freeflow/shallowwater/model.hh
     */
/*!
 * \defgroup Geomechanics Geomechanics Models
 * \brief Models taking into account solid deformation
 */
    /*!
     * \ingroup Geomechanics
     * \defgroup Elastic Solid mechanics w/o fluid pressure
     * \brief Models linear elastic deformation of a solid. Disregards fluid pressure.
     * For a detailed model decription see geomechanics/elastic/model.hh
     */
    /*!
     * \ingroup Geomechanics
     * \defgroup PoroElastic Solid mechanics with fluid pressure
     * \brief Models linear elastic deformation of a solid. Takes fluid pressure into account.
     * For a detailed model decription see geomechanics/poroelastic/model.hh
     */
/*!
 * \defgroup Geometry Geometry
 * \brief Algorithms for geometry computations (intersections, distances, ...).
 */

/* ***************** Discretization ******************/
/*!
 * \defgroup Discretization Discretization schemes
 * \brief The discretization schemes available in DuMu<sup>x</sup>
 */
    /*!
     * \ingroup Discretization
     * \defgroup BoxDiscretization Box FV scheme
     * \brief The box method is a collocated finite volume scheme with control volumes centered at grid nodes.
     */
    /*!
     * \ingroup Discretization
     * \defgroup CCDiscretization Cell-centered FV scheme
     * \brief Finite volume schemes with degrees of freedom located at grid cell centers.
     */
        /*!
         * \ingroup CCDiscretization
         * \defgroup CCTpfaDiscretization Two-point flux approximation (Tpfa)
         * \brief A cell-centered finite volume scheme with two-point flux approximation.
         */
        /*!
         * \ingroup CCDiscretization
         * \defgroup CCMpfaDiscretization Multi-point flux approximation (Mpfa)
         * \brief A cell-centered finite volume scheme with multi-point flux approximation.
         */
    /*!
     * \ingroup Discretization
     * \defgroup StaggeredDiscretization Staggered FV scheme
     * \brief A staggered finite volume scheme with degrees of freedom at cell-centers and facets.
     */
    /*!
     * \ingroup Discretization
     * \defgroup FEMDiscretization Finite element method
     * \brief The finite element method
     */
/* ***************** Flux ******************/
/*!
 * \defgroup Flux Flux
 * \brief Everything flux related in DuMu<sup>x</sup>
 */
    /*!
     * \ingroup Flux
     * \defgroup BoxFlux Flux related to the box scheme
     * \brief Flux related to the box scheme
     */
    /*!
     * \ingroup Flux
     * \defgroup CCFlux Flux related to the cell-centered schemes
     * \brief Flux related to the cell-centered schemes
     */
        /*!
         * \ingroup Flux
         * \defgroup CCTpfaFlux Flux related to the cell-centered two-point flux approximation schemes
         * \brief Flux related to the cell-centered two-point flux approximation schemes
         */
        /*!
         * \ingroup Flux
         * \defgroup CCMpfaFlux Flux related to the cell-centered multi-point flux approximation schemes
         * \brief Flux related to the cell-centered multi-point flux approximation schemes
         */
    /*!
     * \ingroup Flux
     * \defgroup StaggeredFlux Flux related to the staggered scheme
     * \brief Flux related to the staggered scheme
     */
    /*!
     * \ingroup Flux
     * \defgroup ShallowWaterFlux Flux related to the shallow water model
     * \brief Flux related to the shallow water model
     */
/* ***************** Material ******************/
/*!
 * \defgroup Material Material and Fluid Framework
 * \brief The material and fluid framework with constitutive laws and mixture physics
 * \par
 * Short description of the most important concepts of the material and fluid framework:
 *
 *  - __Binary coefficient:__ <br>  @copydoc Binarycoefficients
 *  - __Chemistry:__ <br> @copydoc Chemistry
 *  - __Component:__ <br> @copydoc Components
 *  - __Constraint solvers:__ <br> @copydoc ConstraintSolvers
 *  - __Equation of state:__ <br> @copydoc EOS
 *  - __Fluid-Matrix Interactions:__ <br> @copydoc Fluidmatrixinteractions
 *  - __Fluid state:__ <br> @copydoc FluidStates
 *  - __Solid state:__ <br> @copydoc SolidStates
 *  - __Fluid system:__ <br> @copydoc Fluidsystems
 *  - __Spatial Parameters:__ <br> @copydoc SpatialParameters
 */
    /*!
     * \ingroup Material
     * \defgroup Binarycoefficients Binary Coefficients
     * \brief Binary coefficients
     *
     *  Binary coefficients describe the relations
     *  of a mixture of two components. Typical binary coefficients are
     *  Henry coefficients or binary molecular diffusion
     *  coefficients. So far, the programming interface for accessing binary
     *  coefficients has not been standardized in Dumux.
     */
    /*!
     * \ingroup Material
     * \defgroup Chemistry Chemistry
     * \brief Chemical reactions
     *
     * Chemical reactions can be relevant for all thermodynamic relations
     * for the liquid and gas phase of multiple chemical species
     * The main purpose is to provide a convenient way to access these
     * relationships via source or sink terms.
     */
    /*!
     * \ingroup Material
     * \defgroup Components Components
     * \brief thermodynamics of single chemical species or fixed mixtures of species
     *
     * Components provide the thermodynamic relations for the liquid,
     * gaseous and/or solid state of a single
     * chemical species or a _fixed_ mixture of species.
     * Fluid systems use components to compute thermodynamic quantities of phases.
     */
        /*!
         * \ingroup Components
         * \defgroup IAPWS IAPWS
         * \brief Tabulated values according to the International Association for the Properties of Water and Steam (IAPWS)
         */
    /*!
     * \ingroup Material
     * \defgroup ConstraintSolvers Constraint Solvers
     * \brief Constraint solvers converting primary to secondary variables
     *
     * Constraint solvers are auxiliary tools to
     * make sure that a fluid state is consistent with some thermodynamic
     * constraints. All constraint solvers specify a well defined set of
     * input variables and make sure that the resulting fluid state is
     * consistent with a given set of thermodynamic equations.
     * Constraint solvers connect the thermodynamic relations expressed by
     * fluid systems with the thermodynamic quantities stored by fluid
     * states. Using them is not mandatory for models, but given the fact
     * that some thermodynamic constraints can be quite complex to solve,
     * sharing this code between models makes sense.
     */
    /*!
     * \ingroup Material
     * \defgroup EOS Equation of State
     * \brief Equations of state
     *
     * Equations of state (EOS) are auxiliary
     * classes which provide relations between a fluid phase's temperature,
     * pressure, composition and density. Since these classes are only used
     * internally in fluid systems, their programming interface is
     * currently ad-hoc.
     */
    /*!
     * \ingroup Material
     * \defgroup Fluidmatrixinteractions Fluid-Matrix Interactions
     * \brief e.g. pc-Sw, kr-Sw relations, effective diffusion coefficients
     *
     * Some parameters are functions of the fluid state as well as parameters of
     * the matrix. For example the capillary pressure is a function of the phase saturation
     * and the shape parameter \f$\lambda\f$ which is dependent on the material. All such relations
     * are gathered in this module.
     */
    /*!
     * \ingroup Material
     * \defgroup FluidStates Fluid States
     * \brief Fluid states are responsible for representing the
     * complete thermodynamic configuration of a system at a given spatial
     * and temporal position.
     *
     * A fluid state always provides access methods
     * to __all__ thermodynamic quantities, but the concept of a fluid state does not
     * mandate what assumptions are made to store these thermodynamic
     * quantities. What fluid states also do __not__ do is to make sure
     * that the thermodynamic state which they represent is physically
     * possible.
     */
    /*!
     * \ingroup Material
     * \defgroup Fluidsystems Fluid Systems
     * \brief Fluid systems express the thermodynamic relations (functions).
     *
     * Since functions do
     *  not exhibit any internal state, fluid systems are stateless classes,
     *  i.e. all member functions are static. This is a conscious
     *  decision since the thermodynamic state of the system is expressed by
     *  a fluid state!
     */
    /*!
     * \ingroup Material
     * \defgroup SolidStates Solid States
     * \brief Solid states are responsible for representing all relevant
     * thermodynamic quantities of solid systems.
     *
     * A solid state provides access methods
     * to __all__ thermodynamic quantities, but the concept of a solid state does not
     * mandate what assumptions are made to store these thermodynamic
     * quantities. What solid states also do __not__ do is to make sure
     * that the thermodynamic state which they represent is physically
     * possible.
     */
    /*!
     * \ingroup Material
     * \defgroup SolidSystems Solid Systems
     * \brief Solid systems express the thermodynamic relations (functions).
     *
     * Since functions do
     *  not exhibit any internal state, solid systems are stateless classes,
     *  i.e. all member functions are static. This is a conscious
     *  decision since the thermodynamic state of the system is expressed by
     *  a solid state!
     */
    /*!
     * \ingroup Material
     * \defgroup SpatialParameters Spatial Parameters
     * \brief Parameters of the porous matrix and other parameter varying with position (e.g. porosity)
     *
     * All parameters which depend on the matrix and
     * therefore on the position within the model domain are defined as spatial
     * parameters. For example permeability, porosity etc.
     *
     */

/* ***************** Adaptive ******************/
/*!
 * \defgroup Adaptive Adaptive
 * \brief Adaptive grids
 */

/* ***************** Assembly and Solvers ******************/
/*!
 * \defgroup AssemblyAndSolvers Assembly and Solvers
 * \brief Assembling matrices and vectors, solvers for linear and nonlinear equations
 */
    /*!
     * \ingroup AssemblyAndSolvers
     * \defgroup Assembly Assembly
     * \brief Assembly of linear systems (Jacobian and residual)
     */
    /*!
     * \ingroup AssemblyAndSolvers
     * \defgroup Linear Linear
     * \brief Linear solvers and helpers
     */
    /*!
     * \ingroup AssemblyAndSolvers
     * \defgroup Nonlinear Nonlinear
     * \brief Nonlinear solvers: Newton method
     */
    /*!
     * \ingroup AssemblyAndSolvers
     * \defgroup Parallel Parallel
     * \brief Files for communication of parallel solvers
     */

 /* ***************** Common ******************/
/*!
 * \defgroup Common Common
 * \brief Common classes, functions, properties and concepts
 */
    /*!
     * \ingroup Common
     * \defgroup Properties Properties
     * \brief Basic properties of all models in DuMu<sup>x</sup>
     */
    /*!
     * \ingroup Common
     * \defgroup Typetraits Typetraits
     * \brief Basic Type traits in DuMu<sup>x</sup>
     */

/* ***************** InputOutput ******************/
/*!
 * \defgroup InputOutput Input Output
 * \brief Input and output of data and grids
 */

/* ***************** MultiDomain ******************/
/*!
 * \defgroup MultiDomain Multidomain simulations
 * \brief Coupling of several regular DuMu<sup>x</sup> problems
 *
 * The multi domain module allows coupling regular DuMu<sup>x</sup> problems.
 * Several coupling modes are currently available.
 */
    /*!
     * \ingroup MultiDomain
     * \defgroup BoundaryCoupling Boundary coupling mode
     * \brief Couples problems of different or equal dimension that touch at the domain boundary. Examples are equal-dimension multi-physics problems like Darcy-Stokes coupling or PNM (pore network model)-Darcy coupling.
     */
        /*!
         * \ingroup BoundaryCoupling
         * \defgroup DarcyDarcyCoupling Darcy-Darcy domain coupling
         * \brief Couples domains with equal-dimension multi-physics problems in a Darcy-Darcy coupling.
         */
        /*!
         * \ingroup BoundaryCoupling
         * \defgroup StokesDarcyCoupling Stokes-Darcy domain coupling
         * \brief Couples domains with equal-dimension multi-physics problems in a Stokes-Darcy coupling.
         */
    /*!
     * \ingroup MultiDomain
     * \defgroup EmbeddedCoupling Embedded mixed-dimension coupling mode
     * \brief Couples problems of different dimensions where one or more lower-dimensional problems (lowdim) are embedded in a          higher-dimensional domain (bulk). Examples are embedded one-dimensional networks for the simulation of blood tissue perfusion, or root-soil interaction, and embedded fracture models.
     */
    /*!
     * \ingroup MultiDomain
     * \defgroup FacetCoupling Conforming mixed-dimension facet coupling mode
     * \brief Couples problems of different dimensions where one or more lower-dimensional problems (lowdim) live on the facets of the          higher-dimensional domain (bulk). Examples are discrete facet conforming fracture models and problems with physics on a domain surface.
     */
