Commit 73ac5cd8 authored by Joachim Pouderoux's avatar Joachim Pouderoux

Expose the new vtkPUnstructuredGridGhostCellsGenerator filter to ParaView.

The filter is a parallel filter that computes ghost cells on parallel
unstructured grid using MPI - taking benefit of the existence of global
point ids or not.
Also add a test for this new filter.
parent 095fef63
Pipeline #3271 passed with stage
......@@ -162,6 +162,7 @@
<Proxy group="filters" name="FFTSelectionOverTime" />
<Proxy group="filters" name="GaussianSplatter"/>
<Proxy group="filters" name="GenerateIdScalars"/>
<Proxy group="filters" name="GhostCellsGenerator" />
<Proxy group="filters" name="Glyph" />
<Proxy group="filters" name="GlyphWithCustomSource" />
<Proxy group="filters" name="Gradient" />
......
......@@ -347,6 +347,18 @@ if (PARAVIEW_USE_MPI)
# Test uses D3 which is available in MPI only builds.
${CMAKE_CURRENT_SOURCE_DIR}/GridConnectivity.xml
)
# Test uses GhostCellsGenerator which is available in MPI only builds.
# As the test use pvtu writer/reader it does not work in built-in mode.
add_client_server_tests("pvcs"
BASELINE_DIR ${PARAVIEW_TEST_BASELINE_DIR}
TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/GhostCellsGenerator.xml
)
add_client_render_server_tests("pvcrs"
BASELINE_DIR ${PARAVIEW_TEST_BASELINE_DIR}
TEST_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/GhostCellsGenerator.xml
)
if (PARAVIEW_ENABLE_COSMOTOOLS)
# Test the Generic IO file writer in VTKExtensions/CosmoTools
add_client_tests("pv"
......
<?xml version="1.0" ?>
<pqevents>
<pqevent object="pqClientMainWindow/menubar" command="activate" arguments="menuSources" />
<pqevent object="pqClientMainWindow/menubar/menuSources" command="activate" arguments="RTAnalyticSource" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/menubar" command="activate" arguments="menuFilters" />
<pqevent object="pqClientMainWindow/menubar/menuFilters/Alphabetical" command="activate" arguments="Threshold" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/menubar/menu_File" command="activate" arguments="actionFileSaveData" />
<pqevent object="pqClientMainWindow/FileSaveDialog" command="filesSelected" arguments="$PARAVIEW_TEST_ROOT/GhostCellsGeneratorTest.pvtu" />
<pqevent object="pqWriterDialog/buttonBox/1QPushButton0" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/MainControlsToolbar/1QToolButton0" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/FileOpenDialog" command="filesSelected" arguments="$PARAVIEW_TEST_ROOT/GhostCellsGeneratorTest.pvtu" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mousePress" arguments="1,1,0,9,10,/0:0/0:0/0:1" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mouseRelease" arguments="1,0,0,9,10,/0:0/0:0/0:1" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mousePress" arguments="1,1,0,10,12,/0:0/0:1" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mouseMove" arguments="1,0,0,14,9,/0:0/0:1" />
<pqevent object="pqClientMainWindow/pipelineBrowserDock/pipelineBrowser" command="mouseRelease" arguments="1,0,0,14,9,/0:0/0:1" />
<pqevent object="pqClientMainWindow/menubar" command="activate" arguments="menuFilters" />
<pqevent object="pqClientMainWindow/menubar/menuFilters/Alphabetical" command="activate" arguments="GhostCellsGenerator" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/Accept" command="activate" arguments="" />
<pqevent object="pqClientMainWindow/representationToolbar/displayRepresentation/comboBox" command="set_string" arguments="Surface" />
<pqevent object="pqClientMainWindow/propertiesDock/propertiesPanel/scrollArea/qt_scrollarea_viewport/scrollAreaWidgetContents/DisplayFrame/ProxyPanel/Opacity/DoubleRangeWidget/Slider" command="set_int" arguments="30" />
<pqevent object="pqClientMainWindow/variableToolbar/displayColor/Variables" command="set_string" arguments="Solid Color" />
</pqevents>
......@@ -21,6 +21,9 @@ set(_vtk_mpi_modules
vtkIOMPIParallel
# vtkMPIMultiBlockPLOT3DReader.
# Needed for vtkPUnstructuredGridGhostCellsGenerator
vtkFiltersParallelGeometry
)
# Add CosmoTools VTK extensions if enabled.
......
......@@ -59,6 +59,69 @@
<!-- End D3 -->
</SourceProxy>
<!-- ==================================================================== -->
<SourceProxy class="vtkPUnstructuredGridGhostCellsGenerator"
label="Ghost Cells Generator"
name="GhostCellsGenerator">
<Documentation long_help="Generate ghost cells for unstructured grids."
short_help="Generate ghost cells for unstructured grids.">
The GhostCellGenerator filter is available when ParaView is
run in parallel (ie. with MPI). It operates on unstructured
grids only.
This filter does not redistribute the input data, it only
generates ghost cells at processor boundary by fetching
topological and geometrical information of those cells on
neighbor ranks. The filter can take benefit of global point
ids if they are available - if so it will perform faster,
otherwise point coordinates will be exchanged and processed.
</Documentation>
<InputProperty command="SetInputConnection"
name="Input">
<ProxyGroupDomain name="groups">
<Group name="sources" />
<Group name="filters" />
</ProxyGroupDomain>
<DataTypeDomain name="input_type" composite_data_supported="1">
<DataType value="vtkUnstructuredGrid" />
</DataTypeDomain>
<Documentation>This property specifies the input to the ghost cells
generator.</Documentation>
</InputProperty>
<IntVectorProperty command="SetBuildIfRequired"
default_values="1"
name="BuildIfRequired"
number_of_elements="1"
panel_visibility="advanced">
<Documentation>Specify if the filter must generate the ghost cells only
if required by the pipeline downstream.</Documentation>
<BooleanDomain name="bool" />
</IntVectorProperty>
<IntVectorProperty command="SetUseGlobalPointIds"
default_values="1"
name="UseGlobalIds"
number_of_elements="1"
panel_visibility="advanced">
<Documentation>Specify if the filter must take benefit of global point
ids if they exist or if point coordinates should be used instead.
</Documentation>
<BooleanDomain name="bool" />
</IntVectorProperty>
<StringVectorProperty command="SetGlobalPointIdsArrayName"
default_values="GlobalNodeIds"
name="GlobalPointIdsArrayName"
number_of_elements="1"
panel_visibility="never">
<Documentation>This property provides the name for the input array
containing the global point ids if the GlobalIds array of the point
data if not set. Default is GlobalNodeIds.</Documentation>
<Hints>
<PropertyWidgetDecorator type="ShowWidgetDecorator">
<Property name="UseGlobalIds" function="boolean" />
</PropertyWidgetDecorator>
</Hints>
</StringVectorProperty>
<!-- End vtkPUnstructuredGridGhostCellsGenerator -->
</SourceProxy>
<!-- ==================================================================== -->
<SourceProxy base_proxygroup="filters"
base_proxyname="ParticlePath"
class="vtkInSituPParticlePathFilter"
......
Subproject commit 10331a51ae69d1e0647e1a6c7e12ef6dca99d3fe
Subproject commit c6dc443573d724286926842d4b37d83a0b7d33de
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment