Collaboration diagram for Basic Support Subclasses Abstracting Application-Specific Scalar Products:The Fundamental Thyra Operator/Vector Interfaces define an interface for providing ANAs with the functionality they need concerning application-specific scalar products without concern for how such scalar products are implemented or how such scalar products relate to the implementation of vectors, multi-vectors or linear operators. While this is most straightforward for clients of these interfaces, it is not the most convenient for subclass implementation developers. The first level of basic subclasses for supporting the development of concrete Thyra operator/vector implementations involves separating out the definition of the scalar product from the basic vector and multi-vector data structures and the factory methods for creating them. The base subclasses for supporting application-defined scalar products are shown in the UML class diagram below. More...
|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 |
Support base subclasses for abstracting application-specific scalar products (Note: above graphic is not hyperlinked!)
Thyra::ScalarProdBasedefines an interface for an application-specific scalar product independent from a vector space.
Thyra::ScalarProdVectorSpaceBaseis subclass of
Thyra::VectorSpaceBasethat defines the scalar product functions in terms of an aggregate
Thyra::ScalarProdBaseobject that can be swapped in and out (see the C++ code for the
Thyra::ScalarProdVectorSpaceBase::scalarProd()function as an example).
Thyra::EuclideanScalarProdis a standard implementation subclass of
Thyra::ScalarProdBasefor Euclidean scalar products (i.e. using the dot product). This is the default scalar product definition used by
Thyra::ScalarProdVectorSpaceBaseand all of its subclass objects.
Thyra::LinearOpScalarProdis a more general implementation of a scalar product that uses an arbitrary symmetric positive-definite
Thyra::LinearOpBaseobject (shown using the
oprelationship in the above UML class diagram).
Thyra::EuclideanLinearOpBaseis a base subclass that allows the development of general concrete implementations of
Thyra::LinearOpBasethat are independent of an application-specific scalar product. This base subclass defines the functions
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::applyTranspose()functions). This base class is most helpful for the definition of concrete
Thyra::MultiVectorBasesubclasses. 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
The base subclasses
Thyra::EuclideanLinearOpBase are used for almost all of the other adapter support subclasses and concrete implementations in the Thyra package.