All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
movingMesh.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::solvers::movingMesh
26 
27 Description
28  Solver module to move the mesh.
29 
30  Executes the mover, topoChanger and distributor specified in the
31  dynamicMeshDict.
32 
33 SourceFiles
34  movingMesh.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef movingMesh_H
39 #define movingMesh_H
40 
41 #include "solver.H"
42 
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 
45 namespace Foam
46 {
47 namespace solvers
48 {
49 
50 /*---------------------------------------------------------------------------*\
51  Class movingMesh Declaration
52 \*---------------------------------------------------------------------------*/
53 
54 class movingMesh
55 :
56  public solver
57 {
58  // Control parameters
59 
60  //- Maximum time-step
61  scalar maxDeltaT_;
62 
63 
64 public:
65 
66  //- Runtime type information
67  TypeName("movingMesh");
68 
69 
70  // Constructors
71 
72  //- Construct from region mesh
74 
75  //- Disallow default bitwise copy construction
76  movingMesh(const movingMesh&) = delete;
77 
78 
79  //- Destructor
80  virtual ~movingMesh();
81 
82 
83  // Member Functions
84 
85  //- Return the current maximum time-step for stable solution
86  virtual scalar maxDeltaT() const;
87 
88  //- Called at the start of the time-step, before the PIMPLE loop
89  virtual void preSolve();
90 
91  //- Called at the start of the PIMPLE loop to move the mesh
92  virtual void moveMesh();
93 
94  //- Corrections that follow mesh motion
95  virtual void motionCorrector();
96 
97  //- Called at the beginning of the PIMPLE loop
98  virtual void prePredictor();
99 
100  //- Construct and optionally solve the momentum equation
101  virtual void momentumPredictor();
102 
103  //- Construct and solve the energy equation,
104  // convert to temperature
105  // and update thermophysical and transport properties
106  virtual void thermophysicalPredictor();
107 
108  //- Construct and solve the pressure equation in the PISO loop
109  virtual void pressureCorrector();
110 
111  //- Correct the thermophysical transport modelling
112  virtual void postCorrector();
113 
114  //- Called after the PIMPLE loop at the end of the time-step
115  virtual void postSolve();
116 
117 
118  // Member Operators
119 
120  //- Disallow default bitwise assignment
121  void operator=(const movingMesh&) = delete;
122 };
123 
124 
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 
127 } // End namespace solvers
128 } // End namespace Foam
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 
132 #endif
133 
134 // ************************************************************************* //
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:99
Abstract base class for run-time selectable region solvers.
Definition: solver.H:56
const fvMesh & mesh
Region mesh.
Definition: solver.H:101
Solver module to move the mesh.
Definition: movingMesh.H:56
virtual void thermophysicalPredictor()
Construct and solve the energy equation,.
Definition: movingMesh.C:97
movingMesh(fvMesh &mesh)
Construct from region mesh.
Definition: movingMesh.C:43
virtual void prePredictor()
Called at the beginning of the PIMPLE loop.
Definition: movingMesh.C:89
void operator=(const movingMesh &)=delete
Disallow default bitwise assignment.
virtual void postSolve()
Called after the PIMPLE loop at the end of the time-step.
Definition: movingMesh.C:109
virtual void moveMesh()
Called at the start of the PIMPLE loop to move the mesh.
Definition: movingMesh.C:76
virtual scalar maxDeltaT() const
Return the current maximum time-step for stable solution.
Definition: movingMesh.C:63
virtual void motionCorrector()
Corrections that follow mesh motion.
Definition: movingMesh.C:85
virtual void pressureCorrector()
Construct and solve the pressure equation in the PISO loop.
Definition: movingMesh.C:101
virtual void postCorrector()
Correct the thermophysical transport modelling.
Definition: movingMesh.C:105
virtual ~movingMesh()
Destructor.
Definition: movingMesh.C:57
virtual void momentumPredictor()
Construct and optionally solve the momentum equation.
Definition: movingMesh.C:93
TypeName("movingMesh")
Runtime type information.
virtual void preSolve()
Called at the start of the time-step, before the PIMPLE loop.
Definition: movingMesh.C:69
Namespace for OpenFOAM.