All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
motionSolverList.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) 2019 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::motionSolverList
26 
27 Description
28  Motion of the mesh specified as a list of motion solvers.
29 
30  The motion solvers are executed in order and the resulting displacements
31  accumulated into an overall displacement and the displaced point positions
32  returned.
33 
34 SourceFiles
35  motionSolverList.C
36 
37 \*---------------------------------------------------------------------------*/
38 
39 #ifndef motionSolverList_H
40 #define motionSolverList_H
41 
42 #include "motionSolver.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class motionSolverList Declaration
51 \*---------------------------------------------------------------------------*/
52 
53 class motionSolverList
54 :
55  public motionSolver
56 {
57  // Private Data
58 
59  PtrList<motionSolver> motionSolvers_;
60 
61 
62 public:
63 
64  //- Runtime type information
65  TypeName("motionSolverList");
66 
67 
68  // Constructors
69 
70  //- Construct from mesh and dictionary
71  motionSolverList(const polyMesh&, const dictionary&);
72 
73  //- Disallow default bitwise copy construction
74  motionSolverList(const motionSolverList&) = delete;
75 
76 
77  //- Destructor
78  virtual ~motionSolverList();
79 
80 
81  // Member Functions
82 
83  //- Provide current points for motion. Uses current motion field
84  virtual tmp<pointField> curPoints() const;
85 
86  //- Solve for motion
87  virtual void solve();
88 
89  //- Update local data for geometry changes
90  virtual void movePoints(const pointField&);
91 
92  //- Update local data for topology changes
93  virtual void updateMesh(const mapPolyMesh&);
94 
95 
96  // Member Operators
97 
98  //- Disallow default bitwise assignment
99  void operator=(const motionSolverList&) = delete;
100 };
101 
102 
103 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 
105 } // End namespace Foam
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 #endif
110 
111 // ************************************************************************* //
virtual ~motionSolverList()
Destructor.
virtual void solve()
Solve for motion.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
Virtual base class for mesh motion solver.
Definition: motionSolver.H:55
void operator=(const motionSolverList &)=delete
Disallow default bitwise assignment.
virtual void movePoints(const pointField &)
Update local data for geometry changes.
Motion of the mesh specified as a list of motion solvers.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Definition: mapPolyMesh.H:158
TypeName("motionSolverList")
Runtime type information.
motionSolverList(const polyMesh &, const dictionary &)
Construct from mesh and dictionary.
virtual tmp< pointField > curPoints() const
Provide current points for motion. Uses current motion field.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Definition: List.H:70
virtual void updateMesh(const mapPolyMesh &)
Update local data for topology changes.
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:74
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.