VTK  9.2.6
vtkMeshQuality.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkMeshQuality.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14 Copyright 2003-2008 Sandia Corporation.
15 Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
16 license for use of this work by or on behalf of the
17 U.S. Government. Redistribution and use in source and binary forms, with
18 or without modification, are permitted provided that this Notice and any
19 statement of authorship are reproduced on all copies.
20
21 Contact: dcthomp@sandia.gov,pppebay@sandia.gov
22
23=========================================================================*/
73
74#ifndef vtkMeshQuality_h
75#define vtkMeshQuality_h
76
77#include "vtkDataSetAlgorithm.h"
78#include "vtkDeprecation.h" // For deprecation
79#include "vtkFiltersVerdictModule.h" // For export macro
80
81class vtkCell;
82class vtkDataArray;
83class vtkDoubleArray;
84class vtkMeshQualityFunctor;
85
86class VTKFILTERSVERDICT_EXPORT vtkMeshQuality : public vtkDataSetAlgorithm
87{
88private:
90
91public:
92 void PrintSelf(ostream& os, vtkIndent indent) override;
95
97
105 vtkBooleanMacro(SaveCellQuality, vtkTypeBool);
107
109
116 vtkSetMacro(LinearApproximation, bool);
117 vtkGetMacro(LinearApproximation, bool);
118 vtkBooleanMacro(LinearApproximation, bool);
120
166
170 static const char* QualityMeasureNames[];
171
173
181 virtual void SetTriangleQualityMeasure(int measure)
182 {
183 this->SetTriangleQualityMeasure(static_cast<QualityMeasureTypes>(measure));
184 }
246
247
249
262 virtual void SetQuadQualityMeasure(int measure)
263 {
264 this->SetQuadQualityMeasure(static_cast<QualityMeasureTypes>(measure));
265 }
345
346
348
356 virtual void SetTetQualityMeasure(int measure)
357 {
358 this->SetTetQualityMeasure(static_cast<QualityMeasureTypes>(measure));
359 }
435
436
438
444 virtual void SetPyramidQualityMeasure(int measure)
445 {
446 this->SetPyramidQualityMeasure(static_cast<QualityMeasureTypes>(measure));
447 }
469
470
472
479 virtual void SetWedgeQualityMeasure(int measure)
480 {
481 this->SetWedgeQualityMeasure(static_cast<QualityMeasureTypes>(measure));
482 }
525
526
528
537 virtual void SetHexQualityMeasure(int measure)
538 {
539 this->SetHexQualityMeasure(static_cast<QualityMeasureTypes>(measure));
540 }
609
610
614 static double TriangleArea(vtkCell* cell);
615
623 static double TriangleEdgeRatio(vtkCell* cell);
624
632 static double TriangleAspectRatio(vtkCell* cell);
633
641 static double TriangleRadiusRatio(vtkCell* cell);
642
652 static double TriangleAspectFrobenius(vtkCell* cell);
653
657 static double TriangleMinAngle(vtkCell* cell);
658
662 static double TriangleMaxAngle(vtkCell* cell);
663
667 static double TriangleCondition(vtkCell* cell);
668
672 static double TriangleScaledJacobian(vtkCell* cell);
673
681
685 static double TriangleShape(vtkCell* cell);
686
693 static double TriangleShapeAndSize(vtkCell* cell);
694
698 static double TriangleDistortion(vtkCell* cell);
699
703 static double TriangleEquiangleSkew(vtkCell* cell);
704
711
719 static double QuadEdgeRatio(vtkCell* cell);
720
728 static double QuadAspectRatio(vtkCell* cell);
729
740 static double QuadRadiusRatio(vtkCell* cell);
741
751 static double QuadMedAspectFrobenius(vtkCell* cell);
752
762 static double QuadMaxAspectFrobenius(vtkCell* cell);
763
767 static double QuadMinAngle(vtkCell* cell);
768
772 static double QuadMaxEdgeRatio(vtkCell* cell);
773
779 static double QuadSkew(vtkCell* cell);
780
785 static double QuadTaper(vtkCell* cell);
786
792 static double QuadWarpage(vtkCell* cell);
793
798 static double QuadArea(vtkCell* cell);
799
804 static double QuadStretch(vtkCell* cell);
805
809 static double QuadMaxAngle(vtkCell* cell);
810
816 static double QuadOddy(vtkCell* cell);
817
823 static double QuadCondition(vtkCell* cell);
824
830 static double QuadJacobian(vtkCell* cell);
831
837 static double QuadScaledJacobian(vtkCell* cell);
838
843 static double QuadShear(vtkCell* cell);
844
849 static double QuadShape(vtkCell* cell);
850
859 static double QuadRelativeSizeSquared(vtkCell* cell);
860
868 static double QuadShapeAndSize(vtkCell* cell);
869
877 static double QuadShearAndSize(vtkCell* cell);
878
884 static double QuadDistortion(vtkCell* cell);
885
889 static double QuadEquiangleSkew(vtkCell* cell);
890
898 static double TetEdgeRatio(vtkCell* cell);
899
907 static double TetAspectRatio(vtkCell* cell);
908
916 static double TetRadiusRatio(vtkCell* cell);
917
928 static double TetAspectFrobenius(vtkCell* cell);
929
933 static double TetMinAngle(vtkCell* cell);
934
941 static double TetCollapseRatio(vtkCell* cell);
942
948 static double TetAspectGamma(vtkCell* cell);
949
954 static double TetVolume(vtkCell* cell);
955
960 static double TetCondition(vtkCell* cell);
961
966 static double TetJacobian(vtkCell* cell);
967
973 static double TetScaledJacobian(vtkCell* cell);
974
979 static double TetShape(vtkCell* cell);
980
989 static double TetRelativeSizeSquared(vtkCell* cell);
990
998 static double TetShapeAndSize(vtkCell* cell);
999
1005 static double TetDistortion(vtkCell* cell);
1006
1010 static double TetEquiangleSkew(vtkCell* cell);
1011
1015 static double TetEquivolumeSkew(vtkCell* cell);
1016
1022 static double TetMeanRatio(vtkCell* cell);
1023
1029 static double TetNormalizedInradius(vtkCell* cell);
1030
1034 static double TetSquishIndex(vtkCell* cell);
1035
1039 static double PyramidEquiangleSkew(vtkCell* cell);
1040
1045 static double PyramidJacobian(vtkCell* cell);
1046
1051 static double PyramidScaledJacobian(vtkCell* cell);
1052
1058 static double PyramidShape(vtkCell* cell);
1059
1063 static double PyramidVolume(vtkCell* cell);
1064
1069 static double WedgeCondition(vtkCell* cell);
1070
1075 static double WedgeDistortion(vtkCell* cell);
1076
1082 static double WedgeEdgeRatio(vtkCell* cell);
1083
1087 static double WedgeEquiangleSkew(vtkCell* cell);
1088
1093 static double WedgeJacobian(vtkCell* cell);
1094
1099 static double WedgeMaxAspectFrobenius(vtkCell* cell);
1100
1106 static double WedgeMaxStretch(vtkCell* cell);
1107
1113 static double WedgeMeanAspectFrobenius(vtkCell* cell);
1114
1124 static double WedgeScaledJacobian(vtkCell* cell);
1125
1131 static double WedgeShape(vtkCell* cell);
1132
1136 static double WedgeVolume(vtkCell* cell);
1137
1145 static double HexEdgeRatio(vtkCell* cell);
1146
1151 static double HexMedAspectFrobenius(vtkCell* cell);
1152
1157 static double HexMaxAspectFrobenius(vtkCell* cell);
1158
1162 static double HexMaxEdgeRatio(vtkCell* cell);
1163
1169 static double HexSkew(vtkCell* cell);
1170
1175 static double HexTaper(vtkCell* cell);
1176
1181 static double HexVolume(vtkCell* cell);
1182
1187 static double HexStretch(vtkCell* cell);
1188
1193 static double HexDiagonal(vtkCell* cell);
1194
1200 static double HexDimension(vtkCell* cell);
1201
1207 static double HexOddy(vtkCell* cell);
1208
1213 static double HexCondition(vtkCell* cell);
1214
1220 static double HexJacobian(vtkCell* cell);
1221
1227 static double HexScaledJacobian(vtkCell* cell);
1228
1233 static double HexShear(vtkCell* cell);
1234
1239 static double HexShape(vtkCell* cell);
1240
1249 static double HexRelativeSizeSquared(vtkCell* cell);
1250
1258 static double HexShapeAndSize(vtkCell* cell);
1259
1267 static double HexShearAndSize(vtkCell* cell);
1268
1274 static double HexDistortion(vtkCell* cell);
1275
1279 static double HexEquiangleSkew(vtkCell* cell);
1280
1285 static double HexNodalJacobianRatio(vtkCell* cell);
1286
1297 virtual void SetRatio(vtkTypeBool r) { this->SetSaveCellQuality(r); }
1299 vtkBooleanMacro(Ratio, vtkTypeBool);
1300
1302
1319 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1320 virtual void SetVolume(vtkTypeBool cv)
1321 {
1322 if (!((cv != 0) ^ (this->Volume != 0)))
1323 {
1324 return;
1325 }
1326 this->Modified();
1327 this->Volume = cv;
1328 if (this->Volume)
1329 {
1330 this->CompatibilityMode = 1;
1331 }
1332 }
1333 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1334 vtkTypeBool GetVolume() { return this->Volume; }
1335 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1337 {
1338 if (!this->Volume)
1339 {
1340 this->Volume = 1;
1341 this->Modified();
1342 }
1343 }
1344 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1346 {
1347 if (this->Volume)
1348 {
1349 this->Volume = 0;
1350 this->Modified();
1351 }
1352 }
1353
1354
1356
1383 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1385 {
1386 if (!((cm != 0) ^ (this->CompatibilityMode != 0)))
1387 {
1388 return;
1389 }
1390 this->CompatibilityMode = cm;
1391 this->Modified();
1392 if (this->CompatibilityMode)
1393 {
1394 this->Volume = 1;
1396 }
1397 }
1398 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1400 VTK_DEPRECATED_IN_9_2_0("Deprecating compatibility mode for this filter")
1402 {
1403 if (!this->CompatibilityMode)
1404 {
1405 this->CompatibilityMode = 1;
1406 this->Modified();
1407 }
1408 }
1409 VTK_DEPRECATED_IN_9_2_0("Part of deprecating compatibility mode for this filter")
1411 {
1412 if (this->CompatibilityMode)
1413 {
1414 this->CompatibilityMode = 0;
1415 this->Modified();
1416 }
1417 }
1418
1419
1420protected:
1422 ~vtkMeshQuality() override = default;
1423
1425
1434
1435 using CellQualityType = double (*)(vtkCell*);
1442
1443 // VTK_DEPRECATED_IN_9_2_0 Those 2 attributes need to be removed, and instance in the code as
1444 // well.
1447
1448 // Variables used to store the average size (2D: area / 3D: volume)
1449 static double TriangleAverageSize;
1450 static double QuadAverageSize;
1451 static double TetAverageSize;
1452 static double PyramidAverageSize;
1453 static double WedgeAverageSize;
1454 static double HexAverageSize;
1455
1456private:
1457 vtkMeshQuality(const vtkMeshQuality&) = delete;
1458 void operator=(const vtkMeshQuality&) = delete;
1459};
1460
1461#endif // vtkMeshQuality_h
abstract class to specify cell behavior
Definition vtkCell.h:61
dynamic, self-adjusting array of double
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
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 VolumeOff()
These methods are deprecated.
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.
virtual vtkTypeBool GetSaveCellQuality()
This variable controls whether or not cell quality is stored as cell data in the resulting mesh or di...
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.
friend class vtkMeshQualityFunctor
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.
virtual void SetCompatibilityMode(vtkTypeBool cm)
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
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 GetVolume()
These methods are deprecated.
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.
vtkTypeBool Volume
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.
static const char * QualityMeasureNames[]
Array which lists the Quality Measures Names.
void VolumeOn()
These methods are deprecated.
vtkTypeBool CompatibilityMode
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.
virtual void SetSaveCellQuality(vtkTypeBool)
This variable controls whether or not cell quality is stored as cell data in the resulting mesh or di...
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()
void CompatibilityModeOff()
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
static double TetShapeAndSize(vtkCell *cell)
Calculate the shape and size of a tetrahedron.
void CompatibilityModeOn()
CompatibilityMode governs whether, when both a quality function and cell volume are to be stored as c...
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
virtual void SetVolume(vtkTypeBool cv)
These methods are deprecated.
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.
virtual void Modified()
Update the modification time for this object.
int vtkTypeBool
Definition vtkABI.h:69
#define vtkDataArray
#define VTK_DEPRECATED_IN_9_2_0(reason)