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-2022 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 #include "PtrDictionary.H"
44 
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 
47 namespace Foam
48 {
49 
50 /*---------------------------------------------------------------------------*\
51  Class motionSolverList Declaration
52 \*---------------------------------------------------------------------------*/
53 
54 class motionSolverList
55 :
56  public motionSolver
57 {
58  // Private Data
59 
60  PtrDictionary<motionSolver> motionSolvers_;
61 
62 
63 public:
64 
65  //- Runtime type information
66  TypeName("motionSolverList");
67 
68 
69  // Constructors
70 
71  //- Construct from mesh and dictionary
73  (
74  const word& name,
75  const polyMesh&,
76  const dictionary&
77  );
78 
79  //- Disallow default bitwise copy construction
80  motionSolverList(const motionSolverList&) = delete;
81 
82 
83  //- Destructor
84  virtual ~motionSolverList();
85 
86 
87  // Member Functions
88 
89  //- Provide current points for motion. Uses current motion field
90  virtual tmp<pointField> curPoints() const;
91 
92  //- Solve for motion
93  virtual void solve();
94 
95  //- Update local data for geometry changes
96  virtual void movePoints(const pointField&);
97 
98  //- Update local data for topology changes
99  virtual void topoChange(const polyTopoChangeMap&);
100 
101  //- Update from another mesh using the given map
102  virtual void mapMesh(const polyMeshMap&);
103 
104  //- Update corresponding to the given distribution map
105  virtual void distribute(const polyDistributionMap&);
106 
107 
108  // Member Operators
109 
110  //- Disallow default bitwise assignment
111  void operator=(const motionSolverList&) = delete;
112 };
113 
114 
115 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 
117 } // End namespace Foam
118 
119 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 
121 #endif
122 
123 // ************************************************************************* //
Template dictionary class which manages the storage associated with it.
Definition: PtrDictionary.H:53
virtual ~motionSolverList()
Destructor.
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
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:156
Virtual base class for mesh motion solver.
Definition: motionSolver.H:56
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
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.
TypeName("motionSolverList")
Runtime type information.
motionSolverList(const word &name, const polyMesh &, const dictionary &)
Construct from mesh and dictionary.
A class for handling words, derived from string.
Definition: word.H:59
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
virtual void distribute(const polyDistributionMap &)
Update corresponding to the given distribution map.
const word & name() const
Return name.
Definition: motionSolver.H:125
virtual void topoChange(const polyTopoChangeMap &)
Update local data for topology changes.
virtual tmp< pointField > curPoints() const
Provide current points for motion. Uses current motion field.
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:76
A class for managing temporary objects.
Definition: PtrList.H:53
Class containing mesh-to-mesh mapping information.
Definition: polyMeshMap.H:50
Namespace for OpenFOAM.