Merge remote-tracking branch 'origin/nr/multiSolverFix' into nextRelease
[foam-extend-3.2.git] / src / dynamicMesh / dynamicFvMesh / dynamicTopoFvMesh / tetMetrics / tetMetrics.H
blob7fbe073c2c5ab6cb16b7d536d00c37924a3022a0
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     tetMetrics
28 Description
29     Header file of tetrahedral mesh-quality metrics.
31 Author
32     Sandeep Menon
33     University of Massachusetts Amherst
34     All rights reserved
36 SourceFiles
37     tetMetrics.C
39 \*---------------------------------------------------------------------------*/
41 #ifndef tetMetrics_H
42 #define tetMetrics_H
44 #include "tetMetric.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                            Metric Class Declarations
53 \*---------------------------------------------------------------------------*/
55 class Knupp
57     public tetMetric
59     // Private Member Functions
61         //- Disallow default bitwise copy construct
62         Knupp(const Knupp&);
64         //- Disallow default bitwise assignment
65         void operator=(const Knupp&);
68 public:
70         //- Runtime type information
71         TypeName("Knupp");
73         static scalar metric
74         (
75             const point& p0,
76             const point& p1,
77             const point& p2,
78             const point& p3
79         );
82     // Destructor
84         virtual ~Knupp()
85         {}
89 class Dihedral
91     public tetMetric
93     // Private Member Functions
95         //- Disallow default bitwise copy construct
96         Dihedral(const Dihedral&);
98         //- Disallow default bitwise assignment
99         void operator=(const Dihedral&);
101         // Enumeration for tets
102         static label tetEnum[6][4];
105 public:
107         //- Runtime type information
108         TypeName("Dihedral");
110         static scalar metric
111         (
112             const point& p0,
113             const point& p1,
114             const point& p2,
115             const point& p3
116         );
119     // Destructor
121         virtual ~Dihedral()
122         {}
126 class cubicMeanRatio
128     public tetMetric
130     // Private Member Functions
132         //- Disallow default bitwise copy construct
133         cubicMeanRatio(const cubicMeanRatio&);
135         //- Disallow default bitwise assignment
136         void operator=(const cubicMeanRatio&);
138     public:
140         //- Runtime type information
141         TypeName("cubicMeanRatio");
143         static scalar metric
144         (
145             const point& p0,
146             const point& p1,
147             const point& p2,
148             const point& p3
149         );
152     // Destructor
154         virtual ~cubicMeanRatio()
155         {}
159 class Frobenius
161     public tetMetric
163     // Private Member Functions
165         //- Disallow default bitwise copy construct
166         Frobenius(const Frobenius&);
168         //- Disallow default bitwise assignment
169         void operator=(const Frobenius&);
172 public:
174         //- Runtime type information
175         TypeName("Frobenius");
177         static scalar metric
178         (
179             const point& p0,
180             const point& p1,
181             const point& p2,
182             const point& p3
183         );
186     // Destructor
188         virtual ~Frobenius()
189         {}
193 class PGH
195     public tetMetric
197     // Private Member Functions
199         //- Disallow default bitwise copy construct
200         PGH(const PGH&);
202         //- Disallow default bitwise assignment
203         void operator=(const PGH&);
206 public:
208         //- Runtime type information
209         TypeName("PGH");
211         static scalar metric
212         (
213             const point& p0,
214             const point& p1,
215             const point& p2,
216             const point& p3
217         );
220     // Destructor
222         virtual ~PGH()
223         {}
227 class CSG
229     public tetMetric
231     // Private Member Functions
233         //- Disallow default bitwise copy construct
234         CSG(const CSG&);
236         //- Disallow default bitwise assignment
237         void operator=(const CSG&);
240 public:
242         //- Runtime type information
243         TypeName("CSG");
245         static scalar metric
246         (
247             const point& p0,
248             const point& p1,
249             const point& p2,
250             const point& p3
251         );
254     // Destructor
256         virtual ~CSG()
257         {}
261 } // End namespace Foam
263 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
265 #endif
267 // ************************************************************************* //