yt-project / libyt

In-situ analysis with yt
https://libyt.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
9 stars 3 forks source link

Extend to ParaView #47

Open cindytsai opened 2 years ago

cindytsai commented 2 years ago

Extend libyt to ParaView

If yt can connect to ParaView (link), then maybe libyt can bypass Catalyst which is a tool for simulation codes to do inline-analysis (in situ) in ParaView.

Although there are things worth notice in real-time volume rendering:

matthewturk commented 2 years ago

This is an interesting idea and definitely one worth considering!

On Fri, Feb 4, 2022 at 4:38 AM cindytsai @.***> wrote:

Extend libyt to ParaView

If yt can connect to ParaView (link https://www.kitware.com/a-yt-plugin-for-paraview/), then maybe libyt can bypass Catalyst https://www.paraview.org/in-situ/ which is a tool for simulation codes to do inline-analysis (in situ) in ParaView.

Although there are things worth notice in real-time volume rendering:

  • If we wish to do volume rendering in ParaView, we need Nvidia IndeX. But it only supports serial process. It has additional fees if run on multi-node system. (link https://www.nvidia.com/en-us/data-center/index-paraview-plugin/)
  • Which means if libyt really wants to support ParaView real-time volume rendering, only one node can be in charge of this inline-analysis. And libyt is not designed for this kind of workflow yet.

— Reply to this email directly, view it on GitHub https://github.com/calab-ntu/libyt/issues/47, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAVXOY2VZUZSD4ADW53R53UZOUA7ANCNFSM5NRNDOXA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

hyschive commented 2 years ago

@matthewturk We notice this yt plugin for ParaView but it was more than ten years ago. Is it still a thing?

matthewturk commented 2 years ago

It's sort of still a thing, in that the things we implemented to support it are all still there. I believe the VTK API has somewhat changed, but may still retain some of the old functions; regardless, updating it would likely be very straightforward.

On Tue, Feb 8, 2022 at 8:38 PM Hsi-Yu Schive @.***> wrote:

@matthewturk https://github.com/matthewturk We notice this yt plugin for ParaView https://www.kitware.com/a-yt-plugin-for-paraview/ but it was more than ten years ago. Is it still a thing?

— Reply to this email directly, view it on GitHub https://github.com/calab-ntu/libyt/issues/47#issuecomment-1033284151, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAVXO6DMUMTDAD3SQY2ZPDU2HHRBANCNFSM5NRNDOXA . You are receiving this because you were mentioned.Message ID: @.***>

hyschive commented 2 years ago

@matthewturk Thanks for the comment!

cindytsai commented 2 years ago

After reading Catalyst's user guide, I think libyt has potential to serve as an interface between AMR grids simulation code and ParaView.

To support in-situ analysis in ParaView, developer needs to create an adapter that transforms simulation info into forms that Catalyst can process. It has the similar procedure like libyt, initialization, prepare data, do in-situ analysis, and finalization. And it supports MPI as well.

libyt Catalyst
Initialize yt_init CatalystInit
Prepare Data other APIs CatalystCoProcess
Finalize yt_finalize CatalystFinalize

The most important part is CatalystCoProcess. It needs to provide the grid and field data structures and other simulation information. This is already passed in to libyt! If we can properly wrap these data to VTK data objects, then libyt can support inline-rendering and other functionalities in ParaView with or without UI. (This is just a big picture. It still needs to be carefully checked.)