Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / dynamicFvMesh / solidBodyMotionFvMesh / solidBodyMotionFunctions / SDA / SDA.H
blob147d5b92a170cc42a1f9714ef304b9c966110b7a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::solidBodyMotionFunctions::SDA
27 Description
28     Ship design analysis (SDA) 3DoF motion function.
30     Comprising sinusoidal roll (rotation about x), heave (z-translation)
31     and sway (y-translation) motions with changing amplitude and phase.
33 See Also
34     SKA (Sea Keeping Analysis) for 6DoF motion.
36 SourceFiles
37     SDA.C
39 \*---------------------------------------------------------------------------*/
41 #ifndef SDA_H
42 #define SDA_H
44 #include "solidBodyMotionFunction.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
50 namespace solidBodyMotionFunctions
53 /*---------------------------------------------------------------------------*\
54                           Class SDA Declaration
55 \*---------------------------------------------------------------------------*/
57 class SDA
59     public solidBodyMotionFunction
61     // Private data
63         //- Center of gravity
64         vector CofG_;
66         //- Model scale ratio
67         scalar lamda_;
69         //- Max roll amplitude [rad]
70         scalar rollAmax_;
72         //- Min roll amplitude [rad]
73         scalar rollAmin_;
75         //- Heave amplitude [m]
76         scalar heaveA_;
78         //- Sway amplitude [m]
79         scalar swayA_;
81         //- Damping Coefficient [-]
82         scalar Q_;
84         //- Time Period for liquid [sec]
85         scalar Tp_;
87         //- Natural Period of Ship [sec]
88         scalar Tpn_;
90         //- Reference time step [sec]
91         scalar dTi_;
93         //- Incr. in Tp/unit 'dTi'[-]
94         scalar dTp_;
97     // Private Member Functions
99         //- Disallow copy construct
100         SDA(const SDA&);
102         //- Disallow default bitwise assignment
103         void operator=(const SDA&);
106 public:
108     //- Runtime type information
109     TypeName("SDA");
112     // Constructors
114         //- Construct from components
115         SDA
116         (
117             const dictionary& SBMFCoeffs,
118             const Time& runTime
119         );
122     //- Destructor
123     virtual ~SDA();
126     // Member Functions
128         //- Return the solid-body motion transformation septernion
129         virtual septernion transformation() const;
131         //- Update properties from given dictionary
132         virtual bool read(const dictionary& SBMFCoeffs);
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 } // End namespace solidBodyMotionFunctions
139 } // End namespace Foam
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 #endif
145 // ************************************************************************* //