diff --git a/doc/doxygen/DoxygenDumuxLayout.xml b/doc/doxygen/DoxygenDumuxLayout.xml index f11257461a58d5213430671e7727e11d4d3f7efb..43e9485f2031b64d55307310648db1014971a055 100644 --- a/doc/doxygen/DoxygenDumuxLayout.xml +++ b/doc/doxygen/DoxygenDumuxLayout.xml @@ -19,10 +19,10 @@ SPDX-License-Identifier: GPL-3.0-or-later <tab type="user" url="@ref external-libraries" visible="yes" title="External libraries" intro=""/> <tab type="user" url="@ref examples-and-tutorials" visible="yes" title="Examples and tutorials" intro=""/> <tab type="usergroup" url="@ref usage-documentation" visible="yes" title="Usage documentation" > - <tab type="user" url="@ref runtime-parameters" visible="yes" title="Runtime Parameters" intro=""/> + <tab type="user" url="@ref runtime-parameters" visible="yes" title="Runtime parameters" intro=""/> <tab type="user" url="@ref running-in-parallel" visible="yes" title="Running in parallel" intro=""/> <tab type="user" url="@ref input-and-output-formats" visible="yes" title="Input and output formats" intro=""/> - <tab type="user" url="@ref directory-structure" visible="yes" title="Where to find things" intro=""/> + <tab type="user" url="@ref directory-structure" visible="yes" title="Directory structure" intro=""/> </tab> <tab type="modules" visible="yes" title="Module documentation" intro=""/> <tab type="user" url="@ref flow-and-transport-in-porous-media" visible="yes" title="Flow and transport in porous media" intro=""/> diff --git a/doc/doxygen/Doxylocal b/doc/doxygen/Doxylocal index edc7100aa000c80a1798ae95a1f7561f7818f113..c7e8799820e7dc732c431a92e26643524b81e79f 100644 --- a/doc/doxygen/Doxylocal +++ b/doc/doxygen/Doxylocal @@ -22,6 +22,7 @@ TOC_INCLUDE_HEADINGS = 4 # custom doxygen commands ALIASES += mermaid{1}="@htmlonly <div class=\"mermaid\"> @endhtmlonly @htmlinclude \"\1.mmd\" @htmlonly </div> @endhtmlonly" +ALIASES += refdir{1}="@ref @top_srcdir@/\1" # Input filters run over content before it is parsed by Doxygen. # - Format markdown math for Doxygen. See the documentation in diff --git a/doc/doxygen/groups/usage.md b/doc/doxygen/groups/usage.md index 74e4e646556f9c43a6dc8bb6257c7097d2b16e24..c60b42d3ee4096c281095ade3c04f9078d131be6 100644 --- a/doc/doxygen/groups/usage.md +++ b/doc/doxygen/groups/usage.md @@ -9,3 +9,4 @@ DuMux programs in parallel. * @ref runtime-parameters * @ref running-in-parallel * @ref input-and-output-formats +* @ref directory-structure diff --git a/doc/doxygen/images/dumux_structure.mmd b/doc/doxygen/images/dumux_structure.mmd deleted file mode 100644 index c654993b63a82927ef4ddfce8e34b48e377bc6df..0000000000000000000000000000000000000000 --- a/doc/doxygen/images/dumux_structure.mmd +++ /dev/null @@ -1,47 +0,0 @@ -flowchart LR - dumux[dumux] - dumux --- adaptive(adaptive) ---- adaptivedescr{{"Data transfer on new grid adapation indicators."}} - dumux --- assemply(assembly) ---- assemblydescr{{"Matrix assembler and residual for all discretization methods."}} - dumux --- common(common) ---- commondescr{{"Common files of all models: - definition of boundary conditions, - time stepping, splines, - dimensionless numbers..."}} - common --- properties([properties]) --- propertiesdescr{{"Base properties for all models."}} - common --- typetraits([typetraits]) --- typetraitsdescr{{"Helper classes to query type information on compile time."}} - dumux --- discretization(discretization) ---- discretizationdescr{{"Common methods of all discretizations (box, cell-centered TPFA/MPFA, staggered grid): - varible caching, advective and diffusive fluxes..."}} - dumux --- experimental(experimental) ---- experimentaldesc{{"Collection of experimental features."}} - dumux --- flux(flux) ---- fluxdescr{{"Collection of classes used to calculate advective and diffusive fluxes."}} - dumux --- freeflow(freeflow) --- freeflowmodels([models]) --- freeflowdescr{{"Single-phase free flow models using Navier-Stokes - and eddy viscosity bases Reynolds-averaged - Navier-Stokes turbulence models and shallow water equation model."}} - dumux --- geomechanics(geomechanics) --- geomechanicsmodels([models]) --- geomechanicsdescr{{"Elastic and poro-elastic models."}} - dumux --- geometry(geometry) ---- geometrydescr{{"Geometrical algorithms."}} - dumux --- io(io) ---- iodescr{{"Additional in-/output possibilites like reastart files, - gnuplot-interface, VTK-writer extensions and files for grid generations."}} - dumux --- linear(linear) ---- lineardescr{{"Linear solver backend."}} - dumux --- material(material) --- binarycoefficients([binarycoefficents]) --- binarycoefficentsdescr{{"Binary coefficients (like binary diffusion coefficients) and - those needed for the constitutive relationships (e.g. Henry coefficient)."}} - material --- chemistry([chemistry]) --- chemistrydescr{{"Files needed to account for, e.g. electro-chemical processes as in a fuel cell."}} - material --- components([components]) --- componentsdescr{{"Properties of a pure chemical substance (e.g. water) or pseudo substance (e.g. air.)"}} - material --- constraintsolvers([constraintsolvers]) --- constrainsolversdescr{{"Constraint solvers to make sure - that the resulting fluid state is consistent with a given set of thermodynamic equations."}} - material --- eos([eos]) --- eosdescr{{"Equations of state (eos) are auxiliary classes which provide relations between a - fluid phase’s temperature, pressure, composition and density."}} - material --- fluidmatrixinteractions([fluidmatrixinteractions]) --- fluidmatrixinteractionsdescr{{"Constitutive relationships (e.g. capillary pressures, relative permeabilities)."}} - material --- fluidstates([fluidstates]) --- fluidstatesdescr{{"Fluid states are responsible for caching the thermodynamic configuration of a - fluid system at a given spatial and temporal position."}} - material --- fluidsystems([fluidsystems]) --- fluidsystemsdescr{{"Fluid systems express the thermodynamic relations between quantities."}} - material --- solidstates([solidstates]) --- solidstatesdescr{{"Solid states are responsible for caching the thermodynamic configuration of a - solid system at a given spatial and temporal position."}} - material --- solidsytems([solidsystems]) --- solidsystemsdescr{{"Solid systems express the thermodynamic properties of a solid."}} - dumux --- multidomain(multidomain) ---- multidomaindescr{{"Common infrastructure to couple multiple domains, models or physics."}} - multidomain --- embedded([embedded]) --- embeddeddescr{{"Embedding a lower-dimensional model into a higher-dimensional one."}} - multidomain --- facet([facet]) --- facetdescr{{"Mixed-dimensional coupling at facets."}} - multidomain --- boundary([boundary]) --- boundarydescr{{"Coupling at the domain boundaries."}} - dumux --- nonlinear(nonlinear) ---- nonlineardescr{{"Newton’s method."}} - dumux --- parallel(parllel) ---- paralleldescr{{"Helper files for parallel simulations."}} - dumux --- porenetwork(porenetwork) --- porenetworkmodels([models]) --- porenetworkdescr{{"Specific definition for porenetwork models."}} - dumux --- porousmediumflow(porousmediumflow) --- porousmediumflowmodels([models]) --- porousmediumflowdescr{{"Specific definition for porous medium flow simulations for all models: imple- - mentation of equations, model specific properties and indices."}} - dumux --- pyton(python) ---- pythondescr{{"The DuMux Python interface package."}} \ No newline at end of file diff --git a/doc/doxygen/pages/directory-structure.md b/doc/doxygen/pages/directory-structure.md index d0c97cdf3d145fc514acb0e367fef5a20a2559be..b6660dcacf1a0ac0bdc8c99e45b04c6665982d78 100644 --- a/doc/doxygen/pages/directory-structure.md +++ b/doc/doxygen/pages/directory-structure.md @@ -1,12 +1,33 @@ # Directory Structure +## Top Level + DuMux has the following folder structure, which is similar to other DUNE modules. * `bin`: binaries, e.g. used for the automatic testing, post-processing, installation * `cmake`: the configuration options for building DuMux -* `doc`: files necessary for the Doxygen documentation and various logos -* `dumux`: the main folder, containing the source files. See below for a visualized structure. +* @refdir{doc} "doc": files necessary for the Doxygen documentation and various logos +* @refdir{dumux} "dumux": the main folder, containing the source files. See below for more details. * `examples`: well-documented examples of applying DuMux to typical physical problems. In the `README.md` files, the setup is explained, the used code is presented as well as documented and images resulting from the simulation are included. The `README.md` files are located directly in the subfolders of `examples` and can be displayed by web browsers. -* `test`: tests for each numerical model and some functionality.The structure is equivalent to the `dumux` folder, the `references` folder contains solutions for the automatic testing. Each test program consist of a main file `main.cc`, the problem definition `*problem.hh` (specifying initial and boundary conditions), and an input file `params.input`. If necessary, spatially dependent parameters are defined in `*spatialparameters.hh`. For more detailed descriptions of the tests, please have a look at the [examples](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/tree/master/examples#open_file_folder-example-1-diffusion-equation). +* `test`: tests for each numerical model and some functionality.The structure is equivalent to the `dumux` folder, the `references` folder contains solutions for the automatic testing. Each test program consists of a main file `main.cc`, the problem definition `*problem.hh` (specifying initial and boundary conditions), and an input file `params.input`. If necessary, spatially dependent parameters are defined in `*spatialparameters.hh`. For more detailed descriptions of the tests, please have a look at the [examples](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/tree/master/examples#open_file_folder-example-1-diffusion-equation). + +## The Folder dumux -@mermaid{"./images/dumux_structure.mmd} \ No newline at end of file +* @refdir{dumux/adaptive} "adaptive": Data transfer between grid views, adaptation indicators. +* @refdir{dumux/assembly} "assembly": Matrix assembler and residual calculation for all discretization methods. +* @refdir{dumux/common} "common": Property system, base classes, boundary conditions, time stepping, splines, dimensionless numbers, type traits, ... +* @refdir{dumux/discretization} "discretization": Infrastructure for discretizations (box, cell-centered, staggered, ...). +* @refdir{dumux/experimental} "experimental": New features, may undergo disruptive changes. +* @refdir{dumux/flux} "flux": Calculation of advective and diffusive fluxes for different discretization schemes. +* @refdir{dumux/freeflow} "freeflow": Single-phase free flow models using Navier-Stokes and eddy-viscosity based Reynolds-averaged Navier-Stokes turbulence models, and shallow water equation model. +* @refdir{dumux/geomechanics} "geomechanics": Elastic and poro-elastic geomechanics models. +* @refdir{dumux/geometry} "geometry": Bounding boxes, intersections, distances, ... +* @refdir{dumux/io} "io": In-/output functionalities such as restart files, gnuplot interface, VTKWriter extensions and grid managers. +* @refdir{dumux/linear} "linear": Linear solver backends. +* @refdir{dumux/material} "material": Constitutive relations and their parameters, definition of components and fluid/solid phases. +* @refdir{dumux/multidomain} "multidomain": Common infrastructure to couple multiple domains of possibly different physics, dimensions and/or locations. +* @refdir{dumux/nonlinear} "nonlinear": Newton's method. +* @refdir{dumux/parallel} "parallel": Helper files for parallel simulations. +* @refdir{dumux/porenetwork} "porenetwork": Models describing a porous medium as a set of pore bodies interconnected by pore throats. +* @refdir{dumux/porousmediumflow} "porousmediumflow": Models for describing flow and mass/momentum/energy transport in a porous medium on the Darcy scale. +* @refdir{dumux/python} "python": Definition of Python bindings for C++ functionalities.