Fix tutorials: typo in tutorials/viscoelastic/viscoelasticFluidFoam/S-MDCPP/constant...
[OpenFOAM-1.6-ext.git] / src / engine / engineTopoChangerMesh / pistonDeform / pistonDeform.H
blob519e966b3c30b6372384b76b06b6d333dd94df06
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
27 #ifndef pistonDeform_H
28 #define pistonDeform_H
30 #include "engineTopoChangerMesh.H"
31 #include "simpleEnginePiston.H"
32 #include "motionSolver.H"
33 #include "polyPatchID.H"
34 #include "polyMesh.H"
35 #include "volPointInterpolation.H"
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 namespace Foam
42 // Class forward declarations
44 /*---------------------------------------------------------------------------*\
45                            Class pistonDeform Declaration
46 \*---------------------------------------------------------------------------*/
48 class pistonDeform
50     public engineTopoChangerMesh
52     // Private data
54         //- Piston patch
55         simpleEnginePiston piston_;
57         //- Piston Position
58         scalar pistonPosition_;
60         //- deckHeight
61         scalar deckHeight_;
64     // Private Member Functions
66         //- Disallow default bitwise copy construct
67         pistonDeform(const pistonDeform&);
69         //- Disallow default bitwise assignment
70         void operator=(const pistonDeform&);
72         //- Check if all patches exist, then calculate virtualPistonPosition,
73         //  pistonPosition and deckHeight for the first time
74         void checkAndCalculate();
76         //- Add valve and piston zones and modifiers
77         void addZonesAndModifiers()
78         {}
80 public:
82     //- Runtime type information
83     TypeName("pistonDeform");
86     // Constructors
88         //- Construct from database
89         explicit pistonDeform(const IOobject& io);
92     // Destructor
94         virtual ~pistonDeform();
96     // Member Functions
99         const scalar& pistonPosition() const
100         {
101             return pistonPosition_;
102         }
104         scalar& pistonPosition()
105         {
106             return pistonPosition_;
107         }
109         const scalar& deckHeight() const
110         {
111             return deckHeight_;
112         }
114         scalar& deckHeight()
115         {
116             return deckHeight_;
117         }
119         const simpleEnginePiston& piston() const
120         {
121             return piston_;
122         }
125         //- Move and morph
126         virtual bool update();
128         //- Set boundary velocities
129         void setBoundaryVelocity(volVectorField& U);
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 } // End namespace Foam
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 #endif
141 // ************************************************************************* //