Plot global data vs point data

From a user:

I was wondering if you could help me create a 2D plot in Paraview.
I want to plot the reaction force (which I have defined as a global output variable in my input deck) vs. displacement at a specific node/point. So on the x-axis I would have “point” data and on the y-axis I would have “field” data. If I understand correctly, “Plot Data” allows you to plot two variables of the same type, i.e. “point” or “cell” or etc, versus each other. But how would you plot two different types of variables?
(I know how to plot each vs. time using the “Plot Global Variables Over Time” for the reaction force and “Plot Over Time” for the displacement.)

So, I believe we could do this with a Programmable Filter (moving the data from being a global variable to a point variable), but how would you do this?

Additionally, isn’t this a hole in our plot filters?

Thanks, Alan

@cory.quammen @mwestphal

Could you share the data ?

There is no direct way to do this AFAIK.

I’m sure we are missing all kinds of ways to mix and match arrays from different field associations/no field association in ParaView’s plotting tools. It would be good to enumerate what we need to support that is currently missing.

We have needed this functionality for years. Lets implement it. I can think of three ways to do so.

  • Add a “global data to point/cell data” filter.
  • Allow the calculator to be able to read global data, and use it in formulas with point/cell data.
  • Add the ability for the Programmable Filter to get at global data (if it doesn’t exist), and add usage information and an example in the users guide.

Any preference for which would be best? I’m tempted to say all three?

What do you mean by “global data” ?

Mathieu, I may be sloppy with my terminology. I mean global or field data, i.e., in Exodus, you can have a single piece of data per timestep. An example is can.exo. Look in the information tab. You will see variables such as ke, nsteps, and tmstep. A use case would be atmospheric (barometric) pressure per timestep, or ambient temperature, or simulation time. You only have one per timestep (i.e., not on each cell or point). I may want to use barometric pressure in a formula.

This is already possible, as for documentation, this is documented in two locations:

https://docs.paraview.org/en/latest/ReferenceManual/vtkNumPyIntegration.html?highlight=FieldData#dataset-attributes

https://docs.paraview.org/en/latest/ReferenceManual/annotations.html?highlight=FieldData#python-annotation-filter

But is not very explicit so it can be unclear.

Your two other points are perfectly valid, the Calculator one may be limited to FieldData arrays containing a single tuple by block though.