Forward compatibility: flex
[foam-extend-3.2.git] / src / dynamicMesh / dynamicTopoFvMesh / tetMetrics / tetMetrics.H
blob121c76e23e25ad051928060f82e51b1fc70a4952
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     tetMetrics
27 Description
28     Header file of tetrahedral mesh-quality metrics.
30 Author
31     Sandeep Menon
32     University of Massachusetts Amherst
33     All rights reserved
35 SourceFiles
36     tetMetrics.C
38 \*---------------------------------------------------------------------------*/
40 #ifndef tetMetrics_H
41 #define tetMetrics_H
43 #include "tetMetric.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 /*---------------------------------------------------------------------------*\
51                            Metric Class Declarations
52 \*---------------------------------------------------------------------------*/
54 class Knupp
56     public tetMetric
58     // Private Member Functions
60         //- Disallow default bitwise copy construct
61         Knupp(const Knupp&);
63         //- Disallow default bitwise assignment
64         void operator=(const Knupp&);
67 public:
69         //- Runtime type information
70         TypeName("Knupp");
72         static scalar metric
73         (
74             const point& p0,
75             const point& p1,
76             const point& p2,
77             const point& p3
78         );
81     // Destructor
83         virtual ~Knupp()
84         {}
88 class Dihedral
90     public tetMetric
92     // Private Member Functions
94         //- Disallow default bitwise copy construct
95         Dihedral(const Dihedral&);
97         //- Disallow default bitwise assignment
98         void operator=(const Dihedral&);
100         // Enumeration for tets
101         static label tetEnum[6][4];
104 public:
106         //- Runtime type information
107         TypeName("Dihedral");
109         static scalar metric
110         (
111             const point& p0,
112             const point& p1,
113             const point& p2,
114             const point& p3
115         );
118     // Destructor
120         virtual ~Dihedral()
121         {}
125 class cubicMeanRatio
127     public tetMetric
129     // Private Member Functions
131         //- Disallow default bitwise copy construct
132         cubicMeanRatio(const cubicMeanRatio&);
134         //- Disallow default bitwise assignment
135         void operator=(const cubicMeanRatio&);
137     public:
139         //- Runtime type information
140         TypeName("cubicMeanRatio");
142         static scalar metric
143         (
144             const point& p0,
145             const point& p1,
146             const point& p2,
147             const point& p3
148         );
151     // Destructor
153         virtual ~cubicMeanRatio()
154         {}
158 class Frobenius
160     public tetMetric
162     // Private Member Functions
164         //- Disallow default bitwise copy construct
165         Frobenius(const Frobenius&);
167         //- Disallow default bitwise assignment
168         void operator=(const Frobenius&);
171 public:
173         //- Runtime type information
174         TypeName("Frobenius");
176         static scalar metric
177         (
178             const point& p0,
179             const point& p1,
180             const point& p2,
181             const point& p3
182         );
185     // Destructor
187         virtual ~Frobenius()
188         {}
192 class PGH
194     public tetMetric
196     // Private Member Functions
198         //- Disallow default bitwise copy construct
199         PGH(const PGH&);
201         //- Disallow default bitwise assignment
202         void operator=(const PGH&);
205 public:
207         //- Runtime type information
208         TypeName("PGH");
210         static scalar metric
211         (
212             const point& p0,
213             const point& p1,
214             const point& p2,
215             const point& p3
216         );
219     // Destructor
221         virtual ~PGH()
222         {}
226 class CSG
228     public tetMetric
230     // Private Member Functions
232         //- Disallow default bitwise copy construct
233         CSG(const CSG&);
235         //- Disallow default bitwise assignment
236         void operator=(const CSG&);
239 public:
241         //- Runtime type information
242         TypeName("CSG");
244         static scalar metric
245         (
246             const point& p0,
247             const point& p1,
248             const point& p2,
249             const point& p3
250         );
253     // Destructor
255         virtual ~CSG()
256         {}
260 } // End namespace Foam
262 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
264 #endif
266 // ************************************************************************* //