Hello!
I recently started taking a closer look into implementing Catalyst2 capabilities into an in-house fluid dynamics solver.
My main goal is to be able to have a live representation of the solution, which means loading up a Catalyst state with predefined filters (Slices, Calculators etc) and have the ParaView windows automatically update with the new flow characteristics.
I started with this guide:
I faced the same problem mentioned in the following comment of the aforementioned guide:
which I also managed to solve by downloading and building ParaView from source.
Up to that point:
- Catalyst is built correctly, tests are passed succesfully
- ParaView is also build correctly, binaries work as intended
I then tried some of the examples.
Catalyst examples (legacy)
All examples work as intended.
I am able to connect ParaView to the simulation and visualize whatever I want.
Catalyst breakpoints also work as intended.
All and all, legacy Catalyst examples work just fine.
Therefore, I think my ParaView and Catalyst builds are OK.
Catalyst2 examples
I tried the CxxFullExample that is mentioned in the guide.
I compiled the example using:
cmake -DCMAKE_PREFIX_PATH=#ParaViewBuildPath# #exampleSourcePath#
make
It is built succesfully.
In order to run the example, I also needed to set:
export CATALYST_IMPLEMENTATION_PATHS=“#ParaviewBuildPath#/lib/catalyst”
export CATALYST_IMPLEMENTATION_NAME=paraview
I then open ParaView and connect it to catalyst, also setting in to pause on the first iteration,
and run the example with:
./bin/CxxFullExampleV2 catalyst2_pipeline.py
ParaView connects to catalyst successfully:
The simulation also pauses on the first iteration, with a warning:
The warning reads:
GetVoidPointer called. This is very expensive for non-array-of-structs subclasses, as the scalar array must be generated for each call. Using the vtkGenericDataArray API with vtkArrayDispatch are preferred. Define the environment variable VTK_SILENCE_GET_VOID_POINTER_WARNINGS to silence this warning.
To continue, I just extract the grid and choose to see the velocity contour:
Here is where the problems start
When I go to Catalyst/Continue, the ParaView window just freezes until the end of the simulation.
I cannot do or change anything:
- The solution does not update as the example iterates
- I am not able to change the view in any way, the window is frozen
- In addition, Catalyst/Set Breakpoint does not seem to do anything, no matter what I set as a breakpoint the simulation iterates until the end and then stops
When I click “OK”, the view updates to the final values and Catalyst closes:
Is there anything I am missing here?
The Catalyst legacy examples work just fine.
Is there anything else I need to do for Catalyst2?