Pre-processing filters
The pre_processing module of geos-processing package contains filters to pre-process meshes for GEOS simulation.
CellTypeCounterEnhanced filter
CellTypeCounterEnhanced module is a vtk filter that computes cell type counts.
Filter input is a vtkUnstructuredGrid, output is a vtkTable
To use the filter:
from geos.processing.pre_processing.CellTypeCounterEnhanced import CellTypeCounterEnhanced
# Filter inputs
inputMesh: vtkUnstructuredGrid
speHandler: bool # defaults to False
# Instantiate the filter
cellTypeCounterEnhancedFilter: CellTypeCounterEnhanced = CellTypeCounterEnhanced( inputMesh, speHandler )
# Set the handler of yours (only if speHandler is True).
yourHandler: logging.Handler
cellTypeCounterEnhancedFilter.setLoggerHandler( yourHandler )
# Do calculations
try:
cellTypeCounterEnhancedFilter.applyFilter()
except TypeError as e:
cellTypeCounterEnhancedFilter.logger.error( f"The filter { cellTypeCounterEnhancedFilter.logger.name } failed due to: { e }" )
except Exception as e:
mess: str = f"The filter { cellTypeCounterEnhancedFilter.logger.name } failed due to: { e }"
cellTypeCounterEnhancedFilter.logger.critical( mess, exc_info=True )
# Get result
counts: CellTypeCounts = cellTypeCounterEnhancedFilter.GetCellTypeCountsObject()
outputTable: vtkTable = cellTypeCounterEnhancedFilter.getOutput()
- class geos.processing.pre_processing.CellTypeCounterEnhanced.CellTypeCounterEnhanced(inputMesh, speHandler=False)[source]
Bases:
objectCellTypeCounterEnhanced filter computes mesh stats.
- Parameters:
inputMesh (vtkUnstructuredGrid) – The input mesh.
speHandler (bool, optional) – True to use a specific handler, False to use the internal handler. Defaults to False.
- GetCellTypeCountsObject()[source]
Get CellTypeCounts object.
- Returns:
CellTypeCounts object.
- Return type:
MeshQualityEnhanced filter
MeshQualityEnhanced module is a vtk filter that computes mesh quality stats.
Mesh quality stats include those from vtkMeshQuality as well as .
Filter input is a vtkUnstructuredGrid.
To use the filter:
from geos.processing.pre_processing.MeshQualityEnhanced import MeshQualityEnhanced
# Filter inputs
inputMesh: vtkUnstructuredGrid
speHandler: bool # optional
# Instantiate the filter
meshQualityEnhancedFilter: MeshQualityEnhanced = MeshQualityEnhanced( inputMesh, speHandler )
# Use your own handler (if speHandler is True)
yourHandler: logging.Handler
meshQualityEnhancedFilter.setLoggerHandler( yourHandler )
# Set metrics to use
meshQualityEnhancedFilter.SetTriangleMetrics(triangleQualityMetrics)
meshQualityEnhancedFilter.SetQuadMetrics(quadQualityMetrics)
meshQualityEnhancedFilter.SetTetraMetrics(tetraQualityMetrics)
meshQualityEnhancedFilter.SetPyramidMetrics(pyramidQualityMetrics)
meshQualityEnhancedFilter.SetWedgeMetrics(wedgeQualityMetrics)
meshQualityEnhancedFilter.SetHexaMetrics(hexaQualityMetrics)
meshQualityEnhancedFilter.SetOtherMeshQualityMetrics(otherQualityMetrics)
# Do calculations
try:
meshQualityEnhancedFilter.applyFilter()
except ( ValueError, IndexError, TypeError, AttributeError ) as e:
meshQualityEnhancedFilter.logger.error( f"The filter { meshQualityEnhancedFilter.logger.name } failed due to: { e }" )
except Exception as e:
mess: str = f"The filter { meshQualityEnhancedFilter.logger.name } failed due to: { e }"
meshQualityEnhancedFilter.logger.critical( mess, exc_info=True )
# Get output mesh quality report
outputMesh: vtkUnstructuredGrid = meshQualityEnhancedFilter.getOutput()
outputStats: QualityMetricSummary = meshQualityEnhancedFilter.GetQualityMetricSummary()
- class geos.processing.pre_processing.MeshQualityEnhanced.MeshQualityEnhanced(inputMesh, speHandler=False)[source]
Bases:
objectEnhanced vtkMeshQuality filter.
- Parameters:
inputMesh (vtkUnstructuredGrid) – Input mesh
speHandler (bool, optional) – True to use a specific handler, False to use the internal handler. Defaults to False.
- GetQualityMetricSummary()[source]
Get QualityMetricSummary object.
- Returns:
QualityMetricSummary object
- Return type:
- SetCellQualityMetrics(triangleMetrics=None, quadMetrics=None, tetraMetrics=None, pyramidMetrics=None, wedgeMetrics=None, hexaMetrics=None)[source]
Set all quality metrics to compute.
- Parameters:
triangleMetrics (Iterable[int]) –
Triangle metrics to compute.
Defaults to [vtkMeshQuality.QualityMeasureTypes.NONE,].
quadMetrics (Iterable[int]) –
Quad metrics to compute.
Defaults to [vtkMeshQuality.QualityMeasureTypes.NONE,].
tetraMetrics (Iterable[int]) –
Tetrahedron metrics to compute.
Defaults to [vtkMeshQuality.QualityMeasureTypes.NONE,].
pyramidMetrics (Iterable[int]) –
Pyramid metrics to compute.
Defaults to [vtkMeshQuality.QualityMeasureTypes.NONE,].
wedgeMetrics (Iterable[int]) –
Wedge metrics to compute.
Defaults to [vtkMeshQuality.QualityMeasureTypes.NONE,].
hexaMetrics (Iterable[int]) –
Hexahedron metrics to compute.
Defaults to [vtkMeshQuality.QualityMeasureTypes.NONE,].
- SetHexaMetrics(metrics=None)[source]
Set triangle quality metrics to compute.
- Parameters:
metrics (Iterable[int]) – Metrics to compute
- SetOtherMeshQualityMetrics(metrics)[source]
Set additional metrics unrelated to cell types.
- Parameters:
metrics (set[QualityMetricOtherEnum]) – Set of QualityMetricOtherEnum
- SetPyramidMetrics(metrics=None)[source]
Set triangle quality metrics to compute.
- Parameters:
metrics (Iterable[int]) – Metrics to compute
- SetQuadMetrics(metrics=None)[source]
Set triangle quality metrics to compute.
- Parameters:
metrics (Iterable[int]) – Metrics to compute
- SetTetraMetrics(metrics=None)[source]
Set triangle quality metrics to compute.
- Parameters:
metrics (Iterable[int]) – Metrics to compute
- SetTriangleMetrics(metrics)[source]
Set triangle quality metrics to compute.
- Parameters:
metrics (Iterable[int]) – Metrics to compute
- SetWedgeMetrics(metrics=None)[source]
Set triangle quality metrics to compute.
- Parameters:
metrics (Iterable[int]) – Metrics to compute
- geos.processing.pre_processing.MeshQualityEnhanced.QUALITY_ARRAY_NAME = 'Quality'
name of output quality array from vtkMeshQuality filter