multiValveEngineValveMotion.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) 2025-2026 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::solidBodyMotionFunctions::multiValveEngineValveMotion
26 
27 Description
28  Motion function for solid regions representing a valve. Looks up the
29  multiValveEngine mover from the associated fluid region and uses the motion
30  specified for one of the valves.
31 
32  Example specification, in constant/<solidRegion>/dynamicMeshDict:
33  \verbatim
34  mover
35  {
36  type pointMeshMover;
37  libs ("libfvMotionSolvers.so");
38 
39  pointMeshMover
40  {
41  type solidBody;
42  cellZone all;
43  solidBodyMotionFunction multiValveEngineValveMotion;
44  fluidRegion fluid;
45  valve iv;
46  }
47  }
48  \endverbatim
49 
50 SourceFiles
51  multiValveEngineValveMotion.C
52 
53 \*---------------------------------------------------------------------------*/
54 
55 #ifndef multiValveEngineValveMotion_H
56 #define multiValveEngineValveMotion_H
57 
59 
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 
62 namespace Foam
63 {
64 namespace solidBodyMotionFunctions
65 {
66 
67 /*---------------------------------------------------------------------------*\
68  Class multiValveEngineValveMotion Declaration
69 \*---------------------------------------------------------------------------*/
70 
72 :
74 {
75 private:
76 
77  // Private Data
78 
79  //- Name of the region in which the multiValveEngine mover is used
80  word fluidRegionName_;
81 
82  //- Name of the valve
83  word valveName_;
84 
85  //- Index of the valve
86  mutable label valveIndex_;
87 
88 
89 public:
90 
91  //- Runtime type information
92  TypeName("multiValveEngineValveMotion");
93 
94 
95  // Constructors
96 
97  //- Construct from components
99  (
100  const word& name,
101  const dictionary& SBMFCoeffs,
102  const Time& runTime
103  );
104 
105  //- Disallow default bitwise copy construction
107  (
109  ) = delete;
110 
111  //- Construct and return a clone
113  {
115  (
117  (
118  name_,
119  SBMFCoeffs_,
120  time_
121  )
122  );
123  }
124 
125 
126  //- Destructor
128 
129 
130  // Member Functions
131 
132  //- Return the solid-body motion transformation septernion
133  virtual septernion transformation() const;
134 
135  //- Update properties from given dictionary
136  virtual bool read(const dictionary& SBMFCoeffs);
137 
138 
139  // Member Operators
140 
141  //- Disallow default bitwise assignment
142  void operator=(const multiValveEngineValveMotion&) = delete;
143 };
144 
145 
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 
148 } // End namespace solidBodyMotionFunctions
149 } // End namespace Foam
150 
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
152 
153 #endif
154 
155 // ************************************************************************* //
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Definition: Time.H:76
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Septernion class used to perform translations and rotations in 3D space.
Definition: septernion.H:66
Base class for defining solid-body motions.
Motion function for solid regions representing a valve. Looks up the multiValveEngine mover from the ...
multiValveEngineValveMotion(const word &name, const dictionary &SBMFCoeffs, const Time &runTime)
Construct from components.
void operator=(const multiValveEngineValveMotion &)=delete
Disallow default bitwise assignment.
virtual autoPtr< solidBodyMotionFunction > clone() const
Construct and return a clone.
virtual septernion transformation() const
Return the solid-body motion transformation septernion.
TypeName("multiValveEngineValveMotion")
Runtime type information.
virtual bool read(const dictionary &SBMFCoeffs)
Update properties from given dictionary.
A class for handling words, derived from string.
Definition: word.H:63
Namespace for OpenFOAM.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59