Installation

ForTrilinos is built as an independent software library with the Trilinos software library as its only dependency. ForTrilinos can be installed through the Spack HPC package manager or independently from your local installation of Trilinos.

Version compatibility

ForTrilinos wrappers are tightly coupled to the Trilinos API, so upstream changes require new releases of ForTrilinos. Since the wrapper generation is dependent on SWIG-Fortran capabilities, changes there will also affect the ability to rebuild ForTrilinos wrappers. (Note that SWIG is always optional; the version here simply denotes the version used to generate the included wrappers.)

The version scheme is based on semantic versioning:

  • Major version numbers with Trilinos and minor versions of SWIG-Fortran (since it’s still not officially upstreamed) can result in major version number changes for ForTrilinos.
  • New features in Trilinos, and new support by ForTrilinos, can result in minor version number changes. Features removed or deprecated by a minor version change in Trilinos may also result in a minor version change.
  • Minor changes to the SWIG-Fortran implementation (which don’t affect the interface in the .F90 files) result in a patch version.

Essentially, the versioning will be driven by what the Fortran-only users see in the committed version of the generated wrappers.

Guaranteed version compatibility table for ForTrilinos.
ForTrilinos Trilinos SWIG
2.3.0 14.0 4.1.1+fortran
2.2.0 13.4 4.1.1+fortran
2.1.0 13.2 4.1.0-dev1+fortran
2.0.1 13.0:13.2 4.1.0-dev1+fortran
2.0.0 13.0:13.2 4.0.2+fortran
2.0.0-dev3 12.18.1 4.0.2+fortran
2.0.0-dev2 12.18.1 4.0.0+fortran+15e6ed59
2.0.0-dev1 12.17+8a82b322 4.0.0+fortran+15e6ed59
1.0 12.8.1

In the version table above, the +fortran suffix for SWIG indicates the SWIG-Fortran fork. +sha refers to a specific Git commit that comes after the given version.

Basically, the versioning will be driven by what the Fortran-only users see in the committed version of the generated wrappers.

The original implementation of the ForTrilinos was developed prior to 2012. That code is no longer developed and maintained, and is available using the trilinos-release-12-8-1 tag in the ForTrilinos repository and the corresponding Trilinos 12.8.1 version.

E4S

As of this writing, ForTrilinos is distributed as part of the E4S Project and should be available as a pre-built binary on a variety of user and HPC systems.

Spack

To install ForTrilinos version 2.1.0 through an existing Spack installation (v0.19 or higher, or the develop branch):

$ spack install fortrilinos

Manual

To install manually, you can point to the target Trilinos installation with the CMAKE_PREFIX_PATH or Trilinos_ROOT environment variables, or with a Trilinos_ROOT CMake variable:

$ git clone https://github.com/trilinos/ForTrilinos && cd ForTrilinos
$ mkdir build && cd build
$ cmake -DTrilinos_ROOT=/opt/trilinos -DCMAKE_INSTALL_PREFIX=/opt/fortrilinos ..
$ make install

The build options are most easily viewed using the ccmake GUI. All ForTrilinos options are scoped with a ForTrilinos_ prefix. Some options (e.g. ForTrilinos_USE_MPI) are derived from the Trilinos installation and cannot be changed.

Documentation

To build this documentation, (re)configure with -D ForTrilinos_DOCS=ON and run:

$ make doc

then open $BUILD/doc/html/index.html.