The Trilinos Project is an effort to bring modern object-oriented software design to high-performance parallel solver libraries for the solution of large-scale complex multi-physics engineering and scientific applications. Our emphasis is on abstract interfaces for flexible interoperability of packages and providing a full-featured set of concrete classes that implement all abstract interfaces. Trilinos is primarily written in C++, but provides essential C and Fortran user interface support.
In this presentation, we describe Trilinos package concepts and mechanisms, and give an overview of solver packages currently available in Trilinos, including Epetra (matrix/vector services), TSF (abstract solver classes), Nox (nonlinear solvers), AztecOO (linear solvers), ML (multilevel preconditioners) and Ifpack (algebraic preconditioners).