Thyra : Interfaces and Support code for Abstract Numerical Algorithms (ANAs)

Version of the Day

Outline

Introduction

The Thyra package contains a set of interfaces and supporting code that defines basic interoperability mechanisms between different types of numerical software. The foundation of all the interfaces related to abstract numerical algorithms (ANAs) are the mathematical concepts of vectors, vector spaces, and linear operators. All other ANA interfaces and support software are built on these fundamental operator/vector interfaces.

This main page provides the starting point for all of the documentation for Thyra interfaces and software. This documentation is generated using Doxygen.

The documentation for Thyra is broken up into a number of different doxygen collections as described in the next section.

Thyra Software Package Documentation Collections

The Doxygen-generated documentation is broken up into a number of different doxygen collections in an attempt to make each individual collection more manageable to browse and comprehend. To access each separate collection, just click on the [doxygen collection] next to each header below.

The thrya package is broadly divided into interoperability interfaces and support software and the directory structure and the doxygen documentation is also divided in this way. This organization mirrors the directory structure of thyra.

Thyra interoperability interfaces

All of the software in the src/interfaces directory define fundamental interoperability interfaces needed to glue code together. This is the most critical aspect of Thyra. In addition, interfaces are also partitioned between fundamental interfaces and extended interfaces.

Operator/Vector Interfaces

Operator Solve Interfaces

Nonlinear Interfaces

Thyra support software and examples

Operator/Vector Support

Described here is a fairly large collection of ANA or client support and adapter support software based on the operator/vector interfaces. For example, you will find things such as unit testing classes (e.g. Thyra::LinearOpTester), and concrete product spaces/vectors/multi-vectors (e.g. Thyra::DefaultProductVectorSpace). Also included is adapter support and concrete implementations for serial and SPMD (Single Program Multiple Data) space/vector/multi-vector implementations (e.g. Thyra::DefaultSpmdVectorSpace). Another category of software is efficient Java-like handle/wrapper classes (e.g. Thyra::VectorSpace, Thyra::Vector, and Thyra::LinearOperator) that defines a convenient API for the development of ANAs using MATLAB-like operator overloading. Some examples are also provided, including several for the Conjugate Gradient method and the Power Method. This collection of software is really too vast to give a full sense of what it contains in this short description.

Operator Solve Support

This collection contains support software for the operator/solve interfaces. Examples include testing software like Thyra::LinearOpWithSolveTester and decorator subclasses like Thyra::DefaultDiagonalLinearOpWithSolve.

Nonlinear Model Evaluator Support

This includes support software for the nonlinear model evaluator interfaces. Examples include decorator subclasses like Thyra::DefaultFiniteDifferenceModelEvaluator.

Nonlinear Solvers Support

Contained here is support software for the nonlinear solver interfaces and some simple concrete implementations. Simple concrete nonlinear equation solver implementations include examples Thyra::LinearNonlinearSolver and Thyra::DampenedNewtonNonlinearSolver.

Thyra adapters to other packages

Epetra/Thyra adapters

This software allows the creation/conversion of Thyra objects and Epetra objects. Examples include Thyra::EpetraLinearOp, Thyra::EpetraVector, Thyra::EpetraMultiVector, and Thyra::EpetraVectorSpace.

EpetraExt/Thyra adapters

Included here are various adapters between Epetra and EpetraExt based code and Thyra interfaces. For example, one will find the Thyra::EpetraModelEvaluator class in this collection of code.

Browse all of Thyra as a single doxygen collection

You can browse all of Thyra as a single doxygen collection. Warning: This is not the recommended way to learn about Thyra software. However, this is a good way to browse the directory structure of thyra, to locate files, etc.

Some Technicalities about Thyra Software

A few things about the software in the Thyra package are worth mentioning:

Other Trilinos Packages on which Thyra Depends

The Thyra code described here is dependent on the following Trilinos packages:

Configuration of the Thyra Package

The Thyra package is configured using CMake and responds to a number of options that affect the code that is built and what code is installed.

Some of the more important configuration options are:

Frequently Asked Questions (FAQ)

Click here for a list of frequently asked questions (FAQ) compiled for thyra.

Documents Describing or are Related to Thyra

Contributors to the Thyra Package and Related Software

The contributors to the Thyra package, or related packages, in alphabetical order, are:

Other Software Related to Thyra

Below is a partial list of software related to Thyra.


Generated on Tue Jul 13 09:26:20 2010 for Thyra by  doxygen 1.4.7