Thyra Version of the Day
Thyra::SpmdMultiVectorBase< Scalar > Class Template Reference

Base interface class for SPMD multi-vectors. More...

#include <Thyra_SpmdMultiVectorBase.hpp>

Inheritance diagram for Thyra::SpmdMultiVectorBase< Scalar >:
Inheritance graph
[legend]

List of all members.

Public non-virtual interface functions

RCP< const SpmdVectorSpaceBase
< Scalar > > 
spmdSpace () const
 Returns the SPMD vector space object for the range of *this multi-vector.
RTOpPack::SubMultiVectorView
< Scalar > 
getNonconstLocalSubMultiVector ()
 Get a non-const generalized view of local multi-vector data.
RTOpPack::ConstSubMultiVectorView
< Scalar > 
getLocalSubMultiVector () const
 Get a const generalized view of local multi-vector data.
void getNonconstLocalData (const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)
 Returns a non-const pointer to a Fortran-style view of the local multi-vector data.
void getLocalData (const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const
 Returns a const pointer to a Fortran-style view of the local multi-vector data.

Virtual functions to be overridden by sublcasses.

virtual RCP< const
SpmdVectorSpaceBase< Scalar > > 
spmdSpaceImpl () const =0
 Virtual implementation for spmdSpace().
virtual
RTOpPack::SubMultiVectorView
< Scalar > 
getNonconstLocalSubMultiVectorImpl ()=0
 Virtual implementation for getNonconstLocalSubMultiVector().
virtual
RTOpPack::ConstSubMultiVectorView
< Scalar > 
getLocalSubMultiVectorImpl () const =0
 Virtual implementation for getLocalSubMultiVector().
virtual void getNonconstLocalMultiVectorDataImpl (const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)=0
 Virtual implementation for getNonconstLocalData().
virtual void getLocalMultiVectorDataImpl (const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const =0
 Virtual implementation for getLocalData().

Detailed Description

template<class Scalar>
class Thyra::SpmdMultiVectorBase< Scalar >

Base interface class for SPMD multi-vectors.

By inheriting from this base class, multi-vector implementations allow their multi-vector objects to be seamlessly combined with other SPMD multi-vector objects (of different concrete types) in applyOp() and apply(). A big part of this protocol is that every multi-vector object can expose an SpmdVectorSpaceBase object through the function spmdSpace().

Definition at line 67 of file Thyra_SpmdMultiVectorBase.hpp.


Member Function Documentation

template<class Scalar >
RCP<const SpmdVectorSpaceBase<Scalar> > Thyra::SpmdMultiVectorBase< Scalar >::spmdSpace ( ) const [inline]

Returns the SPMD vector space object for the range of *this multi-vector.

Definition at line 77 of file Thyra_SpmdMultiVectorBase.hpp.

template<class Scalar >
RTOpPack::SubMultiVectorView<Scalar> Thyra::SpmdMultiVectorBase< Scalar >::getNonconstLocalSubMultiVector ( ) [inline]

Get a non-const generalized view of local multi-vector data.

Definition at line 82 of file Thyra_SpmdMultiVectorBase.hpp.

template<class Scalar >
RTOpPack::ConstSubMultiVectorView<Scalar> Thyra::SpmdMultiVectorBase< Scalar >::getLocalSubMultiVector ( ) const [inline]

Get a const generalized view of local multi-vector data.

Definition at line 87 of file Thyra_SpmdMultiVectorBase.hpp.

template<class Scalar >
void Thyra::SpmdMultiVectorBase< Scalar >::getNonconstLocalData ( const Ptr< ArrayRCP< Scalar > > &  localValues,
const Ptr< Ordinal > &  leadingDim 
) [inline]

Returns a non-const pointer to a Fortran-style view of the local multi-vector data.

Parameters:
localValues[out] On output *localValues will point to the first element in the first column of the local multi-vector stored as a column-major dense Fortran-style matrix.
leadingDim[out] On output *leadingDim gives the leading dimension of the Fortran-style local multi-vector.

Preconditions:

  • localValues!=NULL
  • leadingDim!=NULL

Preconditions:

  • *localValues!=NULL
  • *leadingDim!=0

Definition at line 110 of file Thyra_SpmdMultiVectorBase.hpp.

template<class Scalar >
void Thyra::SpmdMultiVectorBase< Scalar >::getLocalData ( const Ptr< ArrayRCP< const Scalar > > &  localValues,
const Ptr< Ordinal > &  leadingDim 
) const [inline]

Returns a const pointer to a Fortran-style view of the local multi-vector data.

Parameters:
localValues[out] On output *localValues will point to the first element in the first column of the local multi-vector stored as a column-major dense Fortran-style matrix.
leadingDim[out] On output *leadingDim gives the leading dimension of the Fortran-style local multi-vector.

Preconditions:

  • localValues!=NULL
  • leadingDim!=NULL

Preconditions:

  • *localValues!=NULL
  • *leadingDim!=0

Definition at line 135 of file Thyra_SpmdMultiVectorBase.hpp.

template<class Scalar >
virtual RCP<const SpmdVectorSpaceBase<Scalar> > Thyra::SpmdMultiVectorBase< Scalar >::spmdSpaceImpl ( ) const [protected, pure virtual]
template<class Scalar >
virtual RTOpPack::SubMultiVectorView<Scalar> Thyra::SpmdMultiVectorBase< Scalar >::getNonconstLocalSubMultiVectorImpl ( ) [protected, pure virtual]
template<class Scalar >
virtual RTOpPack::ConstSubMultiVectorView<Scalar> Thyra::SpmdMultiVectorBase< Scalar >::getLocalSubMultiVectorImpl ( ) const [protected, pure virtual]
template<class Scalar >
virtual void Thyra::SpmdMultiVectorBase< Scalar >::getNonconstLocalMultiVectorDataImpl ( const Ptr< ArrayRCP< Scalar > > &  localValues,
const Ptr< Ordinal > &  leadingDim 
) [protected, pure virtual]
template<class Scalar >
virtual void Thyra::SpmdMultiVectorBase< Scalar >::getLocalMultiVectorDataImpl ( const Ptr< ArrayRCP< const Scalar > > &  localValues,
const Ptr< Ordinal > &  leadingDim 
) const [protected, pure virtual]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines