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: object

CellTypeCounterEnhanced 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:

CellTypeCounts

applyFilter()[source]

Apply CellTypeCounterEnhanced filter.

Raises:

TypeError – Errors with the type of the cells.

getOutput()[source]

Get the computed vtkTable.

setLoggerHandler(handler)[source]

Set a specific handler for the filter logger.

In this filter 4 log levels are use, .info, .error, .warning and .critical, be sure to have at least the same 4 levels.

Parameters:

handler (logging.Handler) – The handler to add.

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: object

Enhanced 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:

QualityMetricSummary

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

applyFilter()[source]

Apply MeshQualityEnhanced filter.

getComputedMetricsFromCellType(cellType)[source]

Get the set of metrics computed for input cell type.

Parameters:

cellType (int) – Cell type index

Returns:

Set of computed quality metrics

Return type:

Optional[set[int]]

getOutput()[source]

Get the mesh computed with the stats.

setLoggerHandler(handler)[source]

Set a specific handler for the filter logger.

In this filter 4 log levels are use, .info, .error, .warning and .critical, be sure to have at least the same 4 levels.

Parameters:

handler (logging.Handler) – The handler to add.

geos.processing.pre_processing.MeshQualityEnhanced.QUALITY_ARRAY_NAME = 'Quality'

name of output quality array from vtkMeshQuality filter

geos.processing.pre_processing.MeshQualityEnhanced.getQualityMetricArrayName(metric)[source]

Get the name of the array from quality metric index.

Parameters:

metric (int) – Metric index

Returns:

Name of output array

Return type:

str