Flow123d  JS_before_hm-2-g912b55d
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 input_mod "Input" </b> module defines possible formats and structures of input files and their readers.
66  *
67  * <b> @ref mesh_mod Mesh </b> module contains discretization of a multidimensional computational domain and
68  * geometrical coincidence of mesh elements.
69  *
70  * <b> @ref flow_mod "Darcy flow" </b> module with mixed-hybrid solver of linear flow equation.
71  *
72  * <b> @ref transport_mod "Transport" </b> module with model of chemical substances transport.
73  *
74  * <b> @ref reactions_mod "Reactions" </b> module.
75  *
76  * @ref Authors "List of Contributors"
77  *
78  * $LastChangedDate$
79  *
80  */
81 
82 /**
83  *
84  *
85  * @page Authors
86  *
87  * Jan Březina - coordinator, parallelism, schur complements
88  *
89  * Otto Severýn - original multidimensional flow
90  *
91  * Milan Hokr - density driven flow
92  *
93  * Jiří Kopal - transport
94  *
95  * Jiří Hnídek - GMASH and VTK output classes, infrastructure
96  *
97  * Jiří Jeníček - JSON reader
98  *
99  * Lukáš Zedek - SEMCHEM interface, linear reactions
100  *
101  * Jakub Šístek - two level domain decomposition methods without overlap
102  *
103  * Dalibor Frydrich
104  *
105  * Jan Lisal
106  *
107  * Tomáš Bambuch - profiler class
108  *
109  * Michal Nekvasil - automatic builds and tests
110  */
111 
112 /**
113  * @defgroup system_mod System module
114  * System module contains general support classes for: debugging, error handling, profiling. There are also @ref Vector and @ref VectorId classes with
115  * their iterators.
116  *
117  * @defgroup io_mod Output
118  * This module should contain most of output classes in particular writers for particular file formats. In particular output into GMSH and VTK data formats.
119  *
120  * @defgroup la_mod Linear Algebra
121  * This module should contain various classes for linear algebra calculations. For small vectors and matrices we would like to use Armadillo library,
122  * but meanwhile we have such functionality in @ref math_fce.cc Class @ref LinSys is meant as C++ wrapper for PETSC and possibly for
123  * Trilinos. Class @ref SchurComplement provides parallel computation of Schur complements using PETSC library.
124  *
125  * @defgroup mesh_mod Mesh
126  * This module should contain classes to maintain and access multidimensional mesh with information about coincidence between elements of the meshes.
127  * More general we can think about several meshes (even with same dimension) with information about coincidence.
128  *
129  * @defgroup transport_mod Advection
130  * This module is for advection model. Currently we have only Finite volume implementation without diffusion/dispersion.
131  *
132  * @defgroup flow_mod Darcy flow
133  * This module contains Mixed-Hybrid and Lumped mixed-hybird discretization of Darcy flow equation for steady and unsteady case. It also contains particular
134  * postprocessing functionality as interpolation into continuous finite element space.
135  *
136  * @defgroup reactions_mod Chemical Reactions and Decays
137  *
138  *
139  */
140 
141 #ifndef MAIN_DOC_HH_
142 #define MAIN_DOC_HH_
143 
144 
145 #endif /* MAIN_DOC_HH_ */