How does Catalyst send the extracts to the ParaView server?

I tried the wavelet_miniapp bundled with ParaView, supplying my script sample.py as input to the miniapp.
I launched the program with N being a power of two

mpiexec -np N pvbatch --sym -m paraview.demos.wavelet_miniapp --script sample.py --script-version 2 --channel Wavelet1 --timesteps 10

while connecting to it from the ParaView GUI.

What I noticed are the following:

  1. In the Pipeline Browser, I click on the Slice1 object, and in the Information tab I check the bounds. It turns out that not the whole domain is shown, only N/2 part of it. Why is it so? Is the fraction 2 related to the --sym flag passed to pvbatch?
  2. When I click on the icon next to Slice1, it sends the extract to the ParaView server (see Section 2.3 of the Catalyst Guide). Looking at the obtained Extract: Slice1 object, the domain is assembled. Is it the expected behavior?
  3. When I increase the number of processes, i.e. N, e.g. to N=32, the data statistics shows 0 cells for Slice1, but it is still assembled correctly to Extract: Slice1. Why is it so that afte

Performing the same co-processing on an HPC node, but with the command

mpirun -np N --npersocket N/2 $PYTHON -m paraview.demos.wavelet_miniapp --script sample.py --channel Wavelet1 --script-version 2 --timesteps 10
  1. When I check the bounds of the domain of Slice1, it indicated N/2 part of the domain. But when I send it to the ParaView server by clicking on the aforementioned icon, the domain is not assembled, it stays the same. What could cause the difference compared to the previous case, when the co-processing was run on my local machine?

sample.py (723 Bytes)

After compiling ParaView with the same C++ compiler and MPI that is used by the simulation code, all the issues above disappeared, and the coprocessing works as expected.