Flow123d  master-469ee9f
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 is fast chemical module but can cope only with linear reactions. It allows to compute with different types of reactions: Radioactive decay,
58  * Sorption, First order reaction and Dual porosity.
59  *
60  * <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.
61  *
62  * <b> @ref assembly_process "Assembly Process" </b> All equations use effective assembly process. Detail description of individual steps and used classes.
63  *
64  * <h2> Main program modules </h2>
65  *
66  * <b> @ref input_mod "Input" </b> module defines possible formats and structures of input files and their readers.
67  *
68  * <b> @ref mesh_mod Mesh </b> module contains discretization of a multidimensional computational domain and
69  * geometrical coincidence of mesh elements.
70  *
71  * <b> @ref flow_mod "Darcy flow" </b> module with mixed-hybrid solver of linear flow equation.
72  *
73  * <b> @ref transport_mod "Transport" </b> module with model of chemical substances transport.
74  *
75  * <b> @ref reactions_mod "Reactions" </b> module.
76  *
77  * @ref Authors "List of Contributors"
78  *
79  * $LastChangedDate$
80  *
81  */
82 
83 /**
84  *
85  *
86  * @page Authors
87  *
88  * Active developers
89  * =================
90  *
91  * Jan Březina - coordinator, Fields, Mesh, Richards
92  *
93  * Jan Stebel - DG transport, Mechanics, HM coupling, fracture contacts
94  *
95  * David Flanderka - new assembly algorithm, bug fixes, technical improvements
96  *
97  * Pavel Exner - mesh intersections, tests, bug fixes
98  *
99  *
100  * Contributors
101  * ============
102  *
103  * Otto Severýn - first versions of multidimensional flow
104  *
105  * Milan Hokr - density driven flow
106  *
107  * Jan Hybš - profiler, Python formaters, infrastructure
108  *
109  * Jiří Kopal - FV transport
110  *
111  * Jiří Hnídek - GMESH and VTK output classes, infrastructure
112  *
113  * Jiří Jeníček - JSON reader
114  *
115  * Lukáš Zedek - projection algorithm for fast non-linear sorption, linear reactions
116  *
117  * Jakub Šístek - two level domain decomposition method without overlap
118  *
119  * Dalibor Frydrich
120  *
121  * Jan Lisal
122  *
123  * Tomáš Bambuch - profiler class
124  */
125 
126 /**
127  * @defgroup system_mod System module
128  * System module contains general support classes for: debugging, error handling, profiling. There are also @ref Vector and @ref VectorId classes with
129  * their iterators.
130  *
131  * @defgroup io_mod Output
132  * This module should contain most of output classes in particular writers for particular file formats. In particular output into GMSH and VTK data formats.
133  *
134  * @defgroup la_mod Linear Algebra
135  * This module should contain various classes for linear algebra calculations. For small vectors and matrices we would like to use Armadillo library,
136  * but meanwhile we have such functionality in @ref math_fce.cc Class @ref LinSys is meant as C++ wrapper for PETSC and possibly for
137  * Trilinos. Class @ref SchurComplement provides parallel computation of Schur complements using PETSC library.
138  *
139  * @defgroup mesh_mod Mesh
140  * This module should contain classes to maintain and access multidimensional mesh with information about coincidence between elements of the meshes.
141  * More general we can think about several meshes (even with same dimension) with information about coincidence.
142  *
143  * @defgroup transport_mod Advection
144  * This module is for advection model. Currently we have only Finite volume implementation without diffusion/dispersion.
145  *
146  * @defgroup flow_mod Darcy flow
147  * This module contains Mixed-Hybrid and Lumped mixed-hybird discretization of Darcy flow equation for steady and unsteady case. It also contains particular
148  * postprocessing functionality as interpolation into continuous finite element space.
149  *
150  * @defgroup reactions_mod Chemical Reactions and Decays
151  *
152  *
153  */
154 
155 #ifndef MAIN_DOC_HH_
156 #define MAIN_DOC_HH_
157 
158 
159 #endif /* MAIN_DOC_HH_ */