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-2020 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 dynamicMultiMotionSolverFvMesh_H
39 #define 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  //- Specified cellZones
63  labelList zoneIDs_;
64 
65  //- Points to move per cellZone
66  labelListList pointIDs_;
67 
68 
69  // Private Member Functions
70 
71  //- No copy construct
73  (
75  ) = delete;
76 
77  //- No copy assignment
78  void operator=(const dynamicMultiMotionSolverFvMesh&) = delete;
79 
80 
81 public:
82 
83  //- Runtime type information
84  TypeName("dynamicMultiMotionSolverFvMesh");
85 
86 
87  // Constructors
88 
89  //- Construct from IOobject
91  (
92  const IOobject& io,
93  const bool doInit=true
94  );
95 
96 
97  //- Destructor
99 
100 
101  // Member Functions
102 
103  //- Initialise all non-demand-driven data
104  virtual bool init(const bool doInit);
105 
106  //- Update the mesh for both mesh motion and topology change
107  virtual bool update();
108 };
109 
110 
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 
113 } // End namespace Foam
114 
115 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 
117 #endif
118 
119 // ************************************************************************* //
Foam::IOobject
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition: IOobject.H:169
motionSolver.H
Foam::dynamicFvMesh
Abstract base class for geometry and/or topology changing fvMesh.
Definition: dynamicFvMesh.H:78
Foam::PtrList
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Definition: List.H:59
Foam::dynamicMultiMotionSolverFvMesh::TypeName
TypeName("dynamicMultiMotionSolverFvMesh")
Runtime type information.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::dynamicMultiMotionSolverFvMesh
Mesh motion described per cellZone. Individual motion solvers solve over whole domain but are only ap...
Definition: dynamicMultiMotionSolverFvMesh.H:52
Foam::List< label >
Foam::dynamicMultiMotionSolverFvMesh::init
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
Definition: dynamicMultiMotionSolverFvMesh.C:71
dynamicFvMesh.H
Foam::dynamicMultiMotionSolverFvMesh::~dynamicMultiMotionSolverFvMesh
~dynamicMultiMotionSolverFvMesh()=default
Destructor.
Foam::dynamicMultiMotionSolverFvMesh::update
virtual bool update()
Update the mesh for both mesh motion and topology change.
Definition: dynamicMultiMotionSolverFvMesh.C:171