New reader for Exodus files (IOSS)

Since ParaView 5.9, a new implementation of a reader for reader Exodus files that uses the IOSS library was available. Soon, with 5.10 on wards, this will be the default reader that will be used by ParaView reading Exodus files.

One of the major changes with this new reader is that it uses vtkPartitionedDataSetCollection as the output data type instead of the traditional vtkMultiBlockDataSet. There may be linger issues due to the fact that vtkPartitionedDataSetCollection support is actively under development. The plan is have all the important shortcomings addressed by 5.10.

The old reader is still available, and users can continue to use by loading the LegacyExodusReader plugin. Once the IOSS-based reader is fully capable the we will deprecate the old reader and eventually purge it in 2-3 releases down the line.

1 Like

One step closer to removing the vtkSMSILDomain :slight_smile:

Most Excellent!

How do I load the LegacyExodusReader plugin?

I would encourage everyone to try to use the IOSS reader. If there are issues, please report them so we can get them fixed. There will come a time in the next few years when the Legacy Exodus Reader goes away.

In the meantime, Tools/ Manage Plugins/ Choose LegacyExodusReader/ Load Selected. Be sure to load both local and remote if you are using a remote cluster connection.

Thanks, I just tried with the IOSS reader, and seems to be working so far

I tried to open an Exodus file with extension .e, this file can be read into Cubit but failed in Paraview with the error:
ERROR: In vtkIOSSReader.cxx, line 946
vtkIOSSReader (00000255BEA14940): Error in UpdateTimeInformation:
ERROR: Duplicate incompatible fields named ‘ids’ on ElementBlock block_10:
Existing field: 17625 integer of size 70500 bytes with role ‘Mesh’ and storage ‘scalar’,
Duplicate field: 17625 real of size 141000 bytes with role ‘Transient’ and storage ‘scalar’.

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (0000025580B62440): Algorithm vtkIOSSReader (00000255BEA14940) returned failure for request: vtkInformation (00000255FDC7CD40)
Debug: Off
Modified Time: 31618099
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (0000025580B62440): Algorithm vtkIOSSReader (00000255BEA14940) returned failure for request: vtkInformation (00000255E7839D80)
Debug: Off
Modified Time: 31621609
Reference Count: 1
Registered Events: (none)
Request: REQUEST_DATA
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
FROM_OUTPUT_PORT: 0

ERROR: In vtkIOSSReader.cxx, line 946
vtkIOSSReader (00000255FD8E6160): Error in UpdateTimeInformation:
ERROR: Duplicate incompatible fields named ‘ids’ on ElementBlock block_10:
Existing field: 12702 integer of size 50808 bytes with role ‘Mesh’ and storage ‘scalar’,
Duplicate field: 12702 real of size 101616 bytes with role ‘Transient’ and storage ‘scalar’.

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (00000256038FC3A0): Algorithm vtkIOSSReader (00000255FD8E6160) returned failure for request: vtkInformation (00000255FE4490E0)
Debug: Off
Modified Time: 40469606
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1

ERROR: In vtkIOSSReader.cxx, line 946
vtkIOSSReader (00000255E8D97BF0): Error in UpdateTimeInformation:
ERROR: Duplicate incompatible fields named ‘ids’ on ElementBlock block_10:
Existing field: 12702 integer of size 50808 bytes with role ‘Mesh’ and storage ‘scalar’,
Duplicate field: 12702 real of size 101616 bytes with role ‘Transient’ and storage ‘scalar’.

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (00000256038F7DE0): Algorithm vtkIOSSReader (00000255E8D97BF0) returned failure for request: vtkInformation (00000255FBC93270)
Debug: Off
Modified Time: 40478852
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1

