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