Initial commit of NavalHydro package from Wikki to the ShipHydroSIG
[ShipHydroSIG.git] / src / vofDynamicMesh / lnInclude / excentreRotationFvMesh.H
blob526fc6a05598e7e1924860d182edcf4d9fb6c9b0
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
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 Class
26     excentreRotationFvMesh
28 Description
29     Automatic motion of the mesh for the shaking motion. Also allows 
30     the use of acceleration phase.
31     Specify rpm, time0, time1, rotAxis, eccentricty 
33 SourceFiles
34     excentreRotationFvMesh.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef excentreRotationFvMesh_H
39 #define excentreRotationFvMesh_H
41 #include "dynamicFvMesh.H"
42 #include "dimensionedTypes.H"
43 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 class motionSolver;
50 /*---------------------------------------------------------------------------*\
51                    Class excentreRotationFvMesh Declaration
52 \*---------------------------------------------------------------------------*/
54 class excentreRotationFvMesh
56     public dynamicFvMesh
58     // Private data
60         //- Moving mesh dictionary
61         dictionary dynamicMeshCoeffs_;
64         //- Rotational speed in rotations per minute 
65         scalar rpm_;
67         //- Ecentricity in metres
68         scalar excentre_;
71         //- Rotation Axis of the body
72         scalar rotAxis_;
74         //- Start Time
75         scalar time0_;
77         //- Acceleration interval
78         scalar time1_;
81     // Private Member Functions
83         //- Disallow default bitwise copy construct
84         excentreRotationFvMesh(const excentreRotationFvMesh&);
86         //- Disallow default bitwise assignment
87         void operator=(const excentreRotationFvMesh&);
90 public:
92     //- Runtime type information
93     TypeName("excentreRotationFvMesh");
96     // Constructors
98         //- Construct from IOobject
99         excentreRotationFvMesh(const IOobject& io);
102     // Destructor
104         ~excentreRotationFvMesh();
107     // Member Functions
109         //- Update the mesh for both mesh motion and topology change
110         virtual bool update();
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 } // End namespace Foam
118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 #endif
122 // ************************************************************************* //