There are a few externally developed third-party libraries (TPL) that
are required to build SEACAS. You can build the libraries manually as
detailed below, or you can use the install-tpl.sh
script as
described in the previous section.
- Zoltan -- required, supplied
- HDF5 -- optional
- NetCDF -- required with possible modifications
- Kokkos -- optional
- MatIO -- optional, required for exo2mat and mat2exo
- GNU Parallel -- optional
- CGNS -- experimental optional
- Faodel -- optional
A snapshot of zoltan_distrib_v3.83.tar.gz is provided in seacas/packages/zoltan. This will be built automatically as part of the SEACAS build process.
If you are using the netcdf-4 capability in the netcdf library or are using the MatIO library for conversion of exodus to/from matlab format, or using CGNS, then you will need the hdf5 library.
There are some issues with using HDF5-1.10.0 through HDF5-1.10.2 since it will possibly create files which are unreadable by applications using an earlier version of the library. As of HDF5-1.10.3 and later, the HDF5 team added an option that makes it possible for the library to create files readable by those applications. This flag is currently being used by NetCDF and CGNS.
The hdf5 library is used for the netcdf4 capability in netcdf which in turn is used by exodus. The netcdf4 capability is typically used for large models (>150 million elements); if you are not planning to create or read models of this size, you do not have to build hdf5.
-
Download HDF5 from either:
-
https://www.hdfgroup.org/HDF5/release/obtain5.html for HDF5-1.10.X or
-
https://support.hdfgroup.org/HDF5/release/obtain518.html for HDF5-1.8.X
-
Download to
seacas/TPL/hdf5
and untar it -
cd
to that directory and enter the command:sh ../runconfigure.sh
-
make && make install
The most recent released version is recommended. For use with Exodus, some local modifications to the netcdf.h include file are required if using versions prior to 4.5.1. See NetCDF-Mapping.md for an explanation of why these modifications are required (or highly recommended)
-
Download the latest netcdf-c release from https://www.unidata.ucar.edu/downloads/netcdf/index.jsp and put it inside
seacas/TPL/netcdf
-
cd TPL/netcdf
-
tar zxvf netcdf-4.6.1.tar.gz
-
If the version is prior to 4.5.1, then you need to modify the following defines in seacas/TPL/netcdf/netcdf-4.6.1/include/netcdf.h. Versions 4.5.1 or later do not check these limits and can be run unmodified.
#define NC_MAX_DIMS 65536 /* max dimensions per file */ #define NC_MAX_VARS 524288 /* max variables per file */
-
If you did not build HDF5, then you will need to edit the runcmake.sh script and remove all lines mentioning HDF5 and also set
ENABLE_NETCDF _4
toOFF
-
cd netcdf-4.6.1
and enter the command:mkdir build cd build sh ../../runcmake.sh
-
make && make install
The most recent released version is recommended.
-
Download the latest Kokkos release from https://github.com/kokkos/kokkos/releases and put it inside
seacas/TPL/kokkos
-
cd TPL/kokkos
-
tar zxvf 2.8.0.tar.gz
-
cd kokkos-2.8.0
and enter the command:mkdir build cd build sh ../../runcmake.sh
-
The default
runcmake.sh
will only build theserial
device. Modify build options to tailor for your system as documented in the Kokkos documentation. -
make && make install
The MatIO library is used in the exo2mat and mat2exo programs which convert an exodus file to and from a MATLAB binary file. To use this do:
-
Download matio via git:
-
cd TPL/matio
-
git clone https://github.com/tbeu/matio.git
-
cd matio
and enter the command:./autogen.sh sh ../runconfigure.sh
-
make && make install
GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job is typically a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, or a list of tables. In SEACAS, this is only used by epup which runs multiple epu jobs concurrently. To build:
-
Download the most recent version of the library from ftp://ftp.gnu.org/gnu/parallel/parallel-latest.tar.bz2.
cd TPL/parallel tar jxvf /path/to/parallel-latest.tar.bz2 cd parallel-20150522 sh ../runconfigure.sh
-
make && make install
The IOSS library supports using CGNS for structured and unstructred meshes. To use this capability, you will need to download and install the CGNS library:
-
Download CGNS via git:
cd TPL/cgns git clone https://github.com/CGNS/CGNS.git
-
Build using CMake.
-
Modify
TPL/cgns/runcmake.sh
to meet your environment -
cd CGNS
-
mkdir build
-
cd build
-
../../runcmake.sh
-
make && make install
Faodel is a collection of data management tools that Sandia is developing to improve how datasets migrate between memory and storage resources in a distributed system. For SEACAS Faodel support means adding a new backend to IOSS. This enables additional data storage capabilities and the chance to communicate data between execution spaces.
Faodel is available at Faodel. And is built here as a SEACAS TPL.