Report patch name instead of index in debug
[foam-extend-3.2.git] / src / foam / coordinateSystems / parabolicCylindricalCS.H
blob17316e43eb6e2cfd15d0b50a3ad4af038d95f8a3
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::parabolicCylindricalCS
27 Description
28     Parabolic cylindrical coordinate system.
30     Notation: u = a.x() v = a.y() z = a.z();
32 Note
33     The maintenance of this class may lag that of the main types.
35 SourceFiles
36     parabolicCylindricalCS.C
38 \*---------------------------------------------------------------------------*/
40 #ifndef parabolicCylindricalCS_H
41 #define parabolicCylindricalCS_H
43 #include "coordinateSystem.H"
44 #include "Switch.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                    Class parabolicCylindricalCS Declaration
53 \*---------------------------------------------------------------------------*/
55 class parabolicCylindricalCS
57     public coordinateSystem
59     // Private data members
61         //- Are angles in degrees? (default = true)
62         Switch inDegrees_;
65 protected:
67     // Protected Member Functions
69         //- Convert from local coordinate system to the global Cartesian system
70         //  with optional translation for the origin
71         virtual vector localToGlobal(const vector&, bool translate) const;
73         //- Convert from local coordinate system to the global Cartesian system
74         //  with optional translation for the origin
75         virtual tmp<vectorField> localToGlobal
76         (
77             const vectorField&,
78             bool translate
79         ) const;
81         //- Convert from global Cartesian system to the local coordinate system
82         //  with optional translation for the origin
83         virtual vector globalToLocal(const vector&, bool translate) const;
85         //- Convert from global Cartesian system to the local coordinate system
86         //  with optional translation for the origin
87         virtual tmp<vectorField> globalToLocal
88         (
89             const vectorField&,
90             bool translate
91         ) const;
93 public:
95     //- Runtime type information
96     TypeName("parabolicCylindrical");
99     // Constructors
101         //- Construct null
102         parabolicCylindricalCS(const bool inDegrees = true);
104         //- Construct from origin and rotation
105         parabolicCylindricalCS
106         (
107             const word& name,
108             const point& origin,
109             const coordinateRotation&,
110             const bool inDegrees = true
111         );
113         //- Construct from dictionary
114         parabolicCylindricalCS(const word&, const dictionary&);
116         //- Return clone
117         virtual autoPtr<coordinateSystem> clone() const
118         {
119             return autoPtr<coordinateSystem>(new parabolicCylindricalCS(*this));
120         }
123     // Member Functions
125         // Global information about the coordinate system
127             //- Directions in which the span is limited
128             virtual spanInfo spanLimited() const;
130             //- Span bounds
131             virtual boundBox spanBounds() const;
134         //- Are angles in degrees?
135         bool inDegrees() const;
137         //- Non-const access to inDegrees
138         Switch& inDegrees();
141         // Write
143             //- Write
144             virtual void write(Ostream&) const;
146             //- Write dictionary
147             virtual void writeDict(Ostream&, bool subDict = true) const;
151 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
153 } // End namespace Foam
155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157 #endif
159 // ************************************************************************* //