|
Thyra Package Browser (Single Doxygen Collection) Version of the Day
|
The package Thyra contains base subclasses that support a common type of SPMD implementation of vectors and multi-vectors that are described here. More...
|
Classes | |
| class | Thyra::SerialVectorSpaceConverterBase< ScalarFrom, ScalarTo > |
| Node base class for converting serial multi-vectors (and vectors) from one scalar type to another. More... | |
| class | Thyra::SpmdMultiVectorBase< Scalar > |
| Base class for SPMD multi-vectors. More... | |
| class | Thyra::SpmdVectorBase< Scalar > |
| Base class for SPMD vectors that can provide views of contiguous elements in a process. More... | |
| class | Thyra::SpmdVectorSpaceDefaultBase< Scalar > |
Base VectorSpaceBase class for all SPMD vector spaces with contiguous local-to-global indexing. More... | |
The package Thyra contains base subclasses that support a common type of SPMD implementation of vectors and multi-vectors that are described here.
The UML class diagram below shows the subclasses described here:
The base subclasses described here provide support for a simple, yet general, category of Serial and SPMD vectors, multi-vectors and vector spaces.
Thyra::SpmdVectorSpaceDefaultBase abstracts the the types of SPMD distributed-memory data distributions supported by these base subclasses. This vector space base class assumes a unique partitioning of vector and multi-vector elements to a set of processors where there exists no ghost elements.
Thyra::SpmdVectorBase is a base subclass for SPMD Thyra::VectorBase objects. This class defines concrete implementations for the Thyra::VectorBase virtual functions applyOp(), acquireDetachedView() const, releaseDetachedView() const, acquireDetachedView() and commitDetachedView(). These functions are implemented given explicit access to local processor elements as returned by the getLocalData() functions overridden in a subclass object.
Thyra::SpmdMultiVectorBase is a base subclass for SPMD Thyra::MultiVectorBase objects. This class defines concrete implementations for the Thyra::MultiVectorBase virtual functions applyOp(), acquireDetachedView() const, releaseDetachedView() const, acquireDetachedView() and commitDetachedView(). These functions are implemented given explicit access to local processor elements as returned by the getLocalData() functions overridden in a subclass object. In addition, this subclass derives from Thyra::EuclideanLinearOpBase so that any application-specific scalar product is automatically supported. The multi-vector version of Thyra::SpmdMultiVectorBase::euclideanApply() is implemented by calling Teuchos::BLAS::GEMM() on each local processor to access level-3 BLAS. Therefore, if Teuchos is configured to link to optimized BLAS then this base subclass will provided a near optimal implementation of a SPMD multi-vector.
One of the big advantages of deriving concrete SPMD implementations from these base subclasses is that they provide automatic interoperability between different concrete subclasses. This type of automatic interoperability is demonstrated in ???this testing program???.
To facilitate the creation of concrete SPMD linear operators the following simple but very general base class is supplied:
Thyra::SpmdLinearOpBase is a general base subclass for Serial and SPMD platforms that only requires concrete subclass implementations to override one function that accepts explicit local vector or multi-vector data.
1.7.4