Because of the broad scope of Trilinos, we have defined capability areas within Trilinos:
1. User Experience – [overview] [webpage]
2. Framework & Tools – [overview] [webpage]
3. Software Engineering Technologies and Integration – [overview] [webpage]
4. I/O Support – [overview]
5. Meshes, Geometry, & Load Balancing – [overview] [webpage]
6. Discretizations – [overview] [webpage]
7. Scalable Linear Algebra – [overview] [webpage]
8. Linear & Eigen Solvers – [overview] [webpage]
9. Embedded Nonlinear Analysis Tools – [overview] [webpage]
A brief summary of each capability area is provided below, as well as a link to the capability area homepage (note that some of the webpages are under construction). Each capability area is assigned to a capability leader. The capability leaders are listed below and on the capability area homepages.
Leader – Bill Spotz
The User Experience capability area is aimed at improving the ability of developers who use Trilinos to use it effectively and efficiently. Our goals are to make documentation, examples, and tutorials clear, accurate and easy to find; to improve interfaces; and to foster relationships between Trilinos and application developers.
Framework & Tools
Leader – Jim Willenbring
The Framework and Tools Capability Area provides resources for both users and developers. Like User Experience, this capability area is different from most of the other capability areas in that the resources provided extend beyond packages and focus on tools that aid in building, maintaining and documenting Trilinos.
Software Engineering Technologies and Integration
Leader – Roscoe Bartlett
The Trilinos “Software Engineering Technologies and Integration” capabilities area spans all of Trilinos relating to aspects of scalability, interoperability, integration, and any other critical Trilinos software engineering issue. At the numerical algorithmic level, the Thyra package plays a critical role in defining the standard interfaces to allow the scalable, interoperable, composeable vertical integration of basic linear operators and vectors, preconditioners and linear solvers, nonlinear solvers, bifurcation and stability analysis, transient solvers, optimization, and more. At a more concrete algorithmic level, currently, Epetra provides the defacto standard for element-based numerical algorithm integration. At a lower level, tools in %Teuchos package for memory management (e.g. RCP), configuration control (e.g. ParameterList), and other areas also play a critical role in the composition and interoperability of software. Aos included are the various Trilinos “skins” such as PyTrilinos that provide users access to Trilinos capabilities in other programming languages and environments. Finally, principles and practices from the modern Lean & Agile software engineering community are refined and adapted to the numerical computational computing area to support the various missions of Trilinos.
Leader – Jay Lofstead
The Trilinos I/O Support capability area provides general I/O support for applications using Trilinos libraries. In particular, this capability will include parallel I/O support to read and write selected Trilinos data structures to commonly-used file formats such as netCDF, hdf5, and Exodus. It will also include general libraries to support object serialization as well as application-directed checkpoint and restart.
Meshes, Geometry, & Load Balancing
Leader – Karen Devine
The goal of the Geometry, Meshing and Load-Balancing Capability Area is to provide libraries, tools, and common interfaces for creating, accessing and manipulating mesh and matrix data within applications. This capability area is new in FY08 and will be released in Trilinos v9. Geometry and meshing efforts include in-application meshing tools for simple geometries, mesh databases, and mesh I/O and redistribution libraries. Load-balancing capabilities include partitioning and repartitioning for matrices and meshes, as well as other types of data (particles, circuits, etc.).
Leader – Pavel Bochev
The discretization capability area is new to Trilinos 9.0. The objective is to provide, over time, a collection of libraries and interfaces that enable rapid development of application codes for applications that require numerical solution of Partial Differential Equations (PDE). The tools included in this capability area are designed to work with the rest of Trilinos packages or to be used as interoperable components in existing user environments.
The tools included in discretization capability area can be broadly divided into three related categories that correspond to the key steps in the numerical solution of PDEs by mesh-based methods.
Scalable Linear Algebra
Leader – Michael A. Heroux
Trilinos provides state-of-the art capabilities in scalable basic linear algebra computations. Building on the defacto standard BLAS and LAPACK libraries for single node performance, Trilinos allows users to construct and use single node and distributed parallel data objects in several libraries. Packages represented by this area include Epetra, Teuchos, EpetraExt, Tpetra, Kokkos and Thyra. Please see the above link for full details.
Linear & Eigen Solvers
Leader – Jonathan Hu
Trilinos provides a wide-variety of solution methods for linear and eigen systems. The Linear & Eigen Solvers Capability Area provides iterative and direct solvers, preconditioners, high-level interfaces, and eigen-solvers.
Embedded Nonlinear Analysis Tools
Leader – Andy Salinger
The Trilinos Embedded Nonlinear Analysis Tools Capability Area collects the top level algorithms (outermost loops) in a computational simulation or design study. These include: the solution of nonlinear equations, time integration, bifurcation tracking, parameter continuation, optimization, and uncertainty quantification. A common theme of our algorithm R&D efforts is the philosophy of Analysis beyond Simulation, which aims to automate many computational tasks that are often performed by application code users by trial-and-error or repeated simulation. The tasks that can be automated include performing parameter studies, sensitivity analysis, calibration, optimization, time step size control, and locating instabilities. Also included in this capability area is the automatic differentiation technology that can be used in an application code to provide the derivatives critical to the analysis algorithms.
The packages represented in this area include Piro, NOX, LOCA, Rythmos, MOOCHO, Aristos, Sacado, Stokhos, and TriKota.