Documentation a537f1bdf2
Loading...
Searching...
No Matches
CDeformationDriver.hpp
Go to the documentation of this file.
1/*!
2 * \file CDeformationDriver.hpp
3 * \brief Headers of the main subroutines for driving the mesh deformation.
4 * \author A. Gastaldi, H. Patel
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 "../../../Common/include/CConfig.hpp"
31#include "../../../Common/include/geometry/CGeometry.hpp"
32#include "../../../Common/include/grid_movement/CSurfaceMovement.hpp"
33#include "../../../Common/include/grid_movement/CVolumetricMovement.hpp"
34#include "../../../Common/include/parallelization/mpi_structure.hpp"
35#include "../../../SU2_CFD/include/drivers/CDriverBase.hpp"
36#include "../../../SU2_CFD/include/numerics/CNumerics.hpp"
37#include "../../../SU2_CFD/include/output/COutput.hpp"
38
40 protected:
41 bool haveSurfaceDeformation = false; // flag used to determine whether surface deformation is available for output
42
43 public:
44 /*!
45 * \brief Constructor of the class.
46 * \param[in] confFile - Configuration file name.
47 * \param[in] MPICommunicator - MPI communicator for SU2.
48 */
49 CDeformationDriver(char* confFile, SU2_Comm MPICommunicator);
50
51 /*!
52 * \brief Launch the driver computation.
53 */
54 void Run() override;
55
56 /*!
57 * \brief Deallocation routine.
58 */
59 void Finalize() override;
60
61 protected:
62 /*!
63 * \brief Read in the config and mesh files.
64 */
65 void PreprocessInput();
66
67 /*!
68 * \brief Construction of the edge-based data structure.
69 */
70 void InitializeGeometry();
71
72 /*!
73 * \brief Preprocess the output container.
74 */
75 void PreprocessOutput();
76
77 /*!
78 * \brief Preprocess the mesh solver container.
79 */
80 void InitializeSolver();
81
82 /*!
83 * \brief Preprocess the numerics container.
84 */
85 void InitializeNumerics();
86
87 /*!
88 * \brief Output the mesh.
89 */
90 void OutputFiles();
91
92 /*!
93 * \brief Mesh deformation based on linear elasticity solver (CMeshSolver).
94 */
95 void DeformMesh();
96
97 /*!
98 * \brief Mesh deformation based on legacy implementation.
99 */
100 void DeformLegacy();
101};
Definition CDeformationDriver.hpp:39
void DeformLegacy()
Mesh deformation based on legacy implementation.
Definition CDeformationDriver.cpp:312
void DeformMesh()
Mesh deformation based on linear elasticity solver (CMeshSolver).
Definition CDeformationDriver.cpp:292
void OutputFiles()
Output the mesh.
Definition CDeformationDriver.cpp:474
void Run() override
Launch the driver computation.
Definition CDeformationDriver.cpp:264
void InitializeNumerics()
Preprocess the numerics container.
Definition CDeformationDriver.cpp:242
void InitializeGeometry()
Construction of the edge-based data structure.
Definition CDeformationDriver.cpp:128
void Finalize() override
Deallocation routine.
Definition CDeformationDriver.cpp:551
bool haveSurfaceDeformation
Definition CDeformationDriver.hpp:41
void InitializeSolver()
Preprocess the mesh solver container.
Definition CDeformationDriver.cpp:228
void PreprocessOutput()
Preprocess the output container.
Definition CDeformationDriver.cpp:211
void PreprocessInput()
Read in the config and mesh files.
Definition CDeformationDriver.cpp:78
Base class for all drivers.
Definition CDriverBase.hpp:43
int SU2_Comm
Definition mpi_structure.hpp:619