Flow123d  jenkins-Flow123d-linux-release-multijob-282
main_doc.hh
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (C) 2007 Technical University of Liberec. All rights reserved.
4  *
5  * Please make a following refer to Flow123d on your project site if you use the program for any purpose,
6  * especially for academic research:
7  * Flow123d, Research Centre: Advanced Remedial Technologies, Technical University of Liberec, Czech Republic
8  *
9  * This program is free software; you can redistribute it and/or modify it under the terms
10  * of the GNU General Public License version 3 as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along with this program; if not,
17  * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 021110-1307, USA.
18  *
19  *
20  * $Id$
21  * $Revision$
22  * $LastChangedBy$
23  * $LastChangedDate$
24  */
25 
26 
27 /**
28  * @file main_doc.hh
29  * @mainpage
30  *
31  *
32  * <h1> Flow123d </h1>
33  *
34  * <h2>Purpose </h2>
35  * Flow123d is a simulator of underground water flow and transport processes.
36  * It is aimed in particular for large scale simulations and includes models for
37  * water flow in fully saturated porous medium, transport of several chemical substances, sorption of
38  * chemical substances into the rock matrix, and chemical reactions.
39  *
40  * <h2>Features </h2>
41  * <b> Complex domains </b> The main
42  * feature that distinguish it from other similar software is its capability to represent tiny dislocations
43  * in large scale domains as 2D and 1D objects and allows interaction of solution on domains of various dimensions.
44  *
45  * <b> Mixed-hybrid discretization of Darcy flow. </b> The water flow is driven by Darcy flow, this is basically steady state elliptic problem, but
46  * optionally one can consider compressibility of the water and surrounding rock. In the later case we solve a time dependent parabolic problem.
47  * For discretization of the elliptic or parabolic problem we use mixed-hybrid scheme of zero order using lowest order Raviart-Thomas base functions for
48  * discretization of the velocity field and piecewise constant base functions for the pressure and its traces on the interior mesh edges. Main advantage of the
49  * MH scheme is good approximation of the velocity field which is later used in the transport model. For the parabolic case we have implemented a lumping technique
50  * in order to prevent possible oscillations due to violation of the discrete maximum principle.
51  *
52  * <b> Advection </b> is modeled only by convection (diffusion/dispersion is in developement). We use simple Finite volume scheme with upwind and backward Euler
53  * for time discretization. Unfortunately for highly heterogeneous velocity field which is natural for preferential fracture flow, we have to satisfy CFL condition
54  * which bounds the time step to very small values. Advection module can also compute sorption and dual porosity model (substance exchange between mobile and
55  * immobile pores.
56  *
57  * <b> Reactions. </b> There are two modules for simulation of chemical reactions. SEMCHEM module can solve nonlinear differential equations rising form
58  * general multicompoent reactiong systems. On the other side this is very costly and is suitable only for small meshes. The second chemical module
59  * is fast but can cope only with linear reactions, i.e. decays.
60  *
61  * <b> Paralellism. </b> Both the water flow solver and transport solver can run in parallel on distributed memory systems. We use essentially PETSc and MPI libraries.
62  *
63  * <h2> Main program modules </h2>
64  *
65  * <b> @ref mesh_mod Mesh </b> module contains discretization of a multidimensional computational domain and
66  * geometrical coincidence of mesh elements.
67  *
68  * <b> @ref flow_mod "Darcy flow" </b> module with mixed-hybrid solver of linear flow equation.
69  *
70  * <b> @ref transport_mod "Transport" </b> module with model of chemical substances transport.
71  *
72  * <b> @ref reactions_mod "Reactions" </b> module.
73  *
74  * @ref Authors "List of Contributors"
75  *
76  * $LastChangedDate$
77  *
78  */
79 
80 /**
81  *
82  *
83  * @page Authors
84  *
85  * Jan Březina - coordinator, parallelism, schur complements
86  *
87  * Otto Severýn - original multidimensional flow
88  *
89  * Milan Hokr - density driven flow
90  *
91  * Jiří Kopal - transport
92  *
93  * Jiří Hnídek - GMASH and VTK output classes, infrastructure
94  *
95  * Jiří Jeníček - JSON reader
96  *
97  * Lukáš Zedek - SEMCHEM interface, linear reactions
98  *
99  * Jakub Šístek - two level domain decomposition methods without overlap
100  *
101  * Dalibor Frydrich
102  *
103  * Jan Lisal
104  *
105  * Tomáš Bambuch - profiler class
106  *
107  * Michal Nekvasil - automatic builds and tests
108  */
109 
110 /**
111  * @defgroup system_mod System module
112  * System module contains general support classes for: debugging, error handling, profiling. There are also @ref Vector and @ref VectorId classes with
113  * their iterators.
114  *
115  * @defgroup io_mod Input, Output
116  * This module should contain most of inpout and output classes in particular readers and writers for particular file formats. In particular
117  * mesh reader, JSON reader, and output into GMSH and VTK data formats.
118  *
119  * @defgroup la_mod Linear Algebra
120  * This module should contain various classes for linear algebra calculations. For small vectors and matrices we would like to use Armadillo library,
121  * but meanwhile we have such functionality in @ref math_fce.cc Class @ref LinSys is meant as C++ wrapper for PETSC and possibly for
122  * Trilinos. Class @ref SchurComplement provides parallel computation of Schur complements using PETSC library.
123  *
124  * @defgroup mesh_mod Mesh
125  * This module should contain classes to maintain and access multidimensional mesh with information about coincidence between elements of the meshes.
126  * More general we can think about several meshes (even with same dimension) with information about coincidence.
127  *
128  * @defgroup transport_mod Advection
129  * This module is for advection model. Currently we have only Finite volume implementation without diffusion/dispersion.
130  *
131  * @defgroup flow_mod Darcy flow
132  * This module contains Mixed-Hybrid and Lumped mixed-hybird discretization of Darcy flow equation for steady and unsteady case. It also contains particular
133  * postprocessing functionality as interpolation into continuous finite element space.
134  *
135  * @defgroup reactions_mod Chemical Reactions and Decays
136  *
137  *
138  */
139 
140 #ifndef MAIN_DOC_HH_
141 #define MAIN_DOC_HH_
142 
143 
144 #endif /* MAIN_DOC_HH_ */