Catalyst V2 C++ Example: python pipeline not recognized

I’m trying to run the Catalyst V2 C++ example, but the python pipeline is not running. Here is my setup:

Built the C++ V2 example: https://gitlab.kitware.com/paraview/paraview/-/tree/master/Examples/Catalyst2/CxxFullExample

Set the environment variables and debugging flags:

export CATALYST_IMPLEMENTATION_PATHS=/home/sam/.local/paraview-6.0.1/lib/catalyst

export CATALYST_IMPLEMENTATION_NAME=paraview

export LD_LIBRARY_PATH=/home/sam/.local/paraview-6.0.1/lib:$LD_LIBRARY_PATH

export CATALYST_DEBUG=1

export PARAVIEW_LOG_CATALYST_VERBOSITY=INFO

./CxxFullExample/build/bin/CxxFullExampleV2 ./CxxFullExample/catalyst_pipeline.py

The following output was produced:
“from paraview.simple import *”
catalyst debug: preferring environment variables? no
catalyst debug: implementation name from CATALYST_IMPLEMENTATION_NAME: paraview
catalyst debug: search paths from CATALYST_IMPLEMENTATION_PATHS
catalyst debug: trying to load /home/sam/.local/paraview-6.0.1_CUSTOM_BUILD/lib/catalyst/libcatalyst-paraview.so: valid
catalyst debug: loaded implementation: 0x79dda0ac3560
( 0.017s) [main thread ] ParaViewCatalyst.cxx:241 INFO| { catalyst_initialize_paraview
( 0.017s) [main thread ] ParaViewCatalyst.cxx:247 INFO| . ‘catalyst’ node node present. using default initialization params.
( 0.017s) [main thread ]vtkInSituInitialization:146 INFO| . { Initializing MPI communicator using ‘comm’ (1140850688)
( 0.017s) [main thread ]vtkInSituInitialization:146 INFO| . } 0.000 s: Initializing MPI communicator using ‘comm’ (1140850688)
( 0.017s) [main thread ]vtkInSituInitialization:174 INFO| . Initializing Catalyst
( 0.193s) [pvbatch ] ParaViewCatalyst.cxx:351 INFO| . No Catalyst Python scripts or pre-compiled pipelines specified. No analysis pipelines will be executed.
( 0.193s) [pvbatch ] ParaViewCatalyst.cxx:241 INFO| } 0.176 s: catalyst_initialize_paraview
( 0.201s) [pvbatch ] ParaViewCatalyst.cxx:362 INFO| { catalyst_execute_paraview
( 0.201s) [pvbatch ]vtkCatalystBlueprint.cx:499 INFO| . { catalyst: verify

The program continues, conducting 10 timesteps of the synthetic simulation, without catalyst output, before terminating normally.

It looks like there are a few strange things happening in the log above. For one, “node.print()” at https://gitlab.kitware.com/paraview/paraview/-/blob/master/Examples/Catalyst2/CxxFullExample/CatalystAdaptor.h#L58 prints the first line of the python script, which doesn’t feel like the expected behavior for this function? I could be wrong: “from paraview.simple import *”.

Secondly, and more worrisome, the check cpp_params.has_path("catalyst/scripts") at https://gitlab.kitware.com/paraview/paraview/-/blob/master/Clients/InSitu/catalyst/ParaViewCatalyst.cxx?ref_type=heads#L282 returns false, triggering the message:No Catalyst Python scripts or pre-compiled pipelines specified. No analysis pipelines will be executed.I’m not sure why this would be, as the python script is clearly getting read into the buffer on line 52 of CatalystAdaptor.h. The same behavior is observed if I hardcode the file path instead of using the input argument on line 44. Also, the library is successfully loaded (libcatalyst-paraview.so), so the handshake between catalyst and paraview is definitely occurring.

Does anybody have ideas what might be going on here?

Sam

I think the issue comes from the line just above thr print : https://gitlab.kitware.com/paraview/paraview/-/blob/v6.0.1/Examples/Catalyst2/CxxFullExample/CatalystAdaptor.h?ref_type=tags#L57 It says that it expects some yaml file and not Python.
Such kind of file is provided in the same directory. Looks like a “meta-file”:
https://gitlab.kitware.com/paraview/paraview/-/blob/v6.0.1/Examples/Catalyst2/CxxFullExample/catalyst_pipeline.yaml.in?ref_type=tags

That worked, thanks! I figured that yaml was just a default, but after reading the documentation for the parse function (Reading YAML and JSON Strings — Conduit 0.9.5 documentation), I realize that it only accepts yaml and json files.