Documentation 6b54b78464
Loading...
Searching...
No Matches
CFEASolverBase.hpp
Go to the documentation of this file.
1/*!
2 * \file CFEASolver.hpp
3 * \brief Base class template for all FEA solvers using the SU2 internal finite elements.
4 * \author T. Dick
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#pragma once
29
30#include <unordered_set>
31
32#include "CSolver.hpp"
33#include "../../../Common/include/geometry/elements/CElement.hpp"
34#include "../../../Common/include/parallelization/omp_structure.hpp"
35
36/*!
37 * \class CFEASolverBase
38 * \ingroup Elasticity_Equations
39 * \brief Base class for FEM elasticity solvers.
40 */
41class CFEASolverBase : public CSolver {
42 public:
43 enum : size_t {MAXNNODE_2D = 4};
44 enum : size_t {MAXNNODE_3D = 8};
45 enum : size_t {MAXNDIM = 3};
46 enum : size_t {MAXNVAR = 3};
47 enum : size_t {OMP_MIN_SIZE = 32};
48 enum : size_t {OMP_MAX_SIZE = 512};
49
50 protected:
51
52 CElement*** element_container = nullptr; /*!< \brief Vector which the define the finite element structure for each problem. */
53 unsigned long nElement; /*!< \brief Number of elements. */
54
55 vector<unsigned long> ExtraVerticesToEliminate; /*!< Extra vertices for row/column elimination, see CommunicateExtraEliminationVertices. */
56
57 public:
58 /*!
59 * \brief Constructor of the class.
60 * \param[in] mesh_deform_mode - mode of operation for the linear solver.
61 */
63
64 /*!
65 * \overload
66 * \param[in] geometry - Geometrical definition of the problem.
67 * \param[in] config - Definition of the particular problem.
68 * \param[in] mesh_deform_mode - mode of operation for the linear solver.
69 */
71
72 /*!
73 * \brief Destructor of the class.
74 */
76
77 /*!
78 * \brief Communicate extra vertices for elimination in the linear system.
79 * \param[in] geometry - Geometrical definition of the problem.
80 * \param[in] myPoints - List of global point indeces to eliminate.
81 * \param[in] val_coord - Location (x, y, z) of the max residual point.
82 */
83 void CommunicateExtraEliminationVertices(const CGeometry* geometry, vector<unsigned long>& myPoints);
84
85};
Headers of the CSolver class which is inherited by all of the other solvers.
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Abstract class for defining finite elements.
Definition CElement.hpp:58
Base class for FEM elasticity solvers.
Definition CFEASolverBase.hpp:41
~CFEASolverBase()
Destructor of the class.
Definition CFEASolverBase.cpp:62
@ MAXNVAR
Definition CFEASolverBase.hpp:46
void CommunicateExtraEliminationVertices(const CGeometry *geometry, vector< unsigned long > &myPoints)
Communicate extra vertices for elimination in the linear system.
Definition CFEASolverBase.cpp:77
unsigned long nElement
Number of elements.
Definition CFEASolverBase.hpp:53
@ MAXNDIM
Definition CFEASolverBase.hpp:45
@ OMP_MAX_SIZE
Definition CFEASolverBase.hpp:48
vector< unsigned long > ExtraVerticesToEliminate
Definition CFEASolverBase.hpp:55
@ OMP_MIN_SIZE
Definition CFEASolverBase.hpp:47
CElement *** element_container
Vector which the define the finite element structure for each problem.
Definition CFEASolverBase.hpp:52
@ MAXNNODE_3D
Definition CFEASolverBase.hpp:44
@ MAXNNODE_2D
Definition CFEASolverBase.hpp:43
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
Definition CSolver.hpp:71
LINEAR_SOLVER_MODE
Type of operation for the linear system solver, changes the source of solver options.
Definition option_structure.hpp:3027
@ STANDARD
Operate in standard mode.