Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / foam / coordinateSystems / coordinateRotation / STARCDCoordinateRotation.H
blobcc8daf4dbd6d38787b86aeacca4a3dc43cacc050
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::STARCDCoordinateRotation
27 Description
28     A coordinateRotation defined by the STAR-CD convention.
30     The 3 rotations are defined in the STAR-CD convention
31     (around Z, around X' and around Y'').
32     The order of the parameter arguments matches this rotation order.
34     - the rotation angles are in degrees, unless otherwise explictly specified:
36     @verbatim
37         coordinateRotation
38         {
39             type        STARCDRotation;
40             degrees     false;
41             rotation    (0 0 3.141592654);
42         }
43     @endverbatim
45 \*---------------------------------------------------------------------------*/
47 #ifndef STARCDCoordinateRotation_H
48 #define STARCDCoordinateRotation_H
50 #include "coordinateRotation.H"
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 namespace Foam
57 /*---------------------------------------------------------------------------*\
58                   Class STARCDCoordinateRotation Declaration
59 \*---------------------------------------------------------------------------*/
61 class STARCDCoordinateRotation
63     public coordinateRotation
65     // Private member functions
67         //- Calculate transformation tensor
68         void calcTransform
69         (
70             const scalar rotZ,
71             const scalar rotX,
72             const scalar rotY,
73             const bool inDegrees = true
74         );
77 public:
79     //- Runtime type information
80     TypeName("STARCDRotation");
83     // Constructors
85         //- Construct null
86         STARCDCoordinateRotation();
88         //- Construct from rotation vector
89         STARCDCoordinateRotation
90         (
91             const vector& rotZrotXrotY,
92             const bool inDegrees = true
93         );
95         //- Construct from components of rotation vector
96         STARCDCoordinateRotation
97         (
98             const scalar rotZ,
99             const scalar rotX,
100             const scalar rotY,
101             const bool inDegrees = true
102         );
104         //- Construct from dictionary
105         STARCDCoordinateRotation(const dictionary&);
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 } // End namespace Foam
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 #endif
118 // ************************************************************************* //