Documentation 6b54b78464
Loading...
Searching...
No Matches
CFEAIteration.hpp
Go to the documentation of this file.
1/*!
2 * \file CFEAIteration.hpp
3 * \brief Headers of the iteration classes used by SU2_CFD.
4 * Each CIteration class represents an available physics package.
5 * \author F. Palacios, T. Economon
6 * \version 8.5.0 "Harrier"
7 *
8 * SU2 Project Website: https://su2code.github.io
9 *
10 * The SU2 Project is maintained by the SU2 Foundation
11 * (http://su2foundation.org)
12 *
13 * Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
14 *
15 * SU2 is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU Lesser General Public
17 * License as published by the Free Software Foundation; either
18 * version 2.1 of the License, or (at your option) any later version.
19 *
20 * SU2 is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * Lesser General Public License for more details.
24 *
25 * You should have received a copy of the GNU Lesser General Public
26 * License along with SU2. If not, see <http://www.gnu.org/licenses/>.
27 */
28
29#pragma once
30
31#include "CIteration.hpp"
32
33/*!
34 * \class CFEAIteration
35 * \ingroup Drivers
36 * \brief Class for driving an iteration of structural analysis.
37 * \author R. Sanchez
38 * \version 8.5.0 "Harrier"
39 */
40class CFEAIteration : public CIteration {
41 public:
42 /*!
43 * \brief Constructor of the class.
44 * \param[in] config - Definition of the particular problem.
45 */
46 explicit CFEAIteration(const CConfig* config) : CIteration(config) {}
47
48 /*!
49 * \brief Perform a single iteration for structural analysis using the Finite Element Method.
50 * \author R. Sanchez.
51 * \param[in] output - Pointer to the COutput class.
52 * \param[in] integration - Container vector with all the integration methods.
53 * \param[in] geometry - Geometrical definition of the problem.
54 * \param[in] solver - Container vector with all the solutions.
55 * \param[in] numerics - Description of the numerical method (the way in which the equations are solved).
56 * \param[in] config - Definition of the particular problem.
57 * \param[in] surface_movement - Surface movement classes of the problem.
58 * \param[in] grid_movement - Volume grid movement classes of the problem.
59 * \param[in] FFDBox - FFD FFDBoxes of the problem.
60 * \param[in] val_iZone - Index of the zone.
61 * \param[in] val_iInst - Index of the instance layer.
62 */
63 void Iterate(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver,
64 CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement,
65 CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone,
66 unsigned short val_iInst) override;
67
68 /*!
69 * \brief Iterate the structural system for a number of Inner_Iter iterations.
70 * \param[in] output - Pointer to the COutput class.
71 * \param[in] integration - Container vector with all the integration methods.
72 * \param[in] geometry - Geometrical definition of the problem.
73 * \param[in] solver - Container vector with all the solutions.
74 * \param[in] numerics - Description of the numerical method (the way in which the equations are solved).
75 * \param[in] config - Definition of the particular problem.
76 * \param[in] surface_movement - Surface movement classes of the problem.
77 * \param[in] grid_movement - Volume grid movement classes of the problem.
78 * \param[in] FFDBox - FFD FFDBoxes of the problem.
79 * \param[in] val_iZone - zone of the problem.
80 */
81 void Solve(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver,
82 CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement,
83 CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone,
84 unsigned short val_iInst) override;
85
86 /*!
87 * \brief Updates the containers for the FEM system.
88 * \param[in] ??? - Description here.
89 */
90 void Update(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver,
91 CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement,
92 CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone,
93 unsigned short val_iInst) override;
94
95 /*!
96 * \brief Predictor.
97 * \param[in] output - Pointer to the COutput class.
98 * \param[in] integration - Container vector with all the integration methods.
99 * \param[in] geometry - Geometrical definition of the problem.
100 * \param[in] solver - Container vector with all the solutions.
101 * \param[in] numerics - Description of the numerical method (the way in which the equations are solved).
102 * \param[in] config - Definition of the particular problem.
103 * \param[in] surface_movement - Surface movement classes of the problem.
104 * \param[in] grid_movement - Volume grid movement classes of the problem.
105 * \param[in] FFDBox - FFD FFDBoxes of the problem.
106 */
107 void Predictor(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver,
108 CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement,
109 CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone,
110 unsigned short val_iInst) override;
111
112 /*!
113 * \brief Relaxation.
114 * \param[in] output - Pointer to the COutput class.
115 * \param[in] integration - Container vector with all the integration methods.
116 * \param[in] geometry - Geometrical definition of the problem.
117 * \param[in] solver - Container vector with all the solutions.
118 * \param[in] numerics - Description of the numerical method (the way in which the equations are solved).
119 * \param[in] config - Definition of the particular problem.
120 * \param[in] surface_movement - Surface movement classes of the problem.
121 * \param[in] grid_movement - Volume grid movement classes of the problem.
122 * \param[in] FFDBox - FFD FFDBoxes of the problem.
123 */
124 void Relaxation(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver,
125 CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement,
126 CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone,
127 unsigned short val_iInst) override;
128
129 /*!
130 * \brief Monitors the convergence and other metrics for the FEM system.
131 * \param[in] ??? - Description here.
132 */
133 bool Monitor(COutput* output, CIntegration**** integration, CGeometry**** geometry, CSolver***** solver,
134 CNumerics****** numerics, CConfig** config, CSurfaceMovement** surface_movement,
135 CVolumetricMovement*** grid_movement, CFreeFormDefBox*** FFDBox, unsigned short val_iZone,
136 unsigned short val_iInst) override;
137};
Headers of the iteration classes used by SU2_CFD. Each CIteration class represents an available physi...
Main class for defining the problem; basically this class reads the configuration file,...
Definition CConfig.hpp:64
Class for driving an iteration of structural analysis.
Definition CFEAIteration.hpp:40
void Update(COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
Updates the containers for the FEM system.
Definition CFEAIteration.cpp:198
bool Monitor(COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
Monitors the convergence and other metrics for the FEM system.
Definition CFEAIteration.cpp:248
void Predictor(COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
Predictor.
Definition CFEAIteration.cpp:219
void Iterate(COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
Perform a single iteration for structural analysis using the Finite Element Method.
Definition CFEAIteration.cpp:31
CFEAIteration(const CConfig *config)
Constructor of the class.
Definition CFEAIteration.hpp:46
void Solve(COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
Iterate the structural system for a number of Inner_Iter iterations.
Definition CFEAIteration.cpp:264
void Relaxation(COutput *output, CIntegration ****integration, CGeometry ****geometry, CSolver *****solver, CNumerics ******numerics, CConfig **config, CSurfaceMovement **surface_movement, CVolumetricMovement ***grid_movement, CFreeFormDefBox ***FFDBox, unsigned short val_iZone, unsigned short val_iInst) override
Relaxation.
Definition CFEAIteration.cpp:229
Class for defining the free form FFDBox structure.
Definition CFreeFormDefBox.hpp:38
Parent class for defining the geometry of the problem (complete geometry, multigrid agglomerated geom...
Definition CGeometry.hpp:75
Main class for doing the space integration, time integration, and monitoring of a system of Partial D...
Definition CIntegration.hpp:47
Parent class for defining a single iteration of a physics problem.
Definition CIteration.hpp:50
Class for defining the numerical methods.
Definition CNumerics.hpp:48
Class for writing the convergence history and to write solution data to file.
Definition COutput.hpp:68
Definition CSolver.hpp:71
Class for moving the surface numerical grid.
Definition CSurfaceMovement.hpp:38
Class for moving the volumetric numerical grid.
Definition CVolumetricMovement.hpp:37