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:56
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Motion of the mesh specified as a list of motion solvers.
TypeName("motionSolverList")
Runtime type information.
virtual tmp< pointField > curPoints() const
Provide current points for motion. Uses current motion field.
virtual void topoChange(const polyTopoChangeMap &)
Update local data for topology changes.
virtual void distribute(const polyDistributionMap &)
Update corresponding to the given distribution map.
virtual ~motionSolverList()
Destructor.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
virtual void movePoints(const pointField &)
Update local data for geometry changes.
motionSolverList(const word &name, const polyMesh &, const dictionary &)
Construct from mesh and dictionary.
void operator=(const motionSolverList &)=delete
Disallow default bitwise assignment.
virtual void solve()
Solve for motion.
Virtual base class for mesh motion solver.
Definition: motionSolver.H:57
const word & name() const
Return name.
Definition: motionSolver.H:125
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Class containing mesh-to-mesh mapping information.
Definition: polyMeshMap.H:51
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:80
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
A class for managing temporary objects.
Definition: tmp.H:55
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.