Skip to content
Greg Sjaardema edited this page Nov 18, 2024 · 79 revisions

Welcome to the seacas wiki!

Recent extensions to Exodus format

Potential extensions to Exodus format

  • Dynamic Topology
  • Units / Dimensions
  • 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]
  • Geometry Association
  • Block-Dominant Models
    • (node block per element block with explicit contiguous node lists between blocks)
  • 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
  • Changing build of aprepro_lib to use reflex instead of flex: Use reflex instead of flex in aprepro_lib

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}/seacas/
  • cd to {full_path_to_sierra}
  • Sierra also has some other restores needed...
    • git restore seacas/libraries/svdi/vdi_drivers
    • git restore seacas/scripts/grope
    • Some unit testing has switched from doctest.h to Catch2, but Catch2 is not a Sierra TPL, so need to revert those changes:
      • git restore seacas/libraries/ioss/src/doctest.h
      • git restore seacas/libraries/ioss/src/utest
  • The SEACAS build generates the export files needed for windows. This does not happen in sierra
    • Do a git status -uno 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.
      • can also use wildcards: git restore seacas/libraries/ioss/src/*_export.h seacas/libraries/ioss/src/*/*_export.h
  • You can now start adding changed files that will be committed in the merge request.

Tagging a release or intermediate state

  • Just need a tag so a specific change can be pulled into Sierra -- begin tag with i:
    • git tag -a -m 'Intermediate tag so Sierra can use Special PR merge' i2024-11-04
  • Tagging the current state for use as a release -- begin tag with v:
    • git tag -a -m 'Release the current set of new features' v2024-11-04
  • Push the tag so available in the github repository:
    • git push origin --tags or if you are working with a fork of the repository git push upstream --tags
  • Make the tag available as a release through github:
    • click on Tags near top of source listing on github
    • click on the tag you want to make a release from
    • click on Create release from tag
    • Fill in the information requested and click Publish release
  • See https://git-scm.com/book/en/v2/Git-Basics-Tagging for more details.