Indeed, this feature is not available in Catalyst 2, you must always call the C method catalyst_execute and the control is delegated to the python script:
the trigger parameters of the extractors and the catalyst option object change the frequency of the write to the disk.
In addition, using conduit node set_external method for zero copy makes the data wrapping process quite small, so the previous overhead of creating VTK structures should be removed.
I agree, that it would be very desirable to pass everything with zero copy. However, for us this would require a complete support of VtkLagrangeHexahedron elements. I couldn’t find those in Mesh Blueprint — Conduit 0.8.4 documentation.
So, for now, we have to rely on rather expensive interpolation operations from our high order hexahedral grid onto a finer standard hexahedral grid. And this we can’t afford to do every time step.
Are there plans to extend the API in this direction or would this be a feature against the philosophy behind it?
P.S. Thanks for all the great work on Paraview and Catalyst in the recent years! We’ve been using it quite intensively.
Indeed, Catalyst 2 dataset features are limited by conduit capabilities and advanced cell types are not yet supported. Conduit project is very active and open to contribution, so you may request such addition at their github repo, or push it yourself if you have developer skills and time.
Please note also that catalyst scripts handled a GlobalTrigger in the Options object, that behave like the Trigger from the extractors.
The method “catalyst_execute” is not called if the trigger is not respected.