SkillAgentSearch skills...

Seacas

The Sandia Engineering Analysis Code Access System (SEACAS) is a suite of preprocessing, postprocessing, translation, and utility applications supporting finite element analysis software using the Exodus database file format.

Install / Use

/learn @sandialabs/Seacas

README

SEACAS [Documentation] [Wiki]

Codacy Badge Analysis Status Appveyor Build SEACAS Docker Exodus Docker Github Actions -- CI Serial Github Actions -- CI Variants Github Actions -- CI Intel Github Actions -- CI MSYS2 Github Actions -- CI Static Github Actions -- CI External Lib Github Actions -- CI Spack Github Actions -- CI AWSSDK

Get the sources

git clone https://github.com/sandialabs/seacas.git

This will create a directory that will be referred to as seacas in the instructions that follow. You can rename this directory to any other name you desire. Set an environment variable pointing to this location by doing:

cd seacas && export ACCESS=`pwd`

Build instructions

Automatically download and build dependencies (Third-Party Libraries)

There are a few externally developed third-party libraries (TPL) that are required (or optional) to build SEACAS: HDF5, NetCDF, CGNS, MatIO, Kokkos, (if MPI set) PnetCDF, AWS SDK for C++ and Cereal libraries. You can build the libraries using the install-tpl.sh script, or you can install them manually as detailed in TPL-Manual-Install.md.

  • The script requires bash and curl, which you may need to install.
  • To use the script, simply type bash ./install-tpl.sh.
  • The default behavior can be modified via a few environment variables:

| Variable | Values | Default | Description | |-----------------|:---------------:|:-------:|-------------| | INSTALL_PATH | path to install | pwd | Root of install path; default is current location | | COMPILER | clang, gnu, intel, ibm nvidia | gnu | What compiler should be used for non-parallel build. Must have C++-17 capability. | | MPI | YES, NO | NO | If YES, then build parallel capability | | FORCE | YES, NO | NO | Force downloading and building even if lib is already installed. | | BUILD | YES, NO | YES | Should TPLs be built and installed. | | DOWNLOAD | YES, NO | YES | Should TPLs be downloaded. | | USE_PROXY | YES, NO | NO | Sandia specific -- use proxy when downloading tar files | | DEBUG | YES, NO | NO | Build debug executable; default is optimized | SHARED | YES, NO | YES | Build shared libraries if YES, archive (.a) if NO | | OSX_TARGET | version | default | If on MacOS, the minimum version the binaries are to be deployed on | | CRAY | YES, NO | YES | Is this a Cray system (special parallel options) | | NEEDS_ZLIB | YES, NO | NO | If system does not have zlib installed, download and install it (HDF5 compression). | | USE_ZLIB_NG | YES, NO | NO | Should the improved zlib-ng library be used to provide ZLIB capability | | NEEDS_SZIP | YES, NO | NO | If system does not have szip installed, download and install it (HDF5 compression). | | USE_64BIT_INT | YES, NO | NO | In CGNS, enable 64-bit integers | | CGNS | YES, NO | YES | Should CGNS TPL be built. | | MATIO | YES, NO | YES | Should matio TPL be built. | | METIS | YES, NO | NO | Should metis TPL be built (parallel decomposition). | | PARMETIS | YES, NO | NO | Should parmetis TPL be built (parallel decomposition). | | ADIOS2 | YES, NO | NO | Should adios2 TPL be built. | | CATALYST2 | YES, NO | NO | Should catalyst 2 TPL be built. | | AWSSDK | YES, NO | NO | Should AWS SDK for C++ TPL be built. See README-S3.md. | | CEREAL | YES, NO | NO | Should Cereal TPL be built. | | KOKKOS | YES, NO | NO | Should Kokkos TPL be built. | | GNU_PARALLEL | YES, NO | YES | Should GNU parallel script be built. | | FMT | YES, NO | YES | Should Lib::FMT TPL be built. | | CATCH2 | YES, NO | YES | Should Catch2 be built (used for testing). | | H5VERSION | V114, V110 | V114 | Use HDF5-1.14.X or HDF5-1.10.X | | H5CPP | YES, NO | NO | Should the HDF5 C++ library be built/installed | | BB | YES, NO | NO | Enable Burst Buffer support in PnetCDF | | JOBS | {count} | 2 | Number of "jobs" used for simultaneous compiles | | SUDO | "" or sudo | "" | If need to be superuser to install |

  • NOTE: The DOWNLOAD and BUILD options can be used to download all TPL source; move to a system with no outside internet access and then build/install the TPLs.
  • The arguments can either be set in the environment as: export COMPILER=gnu, or passed on the script invocation line: COMPILER=gnu ./install-tpl.sh

Configure, Build, and Install SEACAS

At this time, you should have all external TPL libraries built and installed into ${ACCESS}/lib and ${ACCESS}/include. You are now ready to configure the SEACAS CMake build.

  • cd $ACCESS
  • mkdir build
  • cd build
  • edit the ${ACCESS}/cmake-config file and adjust compilers and other settings as needed.
  • enter the command ../cmake-config and cmake should configure everything for the build.
  • make && make install
  • If everything works, your applications should be in ${ACCESS}/bin
  • To install in a different location, do INSTALL_PATH={path_to_install} ../cmake-config
  • The default behavior can be modified via a few environment variables:

| Variable | Values | Default | Description | |-----------------|:---------------:|:-------:|-------------| | INSTALL_PATH | path to install | pwd | Root of install path; default is current location | | BUILDDIR | {dir} | pwd/build | Directory to do config and build | | COMPILER | clang, gnu, intel, ibm | gnu | What compiler should be used for non-parallel build | | SHARED | YES, NO | YES | Build and use shared libraries is YES | | APPLICATIONS | YES, NO | YES | Should all SEACAS applications be built (see cmake-config) | | LEGACY | YES, NO | YES | Should the legacy SEACAS applications be built (see cmake-config) | | FORTRAN | YES, NO | YES | Should fortran libraries and applications be built (see cmake-config) | | ZOLTAN | YES, NO | YES | Should zoltan library and nem_slice be built | | BUILD_TYPE | debug, release | release | what type of build | | MODERN | YES, NO | NO | Use "modern" CMake configuration files for netCDF and HDF5 | | DEBUG | -none- | | If specified, then do a debug build. Can't be used with BUILD_TYPE | | HAVE_X11 | YES, NO | YES | Does the system have X11 libraries and include files; used for blot, fastq | | THREADSAFE | YES, NO | NO | Compile a thread-safe IOSS and Exodus library | | USE_SRUN | YES, NO | NO | If MPI enabled, then use srun instead of mpiexec to run parallel tests | | DOXYGEN | YES, NO | NO | Run doxygen on several packages during build to generate documentation | | OMIT_DEPRECATED | YES, NO | NO | Should the deprecated code be omitted; NO will enable deprecated code | | EXTRA_WARNINGS | YES, NO | NO | Build with extra warnings enabled; see list in cmake-config | | SANITIZER | many | NO | If not NO, build using specified sanitizer; see list in cmake-config | | GENERATOR | many | "Unix Makefiles" | what generator should CMake use; see cmake doc |

  • If the script enables a TPL that you do not want enabled, you can use a variable with the TPL name set to NO. For example, to explicitly disable MATIO, use MATIO=NO ../cmake-config. Th
View on GitHub
GitHub Stars180
CategoryData
Updated7h ago
Forks86

Languages

C

Security Score

85/100

Audited on Mar 26, 2026

No findings