Skip to content

Commit

Permalink
add groups for a bunch of stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
pcarruscag committed Sep 20, 2022
1 parent 87f451e commit 735abb6
Show file tree
Hide file tree
Showing 89 changed files with 334 additions and 66 deletions.
106 changes: 102 additions & 4 deletions Common/doc/docmain.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,22 @@
* to perform PDE analysis and PDE constrained optimization. The toolset is designed with
* computational fluid dynamics and aerodynamic shape optimization in mind, but is extensible to
* include other families of governing equations such as potential flow, electrodynamics, chemically reacting
* flows, and many others. SU2 is released under an
* open-source license.
*
* The following technical documentation describes the structure and details of the source code for developers.
* flows, and many others. SU2 is released under an open-source license.
*
* The following technical documentation describes the structure and details of the source code for developers.
* Each module groups classes and functions dedicated to major areas or features of the code base.
* This documentation helps awnsering questions such as
* - What are the major classes of the code (architecture)?
* - How do those classes interact with each other?
* - What low-level functionality is already implemented that can be re-used?
*
* Given the use of polymorphism in SU2, it is usefull to start studying each module from the base class
* (which usually has a generic name), this will show the inheritance diagram for that family. Moreover,
* many important functions (defining the interactions between families) are implemented at the base level,
* the "call graph" of a function will show these interactions (derived classes only specialize certain details).
* Alternatively, "caller graphs" can be used to navigate to the larger classes that use smaller ones, and
* thus navigate the architecture from the bottom up (note that this will also be more effective if done
* for base classes).
*/

/*!
Expand Down Expand Up @@ -88,3 +100,89 @@
* \defgroup Elasticity_Equations Solving the elasticity equations
* \brief Group of classes to solve solid deformation problems.
*/

/*!
* \defgroup Interfaces Multiphysics interfaces
* \brief Classes for data transfer and interpolation across interfaces between zones.
*/

/*!
* \defgroup Drivers Iterative solution strategy
* \brief Group of classes which define the iterative process used to converge
* the equations (fluid, turbulence, elasticity, FSI, CHT, etc.).
* In general, "Driver" classes use "Iteration" classes to advance one inner
* iteration, in turn "Iteration" classes use "Integration" classes to perform
* space and time integration. The latter use mostly the "Solvers".
*/

/*!
* \defgroup Variable Storing solution variables
* \brief Classes used to store and access the solution variables of all types of problems.
*/

/*!
* \defgroup DiscAdj Discrete Adjoint
* \brief Classes and functions used to solve discrete adjoint equations.
*/

/*!
* \defgroup SpLinSys Sparse linear systems
* \brief Classes and function to represent and solve large distributed sparse linear systems.
*/

/*!
* \defgroup FvmAlgos General FVM algorithms
* \brief Common algorithms used in FVM implementations.
*/

/*!
* \defgroup FemAlgos General FEM algorithms
* \brief Common algorithms used in FEM implementations.
*/

/*!
* \defgroup Toolboxes Utility classes and functions
* \brief Several classes and functions that implement common operations.
*/

/*!
* \defgroup GeometryToolbox Geometry toolbox
* \brief Common geometry operations.
* \ingroup Toolboxes
*/

/*!
* \defgroup Containers Data containers
* \brief Container classes (vectors, matrices, ND-arrays, etc.).
* \ingroup Toolboxes
*/

/*!
* \defgroup LookUpInterp Look up and interpolation
* \brief Data look up and interpolation.
* \ingroup Toolboxes
*/

/*!
* \defgroup ADT Alternating Digital Tree
* \brief Tree-based searches (minimum distance, containment, etc.).
* \ingroup Toolboxes
*/

/*!
* \defgroup BLAS Dense linear algebra
* \brief Linear algebra functions and classes.
* \ingroup Toolboxes
*/

/*!
* \defgroup Graph Graph operations
* \brief Classes to represent graphs and functions to manipulate them (coloring, etc.).
* \ingroup Toolboxes
*/

/*!
* \defgroup SIMD Vectorization (SIMD)
* \brief Classes for explicit (done by the programmer) vectorization (SIMD) of computations.
* \ingroup Toolboxes
*/
1 change: 1 addition & 0 deletions Common/include/adt/CADTBaseClass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ using namespace std;

/*!
* \class CADTBaseClass
* \ingroup ADT
* \brief Base class for storing an ADT in an arbitrary number of dimensions.
* \author E. van der Weide
*/
Expand Down
1 change: 1 addition & 0 deletions Common/include/adt/CADTComparePointClass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

/*!
* \class CADTComparePointClass
* \ingroup ADT
* \brief Functor, used for the sorting of the points when building an ADT.
* \author E. van der Weide
*/
Expand Down
1 change: 1 addition & 0 deletions Common/include/adt/CADTElemClass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

