Skip to content

Exodus: I/O of time series data, field data, cell data#1550

Open
Intergalactyc wants to merge 10 commits intonschloe:mainfrom
Intergalactyc:exodus-extension
Open

Exodus: I/O of time series data, field data, cell data#1550
Intergalactyc wants to merge 10 commits intonschloe:mainfrom
Intergalactyc:exodus-extension

Conversation

@Intergalactyc
Copy link

Overview

Fairly significant overhaul to _exodus.py to provide the following features:

  • Reading of time series data: optional timestep kwarg can either be an integer (default 0) to select a given timestep by index, or "all" to instead obtain a list with a Mesh for each timestep. Improved read performance by pre-fetching variable handles and disabling NetCDF auto-masking where not yet done.
  • Writing of time series data: new optional kwargs for the write function to manually specify point_data and cell_data (list of dicts ordered by time) with multiple timesteps, as well as time array parameters (and time inference when these are not completely specified)
  • Reading and writing of field data (global variables)
  • Splitting of multidimensional arrays (vectors) into scalar components with uppercase suffixes (X, Y, Z) during write, and symmetric re-categorization via the (fixed to better accomodate 2d) categorize helper during read to reconstruct original meshio vector shapes; update of existing vector handling during read to work on cell data just as will point data
  • Writing of cell data (reading was already supported, but writing was not) with multi-block consistency.
  • Fix to element block indexing, as SEACAS based tools often require 1-indexed element blocks
  • Writing of side sets (for now only when manually specified)
    Minor changes were also made to _helpers.py to allow the additional timestep kwarg for read to be passed through (non-breaking).

Backwards compatibility

Fully backwards compatible. All changes made are nonbreaking: call signature changes are only the addition of optional kwargs, and return values should be the same unless these kwargs are used.

Tests

Added four new tests to test_exodus.py to comprehensively test new features. These and all existing exodus tests pass.

Relevant issues

Anyways, thanks @nschloe and everyone for this great tool; hopefully these changes can help someone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant