Skip to content
Greg Sjaardema edited this page Oct 18, 2023 · 79 revisions

Welcome to the seacas wiki!

Recent extensions to Exodus format

Potential extensions to Exodus format

  • Separate Transient Separation of transient data from the mesh data—useful for Burst Buffer or other output methods; possibly for topology changes. [Experimental implementation currently in IOSS]

  • Discontinuous Galerkin

  • Units / Dimensions

  • Block-Dominant Models

    • (node block per element block with explicit contiguous node lists between blocks)
  • Geometry Association

  • Dynamic Topology

  • Non-scalar fields – Displacement is a vector; Stress is a symmetric tensor. Currently done via naming conventions.

  • Integer field data – Currently handled by conversion to/from double floating point data. OK up to about 53-bits, but won’t work for larger integers

  • Structured Mesh storage; Hybrid (structured / unstructured) mesh.

Evolutionary instead of Revolutionary – Better to evolve current format in a hopefully backward-compatible manner instead of coming up with a new format which is “Exodus III” and would require translators back and forth and creation of completely new toolset…

Perhaps native mapping down to HDF5 instead of to NetCDF (Not sure of this since there are benefits having NetCDF layer).

IOSS Enhancements

  • Read M files on N mpi ranks.
    • Useful for postprocessors with M >> N typically.
    • Also useful for restarting a run that used FPP on a different number of ranks M != N

Developer-Oriented Things

  • Codespell: codespell -I codespell-ignore.txt --skip="*.eps,*.pdf,*.png,*.cgns,*.g"
  • Coverity: git checkout coverity; git merge master; git push; git checkout master
  • Snapshot into Sierra:
    • Make sure Sierra repository is clean and up-to-date with remote repository.
    • Create a Merge Request branch in the Sierra repository. Something like:
      • git checkout -b SEACAS-snapshot-2023-11-11
    • cd to root of Seacas repository. Make sure repository is clean and up-to-date with github.
    • Do the snapshot.
      • cmake/tribits/snapshot.py --skip-commit --orig-dir={full_path_to_seacas}/packages/seacas/ --dest-dir={full_path_to_sierra}/sierra_seacas/
    • cd to {full_path_to_sierra}
    • The sierra seacas version uses an embedded fmt library. This gets deleted during the snapshot and needs to be restored:
      • git restore sierra_seacas/libraries/suplib_cpp/fmt
      • git restore sierra_seacas/libraries/ioss/src/private_copy_fmt
      • git restore sierra_seacas/libraries/ioss/src/fmt
    • Sierra also has some other restores needed...
      • git restore sierra_seacas/libraries/svdi/vdi_drivers
      • git restore sierra_seacas/scripts/grope
    • The SEACAS build generates the export files needed for windows. This does not happen in sierra
      • Do a git status -uno sierra_seacas/libraries/ioss/src and look for any deleted files that end in _export.h
        • If you see any, do a git restore on those.
    • You can now start adding changed files that will be committed in the merge request.
  • Changing build of aprepro_lib to use reflex instead of flex: (https://github.com/SandiaLabs/seacas/wiki/Using-reflex-instead-of-flex-in-aprepro_lib)