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 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
90  explicit dynamicMultiMotionSolverFvMesh(const IOobject& io);
91 
92 
93  //- Destructor
95 
96 
97  // Member Functions
98 
99  //- Update the mesh for both mesh motion and topology change
100  virtual bool update();
101 };
102 
103 
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
105 
106 } // End namespace Foam
107 
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 
110 #endif
111 
112 // ************************************************************************* //
Foam::IOobject
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Definition: IOobject.H:104
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:65
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 >
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:147