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
TetQualityAnalysis filter
TetQualityAnalysis module is a filter that performs an analysis of tetrahedras quality of one or several meshes and generates a plot as summary. Metrics computed include aspect ratio, shape quality, volume, min and max edges, edge ratio, min and max dihedral angles, quality score.
The meshes are compared based on their median quality score and the change from the best one is evaluated for these metrics.
Filter input should be vtkUnstructuredGrid.
To use the filter:
from geos.processing.pre_processing.TetQualityAnalysis import TetQualityAnalysis
# Filter inputs
inputMesh: dict[str, vtkUnstructuredGrid]
speHandler: bool # optional
# Instantiate the filter
tetQualityAnalysisFilter: TetQualityAnalysis = TetQualityAnalysis( inputMesh, speHandler )
# Use your own handler (if speHandler is True)
yourHandler: logging.Handler
tetQualityAnalysisFilter.setLoggerHandler( yourHandler )
# Change output filename [optional]
tetQualityAnalysisFilter.setFilename( filename )
# Do calculations
try:
tetQualityAnalysisFilter.applyFilter()
except Exception as e:
tetQualityAnalysisFilter.logger.error( f"The filter { tetQualityAnalysisFilter.logger.name } failed due to: { e }" )
- class geos.processing.pre_processing.TetQualityAnalysis.TetQualityAnalysis(meshes, speHandler=False)[source]
Bases:
objectTetrahedra Quality Analysis.
- Parameters:
meshes (dict[str,vtkUnstructuredGrid]) – Meshes to analyze.
speHandler (bool, optional) – True to use a specific handler, False to use the internal handler. Defaults to False.
- printPercentileAnalysis(fmt='.2f')[source]
Print percentile analysis.
- Parameters:
fmt (str) – Display formatting.
- setFilename(filename)[source]
Set comparison dashboard output filename.
- Parameters:
filename (str) – Output filename.