Trilinos is comprised of over 50 packages. Each Trilinos package is a self-contained, independent piece of software with its own set of requirements, its own development team and group of users. Because of this, Trilinos itself is designed to respect the autonomy of packages.

Status* Package Description
Core Packages
⚠️ Epetra Epetra provides the fundamental construction routines and services function that are required for serial and parallel linear algebra libraries. Epetra provides the underlying foundation for all Trilinos solvers.
⚠️ EpetraExt Extended Epetra routines and services.
🛠️ Kokkos Core kernel package.
RTop RTOp (reduction/transformation operators) provides the basic mechanism for implementing vector operations in a flexible and efficient manner.
📸 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.
Teuchos Teuchos provides a suite of common tools for Trilinos for developers to use. These tools include BLAS and LAPACK wrappers, smart pointers, parameter lists, and XML parsers.
🛠️ Tpetra Trilinos’ Tpetra package implements linear algebra objects. These include sparse graphs, sparse matrices, and dense vectors. Many Trilinos packages and applications produce, modify, or consume Tpetra’s linear algebra objects, or depend on Tpetra’s parallel data redistribution facilities.
Xpetra Xpetra a lightweight wrapper to both the Epetra and Tpetra linear algebra libraries. The Xpetra syntax mirrors as much as possible that of Tpetra.
Partitioning and Load Balancing
⚠️ Isorropia Isorropia is a package for combinatorial scientific computing, with focus on partitioning and load balancing, but also supports coloring and ordering of sparse matrices.
Zoltan Zoltan is a toolkit of parallel services for dynamic, unstructured, and/or adaptive simulations. Zoltan provides parallel dynamic load balancing and related services for a wide variety of applications, including finite element methods, matrix operations, particle methods, and crash simulations. Zoltan also provides parallel graph coloring, matrix ordering, unstructured communication tools, and distributed data directories.
Zoltan2 Zoltan2 is a package for load balancing and combinatorial scientific computing. It may be viewed as a successor to the popular Zoltan and Isorropia packages.
Eigensolvers
Anasazi Anasazi is an extensible and interoperable framework for large-scale eigenvalue algorithms.
Preconditioners
⚠️ AztecOO ILU-type preconditioner. See also description under “Linear Solvers.”
⚠️ Epetra Provides wrappers for select BLAS and LAPACK routines. See also description under “Core Packages”.
⚠️ Ifpack Distributed algebraic preconditioner package. Includes incomplete factorizations and relaxation-based preconditioners in domain decomposition framework. Compatible with AztecOO.
Ifpack2 Ifpack2 provides incomplete factorizations, relaxations, and domain decomposition operators for linear algebra objects (sparse matrices, operators, and dense vectors and multivectors) provided by the Tpetra package. Intended as a templated replacement for Ifpack.
⚠️ ML Multilevel, distributed memory algebraic preconditioners. Provides multi-level, multigrid-like preconditioners for distributed linear systems. Compatible with AztecOO.
🛠️ Muelu MueLu is designed to solve large sparse linear systems of equations arising from PDE discretizations. MueLu provides easy-to-use multigrid solvers and preconditioners based on smoothed aggregation algorithms.
Linear Solvers
Adelus Adelus performs LU factorization with partial pivoting and solves for a dense (real or complex) linear equation system on a distributed computing system using MPI for message passing. It can be considered a replacement for Pliris, which runs only on CPUs.
⚠️ Amesos Direct solver classes. Supports use of a growing list of third party direct solvers, including DSCPACK, SuperLU, SuperLUDist and UMFPACK. Compatible with Epetra.
Amesos2 Direct solver library interface in Trilinos. Amesos2 provides interfaces to third-party direct solvers for templated matrices and vectors in Trilinos.
⚠️ AztecOO Preconditioned Krylov solver package. Supercedes Aztec 2.1. Solves linear systems of equations via preconditioned Krylov methods. Uses Epetra objects, compatible with IFPACK, ML and Aztec.
Belos Next-generation iterative solvers written using a traits interface, meaning that it has no explicit dependence on any concrete linear algebra library. Instead, it can be used with any concrete linear algebra library that implements the Thyra abstract interfaces and even Epetra directly.
⚠️ Pliris An object-oriented interface to a LU solver for dense matrices on parallel platforms.
ShyLU ShyLU is a package for solving sparse linear systems using domain decomposition methods. ShyLU has two main focus areas - (1) distributed memory domain-decomposition solvers and (2) node-level solvers and kernels that support the distributed memory solvers.
Teuchos Provides wrappers for select BLAS and LAPACK routines. See also description under “Core Packages”.
Automatic Differentiation
Sacado Sacado is a package for automatic differentiation of C++ programs. It provides simple yet fast and efficient classes for forward, reverse and Taylor polynomial mode automatic differentiation using C++ template and operator overloading.
Stokhos Stokhos is a package for intrusive stochastic Galerkin uncertainty quantification methods. It provides methods for computing well-known intrusive stochastic Galerkin projections such as Polynomial Chaos and Generalized Polynomial Chaos, interfaces for forming the resulting nonlinear systems, and linear solver methods for solving block stochastic Galerkin linear systems.
Discretization Utilities
Compadre Toolkit for meshless discretizations enabling solution of differential equations and data transfer.
⚠️ Intrepid Intrepid is a library of interoperable tools for compatible discretizations of partial differential equations.
🛠️ Intrepid2 Performance portable tools for the local assembly of high-order compatible finite element discretizations. Replacement for Intrepid.
📸 Krino Tools for computing and reinitializing signed distance fields and for creating unstructured stk meshes that conform to level set fields.
MiniTensor Tools for the manipulation and optimization of small vectors/tensors.
PAMGEN PAMGEN creates hexahedral or quadrilateral (in 2D) finite element meshes of simple shapes (cubes and cylinders) in parallel.
Panzer Panzer is a package for performing finite element analysis.
📸 Percept A collection of tools, including mesh adaptation and data transfer, to enable solution verification.
Phalanx Phalanx is a DAG-based local field evaluation kernel specifically designed for general partial differential equation solvers.
Shards Topology data for mesh-based discretization of differential equations.
📸 STK Contains capabilities intended to support massively parallel multi-physics computations on dynamically changing unstructured meshes. The primary capability in the STK package is the mesh database which supports creation and manipulation of mesh entities (nodes, elements etc) and computational field data defined on the mesh. STK also contains sub-libraries that support geometric proximity searches, assembly into linear-systems, etc.
Teko Teko means “fuse” in Greek. This is suggestive of what Teko does, bringing together multiple physics to form one preconditioner.
Nonlinear, Transient, and Optimization Solvers
NOX Nonlinear solver package. Abstract and concrete classes for construction and solution of nonlinear problems.
LOCA LOCA is a software library for performing bifurcation analysis of large-scale applications. When implemented with an application code, LOCA enables the tracking of solution branches as a function of system parameters and the direct tracking of bifurcation points. LOCA is designed to drive application codes that use Newton’s method to locate steady-state solutions to nonlinear problems.
🛠️ ROL Rapid Optimization Library (ROL) is Trilinos’ next-generation package for large-scale optimization. It is used for the solution of optimal design, optimal control and inverse problems in large-scale engineering applications. Other uses include mesh optimization and image processing. ROL solves nonlinear nonconvex optimization problems with general equality and inequality constraints, with efficient specializations for various problem types. ROL’s matrix-free API enables direct use of application data structures and memory spaces, linear solvers, nonlinear solvers and preconditioners.
Tempus Time-integration framework for advanced transient analysis, including various time integrators and embedded sensitivity analysis.
Interfaces and Adapters
ForTrilinos ForTrilinos provides object-oriented Fortran interfaces to Trilinos C++ packages.
Piro Piro provides driver classes for the common uses of Trilinos nonlinear analysis tools.
⚠️ PyTrilinos Python interfaces to selected Trilinos packages.
PyTrilinos2 Replacement for PyTrilinos.
Stratimikos The package Stratimikos contains a unified set of Thyra-based wrappers to linear solver and preconditioner capabilities in Trilinos. The Stratimikos package is also a place where unified testing of linear solvers and preconditioners can be performed.
Thyra Abstract linear solver package. Provides foundation for writing linear and nonlinear abstract numerical algorithms and interfaces to linear solvers and preconditioners (see Stratimikos).
TrilinosCouplings A collection of interfaces between packages.
⚠️ TriUtils TriUtils a package of utilities for other Trilinos packages.
Archived Packages
Claps Claps is a collection of domain decomposition preconditioners and solvers.
Didasko Didasko, the tutorial of Trilinos, offers a quick introduction to several Trilinos packages.
Domi Domi provides multi-dimensional distributed linear algebra services.
FEI A general interface for assembling finite-element data into a system of linear equations.
GlobiPack The GlobiPack package contains a set of interfaces and implementations for 1D globalization capabilities to be used in nonlinear solvers, optimization solvers, and similar algorithms that require globalization methods (e.g. line search and trust region methods).
Komplex Komplex is a complex linear solver package. Solves complex-valued linear systems via equivalent real formulations.
Mesquite MESQUITE is a linkable software library that applies a variety of node-movement algorithms to improve the quality and/or adapt a given mesh.
Moertel This package supplies capabilities for nonconforming mesh tying and contact formulations in 2 and 3 dimensions using Mortar methods.
MOOCHO MOOCHO (Multifunctional Object-Oriented arCHitecture for Optimization) is designed to solve large-scale, equality and inequality nonlinearly constrained, non-convex optimization problems (i.e. nonlinear programs) using reduced-space successive quadratic programming (SQP) methods.
New Package New Package was a template in the early days of Trilinos, meant to help developers create their own new Trilinos package.
Optika The OptiPack package contains interfaces and concrete implementations of some basic optimization algorithms based on Thyra.
Rythmos Rythmos is a transient integrator for ordinary differential equations and differential-algebraic equations with support for explicit, implicit, one-step and multi-step algorithms. Replaced by Tempus.
Trios The Trios (Trilinos I/O Support) package provides libraries to support the development of distributed data services on HPC platforms.
WebTrilinos WebTrilinos is a scientific portal, a web-based environment to use several Trilinos packages through the web.

Package Status*

  • 🛠️ Actively Developed
  • ✅ Supported Package
  • ⚠️ Planned Archival/Deprecation
  • 📸 Snap-shotted Package
  • ⛔ Archived/Deprecated Package