SENSEI-insitu / SENSEI

SENSEI ∙ Scalable in situ analysis and visualization
https://sensei-insitu.org
Other
21 stars 22 forks source link

Catalyst Bidirectional hardcoded to receive array "coords" #104

Open srizzi88 opened 1 year ago

srizzi88 commented 1 year ago

This may be a topic for discussion more than an issue. Please let me know if I should move this somewhere else.

Our student has been struggling to figure out bidirectional with catalyst for a couple weeks. It turns out that CatalystAnalysisAdaptor expects to receive data from ParaView in an array named "coords" https://github.com/SENSEI-insitu/SENSEI/blob/e0ae9a972708f83718741c1d31e574592e885f88/sensei/CatalystAnalysisAdaptor.cxx#L154

If the array is not named "coords" and is not a vtkPointSet, it will be ignored.

I wanted to ask if this is a design decision, or a serious limitation in the data types that we can send back from the Paraview GUI in a bidirectional communication scenario.

burlen commented 1 year ago

Hi Silvio, I think this reflects the current state of the bi-di catalyst prototype. We need to continue development of the capability to handle the data that you need access to and runtime configurability. Note, for reference Utkarsh's demo is in the oscillator testing dir, and uses the name coords. I think it's not too surprising that the name is hard coded here, but clearly that needs to change.

You've pin pointed the exact line of code that needs to be modified to accept different types of data. Go for it! But let's also set up a zoom meeting with @c-wetterer-nelson, @ghweber, @patrickoleary to discuss the next steps. The expansion of the data types that are passed, and the ability to set the names of the arrays on the fly via sensei xml are things we should be able to accomplish.

burlen commented 1 year ago

see this for conetxt https://github.com/SENSEI-insitu/SENSEI/pull/19

danlipsa commented 1 year ago

@srizzi88 This is a design decision, even if a bit confusing. Catalyst Bidirectional is currently designed to allow editing of point or cell arrays, specified by providing the array names (and the rest of the glue XML code) in the proxies plugin. This design was extended, for point sets, to allow editing of point coordinates. A simple way of doing that is to use this special array name "coords" to refer to point coordinates. See https://gitlab.kitware.com/paraview/paraview/-/blob/master/Remoting/Live/vtkSteeringDataGenerator.h

danlipsa commented 1 year ago

The only drawback of this design is a possible conflict with an actual point array in a point set called "coords". In that case, instead of being able to edit the array called "coords" you would edit the point coordinates. Note that there is no conflict for a cell array called "coords" or a dataset that is not a point set.

danlipsa commented 1 year ago

I added additional documentation to the oscilator catalyst steering example https://github.com/SENSEI-insitu/SENSEI/pull/125