Kratos Multiphysics uses several components of the Trilinos project for its MPI capabilities. The most relevant of these are the distributed-memory matrix and vector classes from the Epetra module and the linear solvers provided by the AztecOO, Amesos and ML packages. In addition, it also contains the MPI version of the AMGCL solver.
- TrilinosLinearSolver
- AztecSolver
- AmesosSolver
- Amesos2Solver
- MultiLevelSolver
- AMGCL Mpi-based Solver
The Trilinos application also provides MPI versions of most of the core classes of Kratos, adapted to work with Epetra distributed matrices where necessary. Hence it provide its own version of the following Kratos classes:
- TrilinosResidualBasedBuilderAndSolver
- TrilinosEliminationBuilderAndSolver
- TrilinosBlockBuilderAndSolver
- TrilinosBlockBuilderAndSolverPeriodic
- TrilinosDisplacementCriteria
- TrilinosResidualCriteria
- TrilinosAndCriteria
- TrilinosOrCriteria
- TrilinosMixedGenericCriteria
- TrilinosSolvingStrategy
- TrilinosLinearStrategy
- TrilinosNewtonRaphsonStrategy
For more information about these please refer to their serial version (without Trilinos prefix) in the main Kratos documentation.
First add the TrilinosApplication
to the compiled apps, as described in the install instructions.
Use the following settings to add Trilinos:
-DTRILINOS_ROOT=String
Root directory for Trilinos library.
-DTRILINOS_INCLUDE_DIR=String
Not required if TRILINOS_ROOT
is set. Path to trilinos include dir.
-DTRILINOS_LIBRARY_DIR=String
Not required if TRILINOS_ROOT
is set. Path to trilinos library dir.
-DTRILINOS_LIBRARY_PREFIX=String
Indicates the prefix of the trilinos libraries in case they have:
libepetra.so -> No prefix
libtrilinos_epetra.so -> -DTRILINOS_PREFIX="trilinos_"
If trilinos was installed using the package manager usually the following lines have to be used:
-DTRILINOS_INCLUDE_DIR="/usr/include/trilinos" \
-DTRILINOS_LIBRARY_DIR="/usr/lib/x86_64-linux-gnu" \
-DTRILINOS_LIBRARY_PREFIX="trilinos_" \
Trilinos is a large project and not all of its packages are being used in Kratos. Check the docker of the CI to see which packages are necessary in order to compile the TrilinosApplication. Furthermore it is possible to do a minimal installation of the TrilinosApplication with only using the Epetra package. Using the other packages is enabled by default, but can be disabled with the following flags:
- TRILINOS_EXCLUDE_ML_SOLVER: Setting this flag to
ON
in the configure file will exclude the interface to the Trilinos ML solver package - TRILINOS_EXCLUDE_AZTEC_SOLVER: Setting this flag to
ON
in the configure file will exclude solvers from the Trilinos AztecOO package - TRILINOS_EXCLUDE_AMESOS_SOLVER: Setting this flag to
ON
in the configure file will exclude solvers using features of the Trilinos Amesos package - TRILINOS_EXCLUDE_AMESOS2_SOLVER: Setting this flag to
ON
in the configure file will exclude solvers using features of the Trilinos Amesos2 package
From Ubuntu 18.04 onwards, Trilinos can be installed with the following command:
sudo apt-get install trilinos-all-dev