Collaboration diagram for Basic Support Subclasses Abstracting Application-Specific Scalar Products:
Classes | |
class | Thyra::EuclideanLinearOpBase< RangeScalar, DomainScalar > |
Base interface for Euclidean linear operators. More... | |
class | Thyra::EuclideanScalarProd< Scalar > |
Concrete implementation of a scalar product for a Euclidean vector space (i.e. using the dot product). More... | |
class | Thyra::LinearOpScalarProd< Scalar > |
Concrete implementation of a scalar product using a symmetric positive-definite linear operator. More... | |
class | Thyra::ScalarProdBase< Scalar > |
Abstract interface for scalar products. More... | |
class | Thyra::ScalarProdVectorSpaceBase< Scalar > |
Base subclass for VectorSpaceBase that allows the definition of an application-specific scalar product to be swapped in and out. More... |
Support base subclasses for abstracting application-specific scalar products (Note: above graphic is not hyperlinked!)
Thyra::ScalarProdBase
defines an interface for an application-specific scalar product independent from a vector space.
Thyra::ScalarProdVectorSpaceBase
is subclass of Thyra::VectorSpaceBase
that defines the scalar product functions in terms of an aggregate Thyra::ScalarProdBase
object that can be swapped in and out (see the C++ code for the Thyra::ScalarProdVectorSpaceBase::scalarProd()
function as an example).
Thyra::EuclideanScalarProd
is a standard implementation subclass of Thyra::ScalarProdBase
for Euclidean scalar products (i.e. using the dot product). This is the default scalar product definition used by Thyra::ScalarProdVectorSpaceBase
and all of its subclass objects.
Thyra::LinearOpScalarProd
is a more general implementation of a scalar product that uses an arbitrary symmetric positive-definite Thyra::LinearOpBase
object (shown using the op
relationship in the above UML class diagram).
Thyra::EuclideanLinearOpBase
is a base subclass that allows the development of general concrete implementations of Thyra::LinearOpBase
that are independent of an application-specific scalar product. This base subclass defines the functions Thyra::EuclideanLinearOpBase::euclideanApply()
and Thyra::EuclideanLinearOpBase::euclideanApplyTranspose()
which are called by Thyra::ScalarProdBase::apply()
to modify the application of an Euclidean linear operator for the definition of the scalar product (see the C++ code for the overridden Thyra::EuclideanLinearOpBase::apply()
and Thyra::EuclideanLinearOpBase::applyTranspose()
functions). This base class is most helpful for the definition of concrete Thyra::MultiVectorBase
subclasses. More specialized linear operators that already define the operator with respect to application-specific scalar product should not derive from this subclass but should instead derive directly from Thyra:LinearOpBase
.
The base subclasses Thyra::ScalarProdVectorSpaceBase
and Thyra::EuclideanLinearOpBase
are used for almost all of the other adapter support subclasses and concrete implementations in the Thyra package.