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-2025 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  //- Predict the momentum transport
101  virtual void momentumTransportPredictor();
102 
103  //- Predict thermophysical transport
104  virtual void thermophysicalTransportPredictor();
105 
106  //- Construct and optionally solve the momentum equation
107  virtual void momentumPredictor();
108 
109  //- Construct and solve the energy equation,
110  // convert to temperature
111  // and update thermophysical and transport properties
112  virtual void thermophysicalPredictor();
113 
114  //- Construct and solve the pressure equation in the PISO loop
115  virtual void pressureCorrector();
116 
117  //- Correct the momentum transport
118  virtual void momentumTransportCorrector();
119 
120  //- Correct the thermophysical transport
121  virtual void thermophysicalTransportCorrector();
122 
123  //- Called after the PIMPLE loop at the end of the time-step
124  virtual void postSolve();
125 
126 
127  // Member Operators
128 
129  //- Disallow default bitwise assignment
130  void operator=(const movingMesh&) = delete;
131 };
132 
133 
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 
136 } // End namespace solvers
137 } // End namespace Foam
138 
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 
141 #endif
142 
143 // ************************************************************************* //
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:96
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:105
virtual void momentumTransportCorrector()
Correct the momentum transport.
Definition: movingMesh.C:113
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:121
virtual void momentumTransportPredictor()
Predict the momentum transport.
Definition: movingMesh.C:93
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:109
virtual ~movingMesh()
Destructor.
Definition: movingMesh.C:57
virtual void momentumPredictor()
Construct and optionally solve the momentum equation.
Definition: movingMesh.C:101
TypeName("movingMesh")
Runtime type information.
virtual void thermophysicalTransportCorrector()
Correct the thermophysical transport.
Definition: movingMesh.C:117
virtual void preSolve()
Called at the start of the time-step, before the PIMPLE loop.
Definition: movingMesh.C:69
virtual void thermophysicalTransportPredictor()
Predict thermophysical transport.
Definition: movingMesh.C:97
Namespace for OpenFOAM.