Classes | |
| class | Thyra::SerialLinearOpBase< Scalar > |
| Base subclass for simplistic in-core serial linear operators. More... | |
| class | Thyra::SerialMultiVectorBase< Scalar > |
| Base class for serial shared-memory multi-vectors. More... | |
| class | Thyra::SerialVectorBase< Scalar > |
| Efficient base subclass of serial vectors. More... | |
| class | Thyra::SerialVectorSpaceBase< Scalar > |
VectorSpaceBase node subclass for serial vectors and multi-vectors. More... | |
The UML class diagram below shows the subclasses described here:
Support base subclasses for serial shared-memory Thyra implementations (Note: above graphic is not hyperlinked!)
Thyra::SerialVectorSpaceBase is a useful node subclass for defining concrete serial vector space subclasses. This subclass simply overrides Thyra::VectorSpaceBase::isCompatible() to return true if the other vector space is in core and is the same dimension since this is all that should be required for serial vectors and multi-vectors to be 100% compatible.
Thyra::SerialVectorBase is a useful node subclass for defining concrete serial vector subclasses. This base class provides a very general implementation for Thyra::VectorBase::applyOp() that relies on explicit vector element access. All that a concrete subclass must do to is to provide explicit access to vector data in overrides of the virtual Thyra::SerialVectorBase::getData() functions.
Thyra::SerialMultiVectorBase is a useful node subclass for defining concrete serial multi-vector subclasses. This base class provides implementations for both Thyra::MultiVectorBase::applyOp() and Thyra::MultiVectorBase::apply() that relies on explicit multi-vector element access. All that a concrete subclass must do is to provide explicit access to multi-vector data in overrides of the Thyra::SerialMultiVectorBase::getData() functions. Note in general that the override of Thyra::MultiVectorBase::apply() is a level-3 BLAS operation and this base class uses Teuchos::BLAS::GEMM() to access optimized level-3 BLAS. This assumes that the Teuchos package has been configured to use optimized BLAS (for the data types float, double, std::complex<float> and std::complex<double> of course).
The above base subclasses Thyra::SerialVectorBase and Thyra::SerialMultiVectorBase should provide very efficient implementations of all of the operations defined on Thyra::VectorBase and Thyra::MultiVectorBase for serial shared-memory platforms. All that concrete subclasses must provide is explicit access to vector and multi-vector data.
Thyra::SerialLinearOpBase is a general node subclass for serial shared-memory platforms that only requires concrete subclass implementations to override one function that accepts explicit vector data.
1.3.9.1