/*!
* \class CADTElemClass
* \ingroup ADT
* \brief Class for storing an ADT of (linear) elements in an arbitrary number of dimensions.
* \author E. van der Weide
* \version 7.4.0 "Blackbird"
Expand Down
1 change: 1 addition & 0 deletions Common/include/adt/CADTNodeClass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

/*!
* \class CADTNodeClass
* \ingroup ADT
* \brief Class for storing the information needed in a node of an ADT.
* \author E. van der Weide
*/
Expand Down
1 change: 1 addition & 0 deletions Common/include/adt/CADTPointsOnlyClass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

/*!
* \class CADTPointsOnlyClass
* \ingroup ADT
* \brief Class for storing an ADT of only points in an arbitrary number of dimensions.
* \author E. van der Weide
*/
Expand Down
1 change: 1 addition & 0 deletions Common/include/adt/CBBoxTargetClass.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

/*!
* \class CBBoxTargetClass
* \ingroup ADT
* \brief Class for storing the information of a possible bounding box candidate
during a minimum distance search.
* \author E. van der Weide
Expand Down
5 changes: 5 additions & 0 deletions Common/include/containers/C2DContainer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
#include <utility>
#include <type_traits>

/// \addtogroup Containers
/// @{

/*!
* \enum StorageType
* \brief Supported ways to flatten a matrix into an array.
Expand Down Expand Up @@ -635,3 +638,5 @@ using su2activematrix = su2matrix<su2double>;

using su2passivevector = su2vector<passivedouble>;
using su2passivematrix = su2matrix<passivedouble>;

/// @}
1 change: 1 addition & 0 deletions Common/include/containers/CFastFindAndEraseQueue.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

/*!
* \class CFastFindAndEraseQueue
* \ingroup Containers
* \brief A queue-type container (push back, pop front), but with
* fast deletion of arbitrary items (possibly in the middle).
* \param[in] ItemType_ - Type of the stored items.
Expand Down
4 changes: 4 additions & 0 deletions Common/include/containers/CFileReaderLUT.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
#include "../../../Common/include/linear_algebra/blas_structure.hpp"
#include "../../../Common/include/toolboxes/CSquareMatrixCM.hpp"

/*!
* \brief File reader for look up tables.
* \ingroup LookUpInterp
*/
class CFileReaderLUT {
protected:
int rank;
Expand Down
4 changes: 4 additions & 0 deletions Common/include/containers/CLookUpTable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@
#include "CFileReaderLUT.hpp"
#include "CTrapezoidalMap.hpp"

/*!
* \brief Look up table.
* \ingroup LookUpInterp
*/
class CLookUpTable {
protected:
int rank; /*!< \brief MPI Rank. */
Expand Down
1 change: 1 addition & 0 deletions Common/include/containers/CTrapezoidalMap.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

/*!
* \class CTrapezoidalMap
* \ingroup LookUpInterp
* \brief Construction of trapezoidal map for tabulated lookup
* \author: D. Mayer, T. Economon
* \version 7.4.0 "Blackbird"
Expand Down
1 change: 1 addition & 0 deletions Common/include/containers/CVertexMap.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

/*!
* \class CVertexMap
* \ingroup Containers
* \brief A lookup type map, maps indices in a large range to indices in a smaller one.
*
* The usage case is:
Expand Down
5 changes: 5 additions & 0 deletions Common/include/containers/container_decorators.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@

#include "C2DContainer.hpp"

/// \addtogroup Containers
/// @{

/*!
* \brief Class to represent a matrix (without owning the data, this just wraps a pointer).
*/
Expand Down Expand Up @@ -283,3 +286,5 @@ inline void AllocVectorOfMatrices(const IndexVector& N, size_t P, VectorOfMatrix
auto M = N.size();
AllocVectorOfMatrices(M, N, P, X, val);
}

/// @}
14 changes: 13 additions & 1 deletion Common/include/geometry/elements/CElement.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

/*!
* \class CElement
* \ingroup FemAlgos
* \brief Abstract class for defining finite elements.
* \note Usage: Element instances are used to compute gradients (in reference or current
* coordinates), element matrices (stiffness, mass, etc.), and nodal residuals.
Expand Down Expand Up @@ -555,6 +556,7 @@ class CElement {

/*!
* \class CElementWithKnownSizes
* \ingroup FemAlgos
* \brief Templated class to implement the computation of gradients for specific element sizes.
* \author P. Gomes, R. Sanchez
*/
Expand Down Expand Up @@ -793,6 +795,7 @@ class CElementWithKnownSizes : public CElement {

/*!
* \class CTRIA1
* \ingroup FemAlgos
* \brief Tria element with 1 Gauss Points
* \author R. Sanchez
*/
Expand All @@ -819,6 +822,7 @@ class CTRIA1 final : public CElementWithKnownSizes<1,3,2> {

/*!
* \class CQUAD4
* \ingroup FemAlgos
* \brief Quadrilateral element with 4 Gauss Points
* \author R. Sanchez
*/
Expand Down Expand Up @@ -865,6 +869,7 @@ class CQUAD4 final : public CElementWithKnownSizes<4,4,2> {

/*!
* \class CTETRA1
* \ingroup FemAlgos
* \brief Tetrahedral element with 1 Gauss Point
* \author R. Sanchez
*/
Expand All @@ -890,6 +895,7 @@ class CTETRA1 final : public CElementWithKnownSizes<1,4,3> {

/*!
* \class CHEXA8
* \ingroup FemAlgos
* \brief Hexahedral element with 8 Gauss Points
* \author R. Sanchez
*/
Expand All @@ -916,6 +922,7 @@ class CHEXA8 final : public CElementWithKnownSizes<8,8,3> {

/*!
* \class CPYRAM5
* \ingroup FemAlgos
* \brief Pyramid element with 5 Gauss Points
* \author R. Sanchez, F. Palacios, A. Bueno, T. Economon, S. Padron.
*/
Expand All @@ -942,6 +949,7 @@ class CPYRAM5 final : public CElementWithKnownSizes<5,5,3> {

/*!
* \class CPRISM6
* \ingroup FemAlgos
* \brief Prism element with 6 Gauss Points
* \author R. Sanchez, F. Palacios, A. Bueno, T. Economon, S. Padron.
* \version 7.4.0 "Blackbird"
Expand Down Expand Up @@ -969,6 +977,7 @@ class CPRISM6 final : public CElementWithKnownSizes<6,6,3> {

/*!
* \class CTRIA3
* \ingroup FemAlgos
* \brief Tria element with 3 Gauss Points
* \author T.Dick
*/
Expand All @@ -995,6 +1004,7 @@ class CTRIA3 final : public CElementWithKnownSizes<3,3,2> {

/*!
* \class CTETRA4
* \ingroup FemAlgos
* \brief Tetrahedral element with 4 Gauss Points
* \author T.Dick
*/
Expand All @@ -1021,6 +1031,7 @@ class CTETRA4 final : public CElementWithKnownSizes<4,4,3> {

/*!
* \class CPYRAM6
* \ingroup FemAlgos
* \brief Pyramid element with 6 Gauss Points
* \author T.Dick
*/
Expand All @@ -1047,7 +1058,8 @@ class CPYRAM6 final : public CElementWithKnownSizes<6,5,3> {

/*!
* \class CLINE
* \brief line element with 2 Gauss Points
* \ingroup FemAlgos
* \brief Line element with 2 Gauss Points
* \author T.Dick
*/
class CLINE final : public CElementWithKnownSizes<2,2,1> {
Expand Down
2 changes: 2 additions & 0 deletions Common/include/geometry/elements/CElementProperty.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@

/*!
* \class CProperty
* \ingroup Elasticity_Equations
* \brief Base class for defining element properties.
* \author R. Sanchez
* \version 7.4.0 "Blackbird"
Expand Down Expand Up @@ -104,6 +105,7 @@ class CProperty {

/*!
* \class CElementProperty
* \ingroup Elasticity_Equations
* \brief Class for defining element properties for the structural solver.
* \author R. Sanchez
* \version 7.4.0 "Blackbird"
Expand Down
1 change: 1 addition & 0 deletions Common/include/geometry/elements/CGaussVariable.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

/*!
* \class CGaussVariable
* \ingroup FemAlgos
* \brief Main class for defining the gaussian points.
* \version 7.4.0 "Blackbird"
*/
Expand Down
13 changes: 2 additions & 11 deletions Common/include/graph_coloring_structure.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,13 @@ using namespace std;

/*!
* \class CGraphColoringStructure
* \brief Class, which provides graph coloring algorithms.
* \ingroup Graph
* \brief Class, which provides distributed graph coloring algorithms.
* \author: E. van der Weide
* \version 7.4.0 "Blackbird"
*/
class CGraphColoringStructure {
public:
/*!
* \brief Constructor of the class. Nothing to be done.
*/
CGraphColoringStructure(void);

/*!
* \brief Constructor of the class. Nothing to be done.
*/
~CGraphColoringStructure(void);

/*!
* \brief Function, which determines the colors for the vertices of the given graph.
* \param[in] config - Definition of the particular problem.
Expand Down
Loading

0 comments on commit 735abb6

Please sign in to comment.