ERROR: In vtkIOSSReader.cxx, line 946
vtkIOSSReader (00000255FD8E6F20): Error in UpdateTimeInformation:
ERROR: Duplicate incompatible fields named ‘ids’ on ElementBlock block_10:
Existing field: 12702 integer of size 50808 bytes with role ‘Mesh’ and storage ‘scalar’,
Duplicate field: 12702 real of size 101616 bytes with role ‘Transient’ and storage ‘scalar’.

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (00000256038F6F40): Algorithm vtkIOSSReader (00000255FD8E6F20) returned failure for request: vtkInformation (00000255FE74F3F0)
Debug: Off
Modified Time: 40488360
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (00000256038F6F40): Algorithm vtkIOSSReader (00000255FD8E6F20) returned failure for request: vtkInformation (00000255FE463F60)
Debug: Off
Modified Time: 40492315
Reference Count: 1
Registered Events: (none)
Request: REQUEST_DATA
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1
FROM_OUTPUT_PORT: 0

ERROR: In vtkIOSSReader.cxx, line 946
vtkIOSSReader (00000255B329C350): Error in UpdateTimeInformation:
ERROR: Duplicate incompatible fields named ‘ids’ on ElementBlock block_10:
Existing field: 12702 integer of size 50808 bytes with role ‘Mesh’ and storage ‘scalar’,
Duplicate field: 12702 real of size 101616 bytes with role ‘Transient’ and storage ‘scalar’.

ERROR: In vtkExecutive.cxx, line 730
vtkPVCompositeDataPipeline (00000256038F4000): Algorithm vtkIOSSReader (00000255B329C350) returned failure for request: vtkInformation (00000255E3E8B550)
Debug: Off
Modified Time: 40665373
Reference Count: 1
Registered Events: (none)
Request: REQUEST_INFORMATION
FORWARD_DIRECTION: 0
ALGORITHM_AFTER_FORWARD: 1

Sander_Land_lv.e (480.4 KB)
Here is the file. Can you take a look at the file to see if you can open it in Paraview? I’m using 5.12.0

The file was converted from gmsh using meshio. That could cause the problem, but Coreform Cubit can open it without problem.

The file has two “transient” or time-dependent element variables name “ids” and “object_id”. The “ids” variable seems to replicate the information that is normally stored in the elem_num_map or element number map and the “object_id” seems to store the element block id for each and every element in the model.

This is allowable I would guess, but usually isn’t very useful as this information does not change from timestep to timestep and would have to be replicated on every timestep. I’m not sure what application is writing this information, but although technically valid, it isn’t the “normal way”. Also, all element variables are floating point (single or double precision) values and the “ids” and “object_id” variables are storing integers in those locations which can limit the range of representable integers (albeit a large range).

The IOSS reader uses the field name “ids” for the information read from the integer element number map and therefore it finds a conflict when trying to also add the floating point “ids” field from the elment variables since it has two fields with different storage types (integer vs double precision) and different “roles” (mesh description vs transient data).

Cubit can read this data, but it is not using it in the manner that whatever code wrote the data is intending it to be used. I think the same can be said for the older exodus Paraview reader.

In short, I don’t think that the information being stored to the “ids” and “object_id” transient data in the file is the correct way to represent that data. There currently isn’t a way to tell the IOSS reader to ignore the duplicate fields (“ids”). One kluge is to rename the field or to strip out the transient data.

I’m not sure of how best to handle this in the long term, but this should explain the issue and give a workaround for the short term.

There is a property on the IOSS library that will specify how a duplicate incompatible field(s) should be handled – DUPLICATE_FIELD_NAME_BEHAVIOR with values IGNORE, WARNING, ERROR, but I’m not sure how to get that property set when IOSS is used inside ParaView.

Thank you for the explanation.

I got the mesh file from someone, and it was created by a third person with whom we have lost contact. So, I have no idea why the IDs are present there as transient data. I expected the file to be just a mesh file.

Ah, a tale as old as time! Well, at least as old as meshing…

Interestingly, the file does open in F3D (v2.3.0)

F3D uses the vtkExodusIIReader, not the IOSS one, which you can also access in ParaView using the “LegacyExodusReader” plugin if needed.

1 Like