I don’t have a specific question for the forum here, but more of a description of my current approach for implementing a new Catalyst adaptor. Figured I’ll share it with the broader community and see if people have any specific thoughts / opinions about my approach.
I am currently adding support for the IOSS library to interface with Catalyst 2.0 so that all codes using IOSS can directly use Catalyst with ease. IOSS has a very well-defined data model. The underlying Database API – which is what I am looking into implementing to interface with Catalyst – is based on that data model. There are two ways going about implementing this database for Catalyst:
- We map the datastructures such that they can conform to the Conduit Mesh Blueprint and then pass that over to Calalyst.
- We create a new mesh blueprint, say IOSS Mesh Blueprint, that is more closely aligned with the Ioss data model.
I am leaning towards option 2 for following reasons:
- avoids any data transformation to pass data to Catalyst – should give some performance benetit
- since ParaView/VTK already has an Ioss reader, the reader can be easily taught to support this new database type that reads the Ioss datastructures serialized to Conduit node instead of a file on disk.
The ParaView Catalyst Blueprint already supports channel/type property which currently only suppose mesh
. This will require adding support for another type, ioss
.