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 ANA operator/vector interfaces (Note: above graphic is not hyper-linked!)
Thyra::VectorSpaceBase
is the fundamental abstract interface for a vector space that defines the scalar product and factory functions for creating Thyra::VectorBase
and Thyra::MultiVectorBase
objects. Thyra::VectorBase
is the fundamental abstract interface for finite-dimensional vectors. Thyra::LinearOpBase
is the fundamental abstract interface for linear operators. Thyra::MultiVectorBase
is the fundamental abstract interface for collections of column vectors. RTOpPack::RTOpT
is the fundamental abstract interface to all diagonal vector reduction/transformation operations.
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.
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.
Thyra::VectorSpaceBase
, Thyra::VectorBase
, Thyra::MultiVectorBase
, and Thyra::LinearOpBase
objects out of Epetra objects.