dynamicMultiMotionSolverFvMesh.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2016-2022 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::dynamicMultiMotionSolverFvMesh
28 
29 Description
30  Mesh motion described per cellZone. Individual motion solvers solve
31  over whole domain but are only applied per cellZone.
32 
33 SourceFiles
34  dynamicMultiMotionSolverFvMesh.C
35 
36 \*---------------------------------------------------------------------------*/
37 
38 #ifndef Foam_dynamicMultiMotionSolverFvMesh_H
39 #define Foam_dynamicMultiMotionSolverFvMesh_H
40 
41 #include "dynamicFvMesh.H"
42 #include "motionSolver.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class dynamicMultiMotionSolverFvMesh Declaration
51 \*---------------------------------------------------------------------------*/
52 
54 :
55  public dynamicFvMesh
56 {
57  // Private Data
58 
59  //- The motion control function
60  PtrList<motionSolver> motionPtr_;
61 
62  //- Points to move, per motion solver
63  labelListList pointIDs_;
64 
65 
66  // Private Member Functions
67 
68  //- No copy construct
70  (
72  ) = delete;
73 
74  //- No copy assignment
75  void operator=(const dynamicMultiMotionSolverFvMesh&) = delete;
76 
77 
78 public:
79 
80  //- Runtime type information
81  TypeName("dynamicMultiMotionSolverFvMesh");
82 
83 
84  // Constructors
85 
86  //- Construct from IOobject
88  (
89  const IOobject& io,
90  const bool doInit=true
91  );
92 
93 
94  //- Destructor
95  virtual ~dynamicMultiMotionSolverFvMesh() = default;
96 
97 
98  // Member Functions
99 
100  //- Initialise all non-demand-driven data
101  virtual bool init(const bool doInit);
102 
103  //- Update the mesh for both mesh motion and topology change
104  virtual bool update();
105 };
106 
107 
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 
110 } // End namespace Foam
111 
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
113 
114 #endif
115 
116 // ************************************************************************* //
Mesh motion described per cellZone. Individual motion solvers solve over whole domain but are only ap...
virtual ~dynamicMultiMotionSolverFvMesh()=default
Destructor.
TypeName("dynamicMultiMotionSolverFvMesh")
Runtime type information.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
Definition: List.H:55
Abstract base class for geometry and/or topology changing fvMesh.
Definition: dynamicFvMesh.H:74
virtual bool update()
Update the mesh for both mesh motion and topology change.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Definition: IOobject.H:172
Namespace for OpenFOAM.