Fix tutorials: typo in tutorials/viscoelastic/viscoelasticFluidFoam/S-MDCPP/constant...
[OpenFOAM-1.6-ext.git] / src / OpenFOAM / coordinateSystems / ellipticCylindricalCS.H
blob4fc4fea2df170f649dd578ce13f04b3d7c2f0eb4
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 Class
26     Foam::ellipticCylindricalCS
28 Description
29     Elliptic cylindrical coordinate system.
31     Notation: u = a.x() v = a.y() z = a.z();
33     http://en.wikipedia.org/wiki/Elliptic_coordinates
35 SourceFiles
36     ellipticCylindricalCS.C
38 Authors
39     Henrik Rusche, Wikki GmbH
40     All rights reserved.
42 \*---------------------------------------------------------------------------*/
44 #ifndef ellipticCylindricalCS_H
45 #define ellipticCylindricalCS_H
47 #include "coordinateSystem.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
54 /*---------------------------------------------------------------------------*\
55                     Class ellipticCylindricalCS Declaration
56 \*---------------------------------------------------------------------------*/
58 class ellipticCylindricalCS
60     public coordinateSystem
62     // Private data members
64         // Distance of the foci from the origin
65         const scalar a_;
67         //- Are angles in degrees? (default = true)
68         bool inDegrees_;
71 protected:
73     // Protected Member Functions
75         //- Convert from local coordinate system to the global Cartesian system
76         //  with optional translation for the origin
77         virtual vector localToGlobal(const vector&, bool translate) const;
79         //- Convert from local coordinate system to the global Cartesian system
80         //  with optional translation for the origin
81         virtual tmp<vectorField> localToGlobal
82         (
83             const vectorField&,
84             bool translate
85         ) const;
87         //- Convert from global Cartesian system to the local coordinate system
88         //  with optional translation for the origin
89         virtual vector globalToLocal(const vector&, bool translate) const;
91         //- Convert from global Cartesian system to the local coordinate system
92         //  with optional translation for the origin
93         virtual tmp<vectorField> globalToLocal
94         (
95             const vectorField&,
96             bool translate
97         ) const;
99 public:
101     //- Runtime type information
102     TypeName("ellipticCylindrical");
105     // Constructors
107         //- Construct null
108         ellipticCylindricalCS(const bool inDegrees = true);
110         //- Construct copy
111         ellipticCylindricalCS
112         (
113             const coordinateSystem&,
114             const bool inDegrees = true
115         );
117         //- Construct copy with a different name
118         ellipticCylindricalCS
119         (
120             const word& name,
121             const coordinateSystem&,
122             const bool inDegrees = true
123         );
125         //- Construct from origin, and rotation
126         ellipticCylindricalCS
127         (
128             const word& name,
129             const point& origin,
130             const coordinateRotation& cr,
131             const scalar a,
132             const bool inDegrees = true
133         );
135         //- Construct from origin and 2 axes
136         ellipticCylindricalCS
137         (
138             const word& name,
139             const point& origin,
140             const vector& axis,
141             const vector& dirn,
142             const scalar a,
143             const bool inDegrees = true
144         );
146         //- Construct from dictionary
147         ellipticCylindricalCS
148         (
149             const word& name,
150             const dictionary& dict
151         );
154     // Member Functions
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 } // End namespace Foam
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165 #endif
167 // ************************************************************************* //