Thyra Operator/Vector Support Software and Examples

Version of the Day

Warning! Clicking on the above links (i.e. "Class List", "File List" etc.) can be a bit overwhelming and not recommended as a way to "browse" the code that is part of this doxygen collection. Instead, it is recommended that one use the outline below to browse the classes and various functions documented here. The one exception is the above "Modules" link which is essentially an outline of what is presented below. The following presentation is designed to expose developers to the Thyra ANA Operator/Vector interfaces and related code in manageable chunks as to not overwhelm. However, the above links are very useful as a developer's reference and should only be used as such.

Outline

Introduction

The C++ namespace Thyra contains abstract interfaces to linear algebra objects such as vectors and linear operators and its most fundamental interfaces are shown in the UML class diagram below. This documentation page is meant to provide a road-map to the Doxygen-generated C++ code documentation and provide convenient access to helpful examples.

This main page provides the starting point for all of the documentation for the Thyra Operator/Vector Interfaces.

Fundamental Thyra Operator/Vector Interfaces

ThyraOperatorVectorSimple.gif

Fundamental Thyra ANA operator/vector interfaces (Note: above graphic is not hyper-linked!)

The most fundamental abstract interfaces contained in the Thyra package (and shown in the above UML class diagram) are:

From here on out, the abstract C++ classes Thyra::VectorSpaceBase, Thyra::VectorBase, Thyra::MultiVectorBase and Thyra::LinearOpBase will be referred to as the fundamental Thyra operator/vector interfaces.

The rest of the C++ classes and non-member functions described in this doxygen collection are designed to support one of a number of different use cases associated with the above fundamental Thyra operator/vector interfaces.

Use Cases for Fundamental Thyra Operator/Vector Interfaces

Here we outline three common use cases related to the Fundamental Thyra Operator/Vector Interfaces .

There are primarily three different use cases related to the fundamental Thyra operator/vector interfaces shown above. The first, and by far the most important, is the use of the Interoperability Interfaces for linear Abstract Numerical Algorithms (ANAs). This first use case is really the main reason for the creation of Thyra in the first place and is the most basic and important dependence that another package can have on Thyra. The second most important use case is the Development of Concrete Thyra Operator/Vector Subclass Implementations of vector spaces, vectors, multi-vectors and linear operators. These types of subclass implementations are also known as "adapter" subclasses if they "adapt" some pre-existing set of classes or interfaces (which is often the case). The third use case is the use of the Development of linear Abstract Numerical Algorithms (ANAs). While the fundamental Thyra operator/vector interface classes were not directly designed for this use case, with some minimal helper functions and classes, directly writing ANA implementations in terms of Thyra objects is quite straightforward.

Click on the links below for a discussion of each of these three use cases and a description of additional supporting code. These use cases provide the primary documentation organization for the software in this doxygen collection.

  1. Interoperability Interfaces for linear Abstract Numerical Algorithms (ANAs)

  2. Development of linear Abstract Numerical Algorithms (ANAs)

  3. Development of Concrete Thyra Operator/Vector Subclass Implementations

Assorted Thyra Operator/Vector Examples

Below are links to example code that demonstrate various use cases for the code in the Thyra package:

  1. Power Method Examples : These are examples that use a simple power method ANA and show both templated serial and MPI implementations.

  2. CG Examples : These are examples that use a simple CG ANA and show both templated serial and MPI implementations.

  3. Testing Program for Composite Product VectorBase Spaces and Product Vectors : This is a simple testing program that demonstrates how product vectors and product spaces are created and used.

Links to Other Documentation Collections

Below are links to other related documentation:


Generated on Thu Sep 18 12:32:30 2008 for Thyra Operator/Vector Support by doxygen 1.3.9.1