visit-dav / visit

VisIt - Visualization and Data Analysis for Mesh-based Scientific Data
https://visit.llnl.gov
BSD 3-Clause "New" or "Revised" License
420 stars 109 forks source link

error when reading ADIOS2 database with time-varying metadata #19573

Open BenWibking opened 2 months ago

BenWibking commented 2 months ago

Discussed in https://github.com/visit-dav/visit/discussions/19509

Originally posted by **BenWibking** May 13, 2024 I have an ADIOS2 dataset where the variables change between outputs. This is due to the application following the convention (from openPMD) that the dataset variable names include the cycle number, like this: ![Screenshot 2024-05-13 at 4 39 26 PM](https://github.com/visit-dav/visit/assets/1781919/220fb4ac-168c-49d7-8554-50824f8046f7) In the screenshot above, `758` is the cycle for this snapshot. This works fine when opening an ADIOS2 dataset that consists of a single snapshot, but it doesn't work when opening more than one snapshot in a timeseries (create with a *.visit file), since VisIt only reads the variable names from the first snapshot, and then doesn't update the variable names when advancing to the next files in the series. Is there a way to force VisIt to re-read the variable names when loading a new file in a timeseries?

Turning on the "Treat all databases as time-varying" option (e.g., https://visit-sphinx-github-user-manual.readthedocs.io/en/v3.1.1/cli_manual/functions.html#settreatalldbsastimevarying) does not work in this case:

VisIt cannot read the SIL for the file "/Users/benwibking/Downloads/new_bp5/adios.visit" on host localhost.

The metadata server returned the following message:

There was an error opening /Users/benwibking/Downloads/new_bp5/adios.visit. It may be an invalid file.
VisIt tried using the following file format readers to open the file: ADIOS2, ADIOS

If you know the specific format reader VisIt should use to
read this data, you can use Open As... (GUI) or
'-o <file>,<plugin> (CL arg.) and identify that specific reader
for VisIt to try. This will possibly give more information on
the exact error.

Reproducer dataset: https://github.com/visit-dav/visit/files/15340237/visit_adios2_timeseries.tar.gz

cyrush commented 1 month ago

@BenWibking directly using the OpenPMD API should resolve this correct? We will explore direct OpenPMD support.

BenWibking commented 1 month ago

@BenWibking directly using the OpenPMD API should resolve this correct? We will explore direct OpenPMD support.

Yes, it should. That would be ideal for my use case for other reasons as well.