visit-dav / visit

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

CGNS v4 fails #4560

Closed s-amouyal12 closed 4 years ago

s-amouyal12 commented 4 years ago

Describe the bug

Latest CGNS files fail to be read by VisIt

Helpful additional information

Upon opening a CGNS file, the following error is printed:

`VisIt closed "localhost:C:...\VisIt\cgns\new_unstructured.cgns".

Shortly thereafter, the following occurs...

VisIt could not read from the file "C:...\VisIt\cgns\grid_structured_2zn.cgns".

The generated error message was:

There was an error opening C:...\VisIt\cgns\grid_structured_2zn.cgns. It may be an invalid file. VisIt tried using the following file format readers to open the file: CGNS, Silo`

To Reproduce

Steps to reproduce the behavior:

Note that using CGNS v3 format files works with no errors

markcmiller86 commented 4 years ago

So, VisIt is using CGNS version 3.2.1. It sounds like CGNS v4 is producing files that CGNS v3 cannot read. Is that correct? Is this intentional? I can understand if somehow a data producer was using advanced functionality not available in versions of CGNS prior to v4 that the resulting files would not be (fully) readable in earlier versions. But, your note here (e.g. run any example code) suggests that v4 CGNS is simply not backward read-compatible with any earlier version of CGNS and if so, that is really unfortunate. Again, I can understand there can be circumstances where a data producer using v4 could produce someting a v3 consumer can't read but if that is a shame if that is just the case by fiat.

Hopefully, v4 can read any prior version at least?

MicK7 commented 4 years ago

Quick comment to answer the question, CGNS v4 is backward compatible. It was made intentionally not forward compatible because in some corner cases it would lead to users issue. From what I have seen of VisIt CGNS database code, upgrading to v4.1 should not raise much problem as CGNS/MLL functions are still the same and the code do not handle polyhedral meshes. The only issue will be with MIXED elements of unstructured grid where the function call has changed (cg_element_read --> cg_poly_element_read).

Best Regards

Mick