VTK  9.5.2
vtkMeshQuality.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-FileCopyrightText: Copyright 2003-2008 Sandia Corporation
3// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
54#ifndef vtkMeshQuality_h
55#define vtkMeshQuality_h
56
57#include "vtkDataSetAlgorithm.h"
58#include "vtkFiltersVerdictModule.h" // For export macro
59
60VTK_ABI_NAMESPACE_BEGIN
61class vtkCell;
62class vtkDataArray;
63class vtkDoubleArray;
64class vtkMeshQualityFunctor;
65
66class VTKFILTERSVERDICT_EXPORT vtkMeshQuality : public vtkDataSetAlgorithm
67{
68private:
69 friend class vtkMeshQualityFunctor;
70
71public:
72 void PrintSelf(ostream& os, vtkIndent indent) override;
75
77
83 vtkSetMacro(SaveCellQuality, vtkTypeBool);
84 vtkGetMacro(SaveCellQuality, vtkTypeBool);
85 vtkBooleanMacro(SaveCellQuality, vtkTypeBool);
87
89
96 vtkSetMacro(LinearApproximation, bool);
97 vtkGetMacro(LinearApproximation, bool);
98 vtkBooleanMacro(LinearApproximation, bool);
100
116 {
117 AREA = 28,
118 ASPECT_FROBENIUS = 3,
119 ASPECT_GAMMA = 27,
120 ASPECT_RATIO = 1,
121 COLLAPSE_RATIO = 7,
122 CONDITION = 9,
123 DIAGONAL = 21,
124 DIMENSION = 22,
125 DISTORTION = 15,
126 EDGE_RATIO = 0,
127 EQUIANGLE_SKEW = 29,
128 EQUIVOLUME_SKEW = 30,
129 JACOBIAN = 25,
130 MAX_ANGLE = 8,
131 MAX_ASPECT_FROBENIUS = 5,
132 MAX_EDGE_RATIO = 16,
133 MAX_STRETCH = 31,
134 MEAN_ASPECT_FROBENIUS = 32,
135 MEAN_RATIO = 33,
136 MED_ASPECT_FROBENIUS = 4,
137 MIN_ANGLE = 6,
138 NODAL_JACOBIAN_RATIO = 34,
139 NORMALIZED_INRADIUS = 35,
140 ODDY = 23,
141 RADIUS_RATIO = 2,
142 RELATIVE_SIZE_SQUARED = 12,
143 SCALED_JACOBIAN = 10,
144 SHAPE = 13,
145 SHAPE_AND_SIZE = 14,
146 SHEAR = 11,
147 SHEAR_AND_SIZE = 24,
148 SKEW = 17,
149 SQUISH_INDEX = 36,
150 STRETCH = 20,
151 TAPER = 18,
152 VOLUME = 19,
153 WARPAGE = 26,
154 TOTAL_QUALITY_MEASURE_TYPES = 37,
155 NONE = TOTAL_QUALITY_MEASURE_TYPES
156 };
157
161 static const char* QualityMeasureNames[];
162
164
171 vtkSetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes);
172 virtual void SetTriangleQualityMeasure(int measure)
173 {
174 this->SetTriangleQualityMeasure(static_cast<QualityMeasureTypes>(measure));
175 }
176 vtkGetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes);
178 {
179 this->SetTriangleQualityMeasure(QualityMeasureTypes::AREA);
180 }
182 {
183 this->SetTriangleQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
184 }
186 {
187 this->SetTriangleQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
188 }
190 {
191 this->SetTriangleQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
192 }
194 {
195 this->SetTriangleQualityMeasure(QualityMeasureTypes::ASPECT_FROBENIUS);
196 }
198 {
199 this->SetTriangleQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
200 }
202 {
203 this->SetTriangleQualityMeasure(QualityMeasureTypes::MAX_ANGLE);
204 }
206 {
207 this->SetTriangleQualityMeasure(QualityMeasureTypes::CONDITION);
208 }
210 {
211 this->SetTriangleQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
212 }
214 {
215 this->SetTriangleQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
216 }
218 {
219 this->SetTriangleQualityMeasure(QualityMeasureTypes::SHAPE);
220 }
222 {
223 this->SetTriangleQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
224 }
226 {
227 this->SetTriangleQualityMeasure(QualityMeasureTypes::DISTORTION);
228 }
230 {
231 this->SetTriangleQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
232 }
234 {
235 this->SetTriangleQualityMeasure(QualityMeasureTypes::NORMALIZED_INRADIUS);
236 }
238
240
253 virtual void SetQuadQualityMeasure(int measure)
254 {
255 this->SetQuadQualityMeasure(static_cast<QualityMeasureTypes>(measure));
256 }
259 {
260 this->SetQuadQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
261 }
263 {
264 this->SetQuadQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
265 }
267 {
268 this->SetQuadQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
269 }
271 {
272 this->SetQuadQualityMeasure(QualityMeasureTypes::MED_ASPECT_FROBENIUS);
273 }
275 {
276 this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
277 }
279 {
280 this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_EDGE_RATIO);
281 }
282 void SetQuadQualityMeasureToSkew() { this->SetQuadQualityMeasure(QualityMeasureTypes::SKEW); }
283 void SetQuadQualityMeasureToTaper() { this->SetQuadQualityMeasure(QualityMeasureTypes::TAPER); }
285 {
286 this->SetQuadQualityMeasure(QualityMeasureTypes::WARPAGE);
287 }
288 void SetQuadQualityMeasureToArea() { this->SetQuadQualityMeasure(QualityMeasureTypes::AREA); }
290 {
291 this->SetQuadQualityMeasure(QualityMeasureTypes::STRETCH);
292 }
294 {
295 this->SetQuadQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
296 }
298 {
299 this->SetQuadQualityMeasure(QualityMeasureTypes::MAX_ANGLE);
300 }
301 void SetQuadQualityMeasureToOddy() { this->SetQuadQualityMeasure(QualityMeasureTypes::ODDY); }
303 {
304 this->SetQuadQualityMeasure(QualityMeasureTypes::CONDITION);
305 }
307 {
308 this->SetQuadQualityMeasure(QualityMeasureTypes::JACOBIAN);
309 }
311 {
312 this->SetQuadQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
313 }
314 void SetQuadQualityMeasureToShear() { this->SetQuadQualityMeasure(QualityMeasureTypes::SHEAR); }
315 void SetQuadQualityMeasureToShape() { this->SetQuadQualityMeasure(QualityMeasureTypes::SHAPE); }
317 {
318 this->SetQuadQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
319 }
321 {
322 this->SetQuadQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
323 }
325 {
326 this->SetQuadQualityMeasure(QualityMeasureTypes::SHEAR_AND_SIZE);
327 }
329 {
330 this->SetQuadQualityMeasure(QualityMeasureTypes::DISTORTION);
331 }
333 {
334 this->SetQuadQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
335 }
337
339
347 virtual void SetTetQualityMeasure(int measure)
348 {
349 this->SetTetQualityMeasure(static_cast<QualityMeasureTypes>(measure));
350 }
353 {
354 this->SetTetQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
355 }
357 {
358 this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_RATIO);
359 }
361 {
362 this->SetTetQualityMeasure(QualityMeasureTypes::RADIUS_RATIO);
363 }
365 {
366 this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_FROBENIUS);
367 }
369 {
370 this->SetTetQualityMeasure(QualityMeasureTypes::MIN_ANGLE);
371 }
373 {
374 this->SetTetQualityMeasure(QualityMeasureTypes::COLLAPSE_RATIO);
375 }
377 {
378 this->SetTetQualityMeasure(QualityMeasureTypes::ASPECT_GAMMA);
379 }
380 void SetTetQualityMeasureToVolume() { this->SetTetQualityMeasure(QualityMeasureTypes::VOLUME); }
382 {
383 this->SetTetQualityMeasure(QualityMeasureTypes::CONDITION);
384 }
386 {
387 this->SetTetQualityMeasure(QualityMeasureTypes::JACOBIAN);
388 }
390 {
391 this->SetTetQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
392 }
393 void SetTetQualityMeasureToShape() { this->SetTetQualityMeasure(QualityMeasureTypes::SHAPE); }
395 {
396 this->SetTetQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
397 }
399 {
400 this->SetTetQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
401 }
403 {
404 this->SetTetQualityMeasure(QualityMeasureTypes::DISTORTION);
405 }
407 {
408 this->SetTetQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
409 }
411 {
412 this->SetTetQualityMeasure(QualityMeasureTypes::EQUIVOLUME_SKEW);
413 }
415 {
416 this->SetTetQualityMeasure(QualityMeasureTypes::MEAN_RATIO);
417 }
419 {
420 this->SetTetQualityMeasure(QualityMeasureTypes::NORMALIZED_INRADIUS);
421 }
423 {
424 this->SetTetQualityMeasure(QualityMeasureTypes::SQUISH_INDEX);
425 }
427
429
434 vtkSetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes);
435 virtual void SetPyramidQualityMeasure(int measure)
436 {
437 this->SetPyramidQualityMeasure(static_cast<QualityMeasureTypes>(measure));
438 }
439 vtkGetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes);
441 {
442 this->SetPyramidQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
443 }
445 {
446 this->SetPyramidQualityMeasure(QualityMeasureTypes::JACOBIAN);
447 }
449 {
450 this->SetPyramidQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
451 }
453 {
454 this->SetPyramidQualityMeasure(QualityMeasureTypes::SHAPE);
455 }
457 {
458 this->SetPyramidQualityMeasure(QualityMeasureTypes::VOLUME);
459 }
461
463
470 virtual void SetWedgeQualityMeasure(int measure)
471 {
472 this->SetWedgeQualityMeasure(static_cast<QualityMeasureTypes>(measure));
473 }
476 {
477 this->SetWedgeQualityMeasure(QualityMeasureTypes::CONDITION);
478 }
480 {
481 this->SetWedgeQualityMeasure(QualityMeasureTypes::DISTORTION);
482 }
484 {
485 this->SetWedgeQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
486 }
488 {
489 this->SetWedgeQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
490 }
492 {
493 this->SetWedgeQualityMeasure(QualityMeasureTypes::JACOBIAN);
494 }
496 {
497 this->SetWedgeQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
498 }
500 {
501 this->SetWedgeQualityMeasure(QualityMeasureTypes::MAX_STRETCH);
502 }
504 {
505 this->SetWedgeQualityMeasure(QualityMeasureTypes::MEAN_ASPECT_FROBENIUS);
506 }
508 {
509 this->SetWedgeQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
510 }
511 void SetWedgeQualityMeasureToShape() { this->SetWedgeQualityMeasure(QualityMeasureTypes::SHAPE); }
513 {
514 this->SetWedgeQualityMeasure(QualityMeasureTypes::VOLUME);
515 }
517
519
528 virtual void SetHexQualityMeasure(int measure)
529 {
530 this->SetHexQualityMeasure(static_cast<QualityMeasureTypes>(measure));
531 }
534 {
535 this->SetHexQualityMeasure(QualityMeasureTypes::EDGE_RATIO);
536 }
538 {
539 this->SetHexQualityMeasure(QualityMeasureTypes::MED_ASPECT_FROBENIUS);
540 }
542 {
543 this->SetHexQualityMeasure(QualityMeasureTypes::MAX_ASPECT_FROBENIUS);
544 }
546 {
547 this->SetHexQualityMeasure(QualityMeasureTypes::MAX_EDGE_RATIO);
548 }
549 void SetHexQualityMeasureToSkew() { this->SetHexQualityMeasure(QualityMeasureTypes::SKEW); }
550 void SetHexQualityMeasureToTaper() { this->SetHexQualityMeasure(QualityMeasureTypes::TAPER); }
551 void SetHexQualityMeasureToVolume() { this->SetHexQualityMeasure(QualityMeasureTypes::VOLUME); }
552 void SetHexQualityMeasureToStretch() { this->SetHexQualityMeasure(QualityMeasureTypes::STRETCH); }
554 {
555 this->SetHexQualityMeasure(QualityMeasureTypes::DIAGONAL);
556 }
558 {
559 this->SetHexQualityMeasure(QualityMeasureTypes::DIMENSION);
560 }
561 void SetHexQualityMeasureToOddy() { this->SetHexQualityMeasure(QualityMeasureTypes::ODDY); }
563 {
564 this->SetHexQualityMeasure(QualityMeasureTypes::CONDITION);
565 }
567 {
568 this->SetHexQualityMeasure(QualityMeasureTypes::JACOBIAN);
569 }
571 {
572 this->SetHexQualityMeasure(QualityMeasureTypes::SCALED_JACOBIAN);
573 }
574 void SetHexQualityMeasureToShear() { this->SetHexQualityMeasure(QualityMeasureTypes::SHEAR); }
575 void SetHexQualityMeasureToShape() { this->SetHexQualityMeasure(QualityMeasureTypes::SHAPE); }
577 {
578 this->SetHexQualityMeasure(QualityMeasureTypes::RELATIVE_SIZE_SQUARED);
579 }
581 {
582 this->SetHexQualityMeasure(QualityMeasureTypes::SHAPE_AND_SIZE);
583 }
585 {
586 this->SetHexQualityMeasure(QualityMeasureTypes::SHEAR_AND_SIZE);
587 }
589 {
590 this->SetHexQualityMeasure(QualityMeasureTypes::DISTORTION);
591 }
593 {
594 this->SetHexQualityMeasure(QualityMeasureTypes::EQUIANGLE_SKEW);
595 }
597 {
598 this->SetHexQualityMeasure(QualityMeasureTypes::NODAL_JACOBIAN_RATIO);
599 }
601
605 static double TriangleArea(vtkCell* cell);
606
614 static double TriangleEdgeRatio(vtkCell* cell);
615
623 static double TriangleAspectRatio(vtkCell* cell);
624
632 static double TriangleRadiusRatio(vtkCell* cell);
633
643 static double TriangleAspectFrobenius(vtkCell* cell);
644
648 static double TriangleMinAngle(vtkCell* cell);
649
653 static double TriangleMaxAngle(vtkCell* cell);
654
658 static double TriangleCondition(vtkCell* cell);
659
663 static double TriangleScaledJacobian(vtkCell* cell);
664
672
676 static double TriangleShape(vtkCell* cell);
677
684 static double TriangleShapeAndSize(vtkCell* cell);
685
689 static double TriangleDistortion(vtkCell* cell);
690
694 static double TriangleEquiangleSkew(vtkCell* cell);
695
702
710 static double QuadEdgeRatio(vtkCell* cell);
711
719 static double QuadAspectRatio(vtkCell* cell);
720
731 static double QuadRadiusRatio(vtkCell* cell);
732
742 static double QuadMedAspectFrobenius(vtkCell* cell);
743
753 static double QuadMaxAspectFrobenius(vtkCell* cell);
754
758 static double QuadMinAngle(vtkCell* cell);
759
763 static double QuadMaxEdgeRatio(vtkCell* cell);
764
770 static double QuadSkew(vtkCell* cell);
771
776 static double QuadTaper(vtkCell* cell);
777
783 static double QuadWarpage(vtkCell* cell);
784
789 static double QuadArea(vtkCell* cell);
790
795 static double QuadStretch(vtkCell* cell);
796
800 static double QuadMaxAngle(vtkCell* cell);
801
807 static double QuadOddy(vtkCell* cell);
808
814 static double QuadCondition(vtkCell* cell);
815
821 static double QuadJacobian(vtkCell* cell);
822
828 static double QuadScaledJacobian(vtkCell* cell);
829
834 static double QuadShear(vtkCell* cell);
835
840 static double QuadShape(vtkCell* cell);
841
850 static double QuadRelativeSizeSquared(vtkCell* cell);
851
859 static double QuadShapeAndSize(vtkCell* cell);
860
868 static double QuadShearAndSize(vtkCell* cell);
869
875 static double QuadDistortion(vtkCell* cell);
876
880 static double QuadEquiangleSkew(vtkCell* cell);
881
889 static double TetEdgeRatio(vtkCell* cell);
890
898 static double TetAspectRatio(vtkCell* cell);
899
907 static double TetRadiusRatio(vtkCell* cell);
908
919 static double TetAspectFrobenius(vtkCell* cell);
920
924 static double TetMinAngle(vtkCell* cell);
925
932 static double TetCollapseRatio(vtkCell* cell);
933
939 static double TetAspectGamma(vtkCell* cell);
940
945 static double TetVolume(vtkCell* cell);
946
951 static double TetCondition(vtkCell* cell);
952
957 static double TetJacobian(vtkCell* cell);
958
964 static double TetScaledJacobian(vtkCell* cell);
965
970 static double TetShape(vtkCell* cell);
971
980 static double TetRelativeSizeSquared(vtkCell* cell);
981
989 static double TetShapeAndSize(vtkCell* cell);
990
996 static double TetDistortion(vtkCell* cell);
997
1001 static double TetEquiangleSkew(vtkCell* cell);
1002
1006 static double TetEquivolumeSkew(vtkCell* cell);
1007
1013 static double TetMeanRatio(vtkCell* cell);
1014
1020 static double TetNormalizedInradius(vtkCell* cell);
1021
1025 static double TetSquishIndex(vtkCell* cell);
1026
1030 static double PyramidEquiangleSkew(vtkCell* cell);
1031
1036 static double PyramidJacobian(vtkCell* cell);
1037
1042 static double PyramidScaledJacobian(vtkCell* cell);
1043
1049 static double PyramidShape(vtkCell* cell);
1050
1054 static double PyramidVolume(vtkCell* cell);
1055
1060 static double WedgeCondition(vtkCell* cell);
1061
1066 static double WedgeDistortion(vtkCell* cell);
1067
1073 static double WedgeEdgeRatio(vtkCell* cell);
1074
1078 static double WedgeEquiangleSkew(vtkCell* cell);
1079
1084 static double WedgeJacobian(vtkCell* cell);
1085
1090 static double WedgeMaxAspectFrobenius(vtkCell* cell);
1091
1097 static double WedgeMaxStretch(vtkCell* cell);
1098
1104 static double WedgeMeanAspectFrobenius(vtkCell* cell);
1105
1115 static double WedgeScaledJacobian(vtkCell* cell);
1116
1122 static double WedgeShape(vtkCell* cell);
1123
1127 static double WedgeVolume(vtkCell* cell);
1128
1136 static double HexEdgeRatio(vtkCell* cell);
1137
1142 static double HexMedAspectFrobenius(vtkCell* cell);
1143
1148 static double HexMaxAspectFrobenius(vtkCell* cell);
1149
1153 static double HexMaxEdgeRatio(vtkCell* cell);
1154
1160 static double HexSkew(vtkCell* cell);
1161
1166 static double HexTaper(vtkCell* cell);
1167
1172 static double HexVolume(vtkCell* cell);
1173
1178 static double HexStretch(vtkCell* cell);
1179
1184 static double HexDiagonal(vtkCell* cell);
1185
1191 static double HexDimension(vtkCell* cell);
1192
1198 static double HexOddy(vtkCell* cell);
1199
1204 static double HexCondition(vtkCell* cell);
1205
1211 static double HexJacobian(vtkCell* cell);
1212
1218 static double HexScaledJacobian(vtkCell* cell);
1219
1224 static double HexShear(vtkCell* cell);
1225
1230 static double HexShape(vtkCell* cell);
1231
1240 static double HexRelativeSizeSquared(vtkCell* cell);
1241
1249 static double HexShapeAndSize(vtkCell* cell);
1250
1258 static double HexShearAndSize(vtkCell* cell);
1259
1265 static double HexDistortion(vtkCell* cell);
1266
1270 static double HexEquiangleSkew(vtkCell* cell);
1271
1276 static double HexNodalJacobianRatio(vtkCell* cell);
1277
1288 virtual void SetRatio(vtkTypeBool r) { this->SetSaveCellQuality(r); }
1289 vtkTypeBool GetRatio() { return this->GetSaveCellQuality(); }
1290 vtkBooleanMacro(Ratio, vtkTypeBool);
1291
1292protected:
1294 ~vtkMeshQuality() override = default;
1295
1297
1306
1307 using CellQualityType = double (*)(vtkCell*);
1314
1315 // Variables used to store the average size (2D: area / 3D: volume)
1316 static double TriangleAverageSize;
1317 static double QuadAverageSize;
1318 static double TetAverageSize;
1319 static double PyramidAverageSize;
1320 static double WedgeAverageSize;
1321 static double HexAverageSize;
1322
1323private:
1324 vtkMeshQuality(const vtkMeshQuality&) = delete;
1325 void operator=(const vtkMeshQuality&) = delete;
1326};
1327
1328VTK_ABI_NAMESPACE_END
1329#endif // vtkMeshQuality_h
abstract class to specify cell behavior
Definition vtkCell.h:51
abstract superclass for arrays of numeric data
Superclass for algorithms that produce output of the same type as input.
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Calculate functions of quality of the elements of a mesh.
void SetQuadQualityMeasureToSkew()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
virtual void SetWedgeQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of wedges.
static double QuadWarpage(vtkCell *cell)
Calculate the warpage of a quadrilateral.
void SetHexQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToEquivolumeSkew()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadTaper(vtkCell *cell)
Calculate the taper of a quadrilateral.
virtual void SetTetQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetWedgeQualityMeasureToMeanAspectFrobenius()
Set/Get the particular estimator used to measure the quality of wedges.
void SetTriangleQualityMeasureToArea()
Set/Get the particular estimator used to function the quality of triangles.
vtkGetEnumMacro(HexQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetWedgeQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of wedges.
static double TetNormalizedInradius(vtkCell *cell)
Calculate the normalized in-radius of a tetrahedron.
static double HexOddy(vtkCell *cell)
Calculate the oddy of a hexahedron.
void SetWedgeQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of wedges.
virtual void SetTriangleQualityMeasure(int measure)
Set/Get the particular estimator used to function the quality of triangles.
static double WedgeScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian a wedge.
static double TetAspectGamma(vtkCell *cell)
Calculate the aspect gamma of a tetrahedron.
void SetPyramidQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of pyramids.
static double WedgeMaxStretch(vtkCell *cell)
Calculate the max stretch of a wedge.
void SetPyramidQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetTetQualityMeasureToMinAngle()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexShear(vtkCell *cell)
Calculate the shear of a hexahedron.
static double HexScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a hexahedron.
virtual void SetPyramidQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of pyramids.
void SetTriangleQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to function the quality of triangles.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
void SetQuadQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToDiagonal()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetHexQualityMeasureToMedAspectFrobenius()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of tetrahedra.
virtual void SetRatio(vtkTypeBool r)
These methods are deprecated.
void SetWedgeQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of wedges.
static double QuadAverageSize
static double QuadJacobian(vtkCell *cell)
Calculate the Jacobian of a quadrilateral.
void SetTriangleQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to function the quality of triangles.
static double PyramidJacobian(vtkCell *cell)
Calculate the Jacobian of a pyramid.
QualityMeasureTypes TriangleQualityMeasure
QualityMeasureTypes
Enum which lists the Quality Measures Types.
void SetQuadQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleNormalizedInradius(vtkCell *cell)
Calculate the normalized in-radius of a triangle.
static double WedgeShape(vtkCell *cell)
Calculate the shape of a wedge.
static double WedgeEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a wedge.
static double TriangleEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a triangle.
void SetHexQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double WedgeMeanAspectFrobenius(vtkCell *cell)
Calculate the mean aspect Frobenius of a wedge.
static double PyramidVolume(vtkCell *cell)
Calculate the volume of a pyramid.
static double QuadOddy(vtkCell *cell)
Calculate the oddy of a quadrilateral.
static double QuadAspectRatio(vtkCell *cell)
Calculate the aspect ratio of a planar quadrilateral.
static double TriangleAspectFrobenius(vtkCell *cell)
Calculate the Frobenius condition number of the transformation matrix from an equilateral triangle to...
vtkSetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to function the quality of triangles.
static double TetMeanRatio(vtkCell *cell)
Calculate the mean ratio of a tetrahedron.
static double QuadEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a quadrilateral.
static double QuadScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a quadrilateral.
vtkSetEnumMacro(WedgeQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of wedges.
static double HexMaxEdgeRatio(vtkCell *cell)
Calculate the maximum edge ratio of a hexahedron at its center.
void SetHexQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexShapeAndSize(vtkCell *cell)
Calculate the shape and size of a hexahedron.
static double QuadShear(vtkCell *cell)
Calculate the shear of a quadrilateral.
void SetHexQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of hexahedra.
vtkGetEnumMacro(WedgeQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of wedges.
void SetQuadQualityMeasureToAspectRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleShapeAndSize(vtkCell *cell)
Calculate the product of shape and relative size of a triangle.
vtkTypeBool GetRatio()
static double HexTaper(vtkCell *cell)
Calculate the taper of a hexahedron.
static vtkMeshQuality * New()
void SetTriangleQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to function the quality of triangles.
CellQualityType GetTriangleQualityMeasureFunction()
virtual void SetQuadQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToSquishIndex()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TetJacobian(vtkCell *cell)
Calculate the Jacobian of a tetrahedron.
static double HexDistortion(vtkCell *cell)
Calculate the distortion of a hexahedron.
static double TetCollapseRatio(vtkCell *cell)
Calculate the collapse ratio of a tetrahedron.
static double TriangleDistortion(vtkCell *cell)
Calculate the distortion of a triangle.
static double HexVolume(vtkCell *cell)
Calculate the volume of a hexahedron.
void SetQuadQualityMeasureToMaxEdgeRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToShear()
Set/Get the particular estimator used to measure the quality of hexahedra.
vtkGetEnumMacro(QuadQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double QuadArea(vtkCell *cell)
Calculate the area of a quadrilateral.
void SetTriangleQualityMeasureToAspectRatio()
Set/Get the particular estimator used to function the quality of triangles.
void SetHexQualityMeasureToStretch()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTetQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TetEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a tetrahedron.
void SetQuadQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToNormalizedInradius()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double HexRelativeSizeSquared(vtkCell *cell)
Calculate the relative size squared of a hexahedron.
void SetTetQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of tetrahedra.
vtkSetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of pyramids.
void SetQuadQualityMeasureToShear()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double PyramidShape(vtkCell *cell)
Calculate the shape of a pyramid.
QualityMeasureTypes QuadQualityMeasure
CellQualityType GetTetQualityMeasureFunction()
static double HexShape(vtkCell *cell)
Calculate the shape of a hexahedron.
void SetHexQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TetAverageSize
static double TriangleScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a triangle.
void SetHexQualityMeasureToDimension()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TetRelativeSizeSquared(vtkCell *cell)
Calculate the relative size squared of a tetrahedron.
void SetTriangleQualityMeasureToNormalizedInradius()
Set/Get the particular estimator used to function the quality of triangles.
static double TriangleEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a triangle.
QualityMeasureTypes TetQualityMeasure
static double TriangleShape(vtkCell *cell)
Calculate the shape of a triangle.
void SetTetQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadMedAspectFrobenius(vtkCell *cell)
Calculate the average Frobenius aspect of the 4 corner triangles of a planar quadrilateral,...
static double TriangleCondition(vtkCell *cell)
Calculate the condition number of a triangle.
static double WedgeDistortion(vtkCell *cell)
Calculate the distortion of a wedge.
static double HexEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a hexahedron.
void SetQuadQualityMeasureToTaper()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetWedgeQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of wedges.
CellQualityType GetWedgeQualityMeasureFunction()
static double TetMinAngle(vtkCell *cell)
Calculate the minimal (nonoriented) dihedral angle of a tetrahedron, expressed in degrees.
void SetTetQualityMeasureToAspectRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTriangleQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to function the quality of triangles.
static double WedgeEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a wedge.
void SetHexQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double QuadCondition(vtkCell *cell)
Calculate the condition number of a quadrilateral.
void SetPyramidQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetQuadQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToSkew()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetQuadQualityMeasureToShearAndSize()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double HexAverageSize
vtkGetEnumMacro(TetQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToMaxEdgeRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TriangleAspectRatio(vtkCell *cell)
Calculate the aspect ratio of a triangle.
static double TetSquishIndex(vtkCell *cell)
Calculate the squish index of a tetrahedron.
static double HexJacobian(vtkCell *cell)
Calculate the Jacobian of a hexahedron.
void SetQuadQualityMeasureToMedAspectFrobenius()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
vtkGetEnumMacro(PyramidQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of pyramids.
static double PyramidEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a pyramid.
static double TetDistortion(vtkCell *cell)
Calculate the distortion of a tetrahedron.
static double QuadShapeAndSize(vtkCell *cell)
Calculate the shape and size of a quadrilateral.
void SetWedgeQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of wedges.
static double TriangleMaxAngle(vtkCell *cell)
Calculate the maximal (nonoriented) angle of a triangle, expressed in degrees.
void SetTriangleQualityMeasureToCondition()
Set/Get the particular estimator used to function the quality of triangles.
static double TetCondition(vtkCell *cell)
Calculate the condition number of a tetrahedron.
void SetWedgeQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of wedges.
void SetTetQualityMeasureToMeanRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TriangleRadiusRatio(vtkCell *cell)
Calculate the radius ratio of a triangle.
void SetWedgeQualityMeasureToMaxStretch()
Set/Get the particular estimator used to measure the quality of wedges.
static double TetScaledJacobian(vtkCell *cell)
Calculate the scaled Jacobian of a tetrahedron.
static double QuadEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a quadrilateral.
~vtkMeshQuality() override=default
void SetTetQualityMeasureToAspectFrobenius()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadShearAndSize(vtkCell *cell)
Calculate the shear and size of a quadrilateral.
static double HexDimension(vtkCell *cell)
Calculate the dimension of a hexahedron.
void SetHexQualityMeasureToTaper()
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTriangleQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToShape()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double HexStretch(vtkCell *cell)
Calculate the stretch of a hexahedron.
QualityMeasureTypes HexQualityMeasure
static double QuadMaxAngle(vtkCell *cell)
Calculate the maximum (nonoriented) angle of a quadrilateral, expressed in degrees.
void SetHexQualityMeasureToNodalJacobianRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double QuadStretch(vtkCell *cell)
Calculate the stretch of a quadrilateral.
void SetWedgeQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of wedges.
void SetTriangleQualityMeasureToAspectFrobenius()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetHexQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of hexahedra.
double(*)(vtkCell *) CellQualityType
static double HexEdgeRatio(vtkCell *cell)
Calculate the edge ratio of a hexahedron.
void SetTetQualityMeasureToRelativeSizeSquared()
Set/Get the particular estimator used to measure the quality of tetrahedra.
CellQualityType GetQuadQualityMeasureFunction()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetHexQualityMeasureToShearAndSize()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double QuadMaxAspectFrobenius(vtkCell *cell)
Calculate the maximal Frobenius aspect of the 4 corner triangles of a planar quadrilateral,...
vtkTypeBool SaveCellQuality
void SetHexQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TetAspectFrobenius(vtkCell *cell)
Calculate the Frobenius condition number of the transformation matrix from a regular tetrahedron to a...
static double HexMaxAspectFrobenius(vtkCell *cell)
Calculate the maximal Frobenius aspect of the 8 corner tetrahedra of a hexahedron,...
void SetQuadQualityMeasureToArea()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetQuadQualityMeasureToWarpage()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleAverageSize
static double HexShearAndSize(vtkCell *cell)
Calculate the shear and size of a hexahedron.
static double HexSkew(vtkCell *cell)
Calculate the skew of a hexahedron.
void SetTetQualityMeasureToCollapseRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double TetEquiangleSkew(vtkCell *cell)
Calculate the equiangle skew of a tetrahedron.
void SetTriangleQualityMeasureToMaxAngle()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToMaxAngle()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadShape(vtkCell *cell)
Calculate the shear of a quadrilateral.
vtkSetEnumMacro(TetQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetTetQualityMeasureToRadiusRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToOddy()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexMedAspectFrobenius(vtkCell *cell)
Calculate the average Frobenius aspect of the 8 corner tetrahedra of a hexahedron,...
void SetTetQualityMeasureToShapeAndSize()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetHexQualityMeasureToVolume()
Set/Get the particular estimator used to measure the quality of hexahedra.
static double TriangleRelativeSizeSquared(vtkCell *cell)
Calculate the square of the relative size of a triangle.
static double QuadRadiusRatio(vtkCell *cell)
Calculate the radius ratio of a planar quadrilateral.
static double QuadRelativeSizeSquared(vtkCell *cell)
Calculate the relative size squared of a quadrilateral.
static double TetEquivolumeSkew(vtkCell *cell)
Calculate the equivolume skew of a tetrahedron.
static double TetVolume(vtkCell *cell)
Calculate the volume of a tetrahedron.
static double QuadSkew(vtkCell *cell)
Calculate the skew of a quadrilateral.
static double PyramidScaledJacobian(vtkCell *cell)
Calculate the Jacobian of a pyramid.
static double PyramidAverageSize
void SetWedgeQualityMeasureToMaxAspectFrobenius()
Set/Get the particular estimator used to measure the quality of wedges.
static double QuadDistortion(vtkCell *cell)
Calculate the distortion of a quadrilateral.
void SetPyramidQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetTetQualityMeasureToCondition()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToOddy()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
void SetTetQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double WedgeJacobian(vtkCell *cell)
Calculate the Jacobian of a wedge.
QualityMeasureTypes PyramidQualityMeasure
static double QuadMaxEdgeRatio(vtkCell *cell)
Calculate the maximum edge length ratio of a quadrilateral at quad center.
void SetHexQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to measure the quality of hexahedra.
CellQualityType GetPyramidQualityMeasureFunction()
static double WedgeCondition(vtkCell *cell)
Calculate the condition number of a wedge.
void SetTetQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of tetrahedra.
void SetQuadQualityMeasureToMinAngle()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double WedgeVolume(vtkCell *cell)
Calculate the volume of a wedge.
vtkSetEnumMacro(QuadQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TriangleMinAngle(vtkCell *cell)
Calculate the minimal (nonoriented) angle of a triangle, expressed in degrees.
vtkSetEnumMacro(HexQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to measure the quality of hexahedra.
static double HexDiagonal(vtkCell *cell)
Calculate the diagonal of a hexahedron.
void SetTriangleQualityMeasureToShape()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToEdgeRatio()
Set/Get the particular estimator used to function the quality of triangles.
static double TriangleArea(vtkCell *cell)
Calculate the area of a triangle.
CellQualityType GetHexQualityMeasureFunction()
static double TetShapeAndSize(vtkCell *cell)
Calculate the shape and size of a tetrahedron.
vtkGetEnumMacro(TriangleQualityMeasure, QualityMeasureTypes)
Set/Get the particular estimator used to function the quality of triangles.
void SetTetQualityMeasureToAspectGamma()
Set/Get the particular estimator used to measure the quality of tetrahedra.
static double QuadMinAngle(vtkCell *cell)
Calculate the minimal (nonoriented) angle of a quadrilateral, expressed in degrees.
void SetQuadQualityMeasureToScaledJacobian()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
virtual void SetHexQualityMeasure(int measure)
Set/Get the particular estimator used to measure the quality of hexahedra.
void SetTriangleQualityMeasureToDistortion()
Set/Get the particular estimator used to function the quality of triangles.
void SetTriangleQualityMeasureToMinAngle()
Set/Get the particular estimator used to function the quality of triangles.
void SetQuadQualityMeasureToStretch()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double TetRadiusRatio(vtkCell *cell)
Calculate the radius ratio of a tetrahedron.
static double HexNodalJacobianRatio(vtkCell *cell)
Calculate the nodal Jacobian ratio of a hexahedron.
static double WedgeAverageSize
static double TetAspectRatio(vtkCell *cell)
Calculate the aspect ratio of a tetrahedron.
void SetWedgeQualityMeasureToEquiangleSkew()
Set/Get the particular estimator used to measure the quality of wedges.
QualityMeasureTypes WedgeQualityMeasure
static double WedgeMaxAspectFrobenius(vtkCell *cell)
Calculate the max aspect Frobenius of a wedge.
static double TetShape(vtkCell *cell)
Calculate the shape of a tetrahedron.
void SetPyramidQualityMeasureToJacobian()
Set/Get the particular estimator used to measure the quality of pyramids.
void SetQuadQualityMeasureToDistortion()
Set/Get the particular estimator used to measure the quality of quadrilaterals.
static double HexCondition(vtkCell *cell)
Calculate the condition of a hexahedron.
int vtkTypeBool
Definition vtkABI.h:64