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/SeacasREADME
SEACAS [Documentation] [Wiki]
- Get the sources
- Build instructions
- Configure, Build, and Install SEACAS
- Parallel Build
- Testing
- Exodus
- Trilinos
- SPACK
- Docker
- CMake Example Usage
- Required Software: Mac
- License
- Contact information
- NOTE: The old imake-based build has been removed.
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
DOWNLOADandBUILDoptions 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 $ACCESSmkdir buildcd build- edit the
${ACCESS}/cmake-configfile and adjust compilers and other settings as needed. - enter the command
../cmake-configand 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
