Thyra Version of the Day

The package Thyra contains base subclasses that support a common type of SPMD implementation of vectors and multivectors that are described here. The base subclasses described here provide support for a simple, yet general, category of Serial and SPMD vectors, multivectors and vector spaces. More...
Classes  
class  Thyra::SerialVectorSpaceConverterBase< ScalarFrom, ScalarTo > 
Node base class for converting serial multivectors (and vectors) from one scalar type to another. More...  
class  Thyra::SpmdMultiVectorBase< Scalar > 
Base class for SPMD multivectors. 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 localtoglobal indexing. More... 
The package Thyra contains base subclasses that support a common type of SPMD implementation of vectors and multivectors that are described here. The base subclasses described here provide support for a simple, yet general, category of Serial and SPMD vectors, multivectors and vector spaces.
Thyra::SpmdVectorSpaceDefaultBase
abstracts the the types of SPMD distributedmemory data distributions supported by these base subclasses. This vector space base class assumes a unique partitioning of vector and multivector 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. The multivector version of Thyra::SpmdMultiVectorBase::apply()
is implemented by calling Teuchos::BLAS::GEMM()
on each local processor to access level3 BLAS. Therefore, if Teuchos is configured to link to optimized BLAS then this base subclass will provided a near optimal implementation of a SPMD multivector.
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???.