Documentation
6b54b78464
Loading...
Searching...
No Matches
docmain.hpp
Go to the documentation of this file.
1
/*!
2
* \file docmain.hpp
3
* \brief This file contains documentation for Doxygen and does not have any significance with respect to C++.
4
* \author F. Palacios
5
* \version 8.5.0 "Harrier"
6
*
7
* SU2 Project Website: https://su2code.github.io
8
*
9
* The SU2 Project is maintained by the SU2 Foundation
10
* (http://su2foundation.org)
11
*
12
* Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
13
*
14
* SU2 is free software; you can redistribute it and/or
15
* modify it under the terms of the GNU Lesser General Public
16
* License as published by the Free Software Foundation; either
17
* version 2.1 of the License, or (at your option) any later version.
18
*
19
* SU2 is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22
* Lesser General Public License for more details.
23
*
24
* You should have received a copy of the GNU Lesser General Public
25
* License along with SU2. If not, see <http://www.gnu.org/licenses/>.
26
*/
27
28
/*!
29
* \mainpage SU2 version 8.5.0 "Harrier"
30
* SU2 suite is an open-source collection of C++ based software tools
31
* to perform PDE analysis and PDE constrained optimization. The toolset is designed with
32
* computational fluid dynamics and aerodynamic shape optimization in mind, but is extensible to
33
* include other families of governing equations such as potential flow, electrodynamics, chemically reacting
34
* flows, and many others. SU2 is released under an open-source license.
35
*
36
* The following technical documentation describes the structure and details of the source code for developers.
37
* Each module groups classes and functions dedicated to major areas or features of the code base.
38
* This documentation helps awnsering questions such as
39
* - What are the major classes of the code (architecture)?
40
* - How do those classes interact with each other?
41
* - What low-level functionality is already implemented that can be re-used?
42
*
43
* Given the use of polymorphism in SU2, it is usefull to start studying each module from the base class
44
* (which usually has a generic name), this will show the inheritance diagram for that family. Moreover,
45
* many important functions (defining the interactions between families) are implemented at the base level,
46
* the "call graph" of a function will show these interactions (derived classes only specialize certain details).
47
* Alternatively, "caller graphs" can be used to navigate to the larger classes that use smaller ones, and
48
* thus navigate the architecture from the bottom up (note that this will also be more effective if done
49
* for base classes).
50
*
51
* ### Good practices when documenting classes and functions
52
*
53
* The groups and subgroups defined in this file form a hierarchy of doxygen modules, when documenting a
54
* class or free function it should be added to a group (member functions belong to the group of the class
55
* by default), otherwise it will be difficult to navigate to the documentation of the class or function.
56
* Therefore, all classes and functions should have a doxygen documentation block with at least \\brief and
57
* \\ingroup properties.
58
*
59
* Note that this is a work in progress and not all classes and functions are currently inserted into groups.
60
*/
61
62
/*!
63
* \defgroup Config Description of the Configuration Options
64
* \brief Group of variables that can be set using the configuration file.
65
*/
66
67
/*!
68
* \defgroup ConvDiscr Discretization of the convective terms
69
* \brief Group of classes which define the numerical methods for
70
* discretizing the convective terms of a Partial Differential Equation.
71
* There are methods for solving the direct, adjoint and linearized
72
* systems of equations.
73
*/
74
75
/*!
76
* \defgroup ViscDiscr Discretization of the viscous terms
77
* \brief Group of classes which define the numerical methods for
78
* discretizing the viscous terms of a Partial Differential Equation.
79
* There are methods for solving the direct, adjoint and linearized
80
* systems of equations.
81
*/
82
83
/*!
84
* \defgroup SourceDiscr Discretization of the source terms
85
* \brief Group of classes which define the numerical methods for
86
* discretizing the source terms of a Partial Differential Equation.
87
* There are methods for solving the direct, adjoint and linearized
88
* systems of equations.
89
*/
90
91
/*!
92
* \defgroup Euler_Equations Solving the Euler equations
93
* \brief Group of classes which define the system of Euler equations in
94
* three formulations: direct, adjoint, and linearized.
95
*/
96
97
/*!
98
* \defgroup Navier_Stokes_Equations Solving the Navier-Stokes equations
99
* \brief Group of classes which define the system of Navier-Stokes equations in
100
* three formulations: direct, adjoint, and linearized.
101
*/
102
103
/*!
104
* \defgroup Turbulence_Model Solving the turbulence model equations
105
* \brief Group of classes which define the turbulence model in
106
* three formulations: direct, adjoint, and linearized.
107
*/
108
109
/*!
110
* \defgroup Scalar_Transport Solving scalar transport equations
111
* \brief Classes to solve scalar transport equations.
112
*/
113
114
/*!
115
* \defgroup Elasticity_Equations Solving the elasticity equations
116
* \brief Group of classes to solve solid deformation problems.
117
*/
118
119
/*!
120
* \defgroup Interfaces Multiphysics interfaces
121
* \brief Classes for data transfer and interpolation across interfaces between zones.
122
*/
123
124
/*!
125
* \defgroup Drivers Iterative solution strategy
126
* \brief Group of classes which define the iterative process used to converge
127
* the equations (fluid, turbulence, elasticity, FSI, CHT, etc.).
128
* In general, "Driver" classes use "Iteration" classes to advance one inner
129
* iteration, in turn "Iteration" classes use "Integration" classes to perform
130
* space and time integration. The latter use mostly the "Solvers".
131
*/
132
133
/*!
134
* \defgroup PySU2 Python Wrapper functions
135
* \brief Functions of the driver classes (\ref Drivers) that can be used to customize SU2
136
* via Python. For example, set custom temperature distributions at boundaries,
137
* deform the mesh, etc.
138
*/
139
140
/*!
141
* \defgroup Variable Storing solution variables
142
* \brief Classes used to store and access the solution variables of all types of problems.
143
*/
144
145
/*!
146
* \defgroup Output Screen, history, and file output
147
* \brief Classes used to define the output of the solvers in SU2.
148
*/
149
150
/*!
151
* \defgroup DiscAdj Discrete Adjoint
152
* \brief Classes and functions used to solve discrete adjoint equations.
153
*/
154
155
/*!
156
* \defgroup GradSmooth Gradient Smoothing
157
* \brief Classes and functions used to smooth gradients from the discrete adjoint method.
158
* \ingroup DiscAdj
159
*/
160
161
/*!
162
* \defgroup SpLinSys Sparse linear systems
163
* \brief Classes and function to represent and solve large distributed sparse linear systems.
164
*/
165
166
/*!
167
* \defgroup FvmAlgos General FVM algorithms
168
* \brief Common algorithms used in FVM implementations.
169
*/
170
171
/*!
172
* \defgroup FemAlgos General FEM algorithms
173
* \brief Common algorithms used in FEM implementations.
174
*/
175
176
/*!
177
* \defgroup Toolboxes Utility classes and functions
178
* \brief Several classes and functions that implement common operations.
179
*/
180
181
/*!
182
* \defgroup GeometryToolbox Geometry toolbox
183
* \brief Common geometry operations.
184
* \ingroup Toolboxes
185
*/
186
187
/*!
188
* \defgroup Containers Data containers
189
* \brief Container classes (vectors, matrices, ND-arrays, etc.).
190
* \ingroup Toolboxes
191
*/
192
193
/*!
194
* \defgroup LookUpInterp Look up and interpolation
195
* \brief Data look up and interpolation.
196
* \ingroup Toolboxes
197
*/
198
199
/*!
200
* \defgroup ADT Alternating Digital Tree
201
* \brief Tree-based searches (minimum distance, containment, etc.).
202
* \ingroup Toolboxes
203
*/
204
205
/*!
206
* \defgroup BLAS Dense linear algebra
207
* \brief Linear algebra functions and classes.
208
* \ingroup Toolboxes
209
*/
210
211
/*!
212
* \defgroup VecExpr Vector math expression templates
213
* \brief Expression templates for level-1 BLAS operations.
214
* \ingroup BLAS
215
*/
216
217
/*!
218
* \defgroup Graph Graph operations
219
* \brief Classes to represent graphs and functions to manipulate them (coloring, etc.).
220
* \ingroup Toolboxes
221
*/
222
223
/*!
224
* \defgroup SIMD Vectorization (SIMD)
225
* \brief Classes for explicit (done by the programmer) vectorization (SIMD) of computations.
226
* \ingroup Toolboxes
227
*/
Docs
docmain.hpp
Generated by
1.9.8