Thyra  Version of the Day
List of all members

Efficient concrete implementation subclass for SPMD vectors. More...

#include <Thyra_DefaultSpmdVector_decl.hpp>

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

Constructors/initializers

 DefaultSpmdVector ()
 Construct to uninitialized. More...
 
 DefaultSpmdVector (const RCP< const SpmdVectorSpaceBase< Scalar > > &spmdSpace, const ArrayRCP< Scalar > &localValues, const Ordinal stride)
 Calls initialize(). More...
 
void initialize (const RCP< const SpmdVectorSpaceBase< Scalar > > &spmdSpace, const ArrayRCP< Scalar > &localValues, const Ordinal stride)
 Initialize. More...
 
void uninitialize (RCP< const SpmdVectorSpaceBase< Scalar > > *spmdSpace=NULL, ArrayRCP< Scalar > *localValues=NULL, Ordinal *stride=NULL)
 Set to an uninitialized state. More...
 

Accessors (inlined for minimal overhead)

ArrayRCP< Scalar > getRCPtr ()
 
ArrayRCP< const Scalar > getRCPtr () const
 
Scalar * getPtr ()
 
const Scalar * getPtr () const
 
Ordinal getStride () const
 

Overridden from SpmdMultiVectorBase

RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpaceImpl () const
 

Overridden from SpmdVectorBase

void getNonconstLocalVectorDataImpl (const Ptr< ArrayRCP< Scalar > > &localValues)
 
void getLocalVectorDataImpl (const Ptr< ArrayRCP< const Scalar > > &localValues) const
 

Additional Inherited Members

- Public Member Functions inherited from Thyra::SpmdVectorDefaultBase< Scalar >
virtual void applyOpImplWithComm (const Ptr< const Teuchos::Comm< Ordinal > > &comm, const RTOpPack::RTOpT< Scalar > &op, const ArrayView< const Ptr< const VectorBase< Scalar > > > &vecs, const ArrayView< const Ptr< VectorBase< Scalar > > > &targ_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal global_offset) const
 Implementation of applyOpImpl(...) that uses an input Comm. More...
 
 SpmdVectorDefaultBase ()
 
std::string description () const
 
Teuchos::RCP< const VectorSpaceBase< Scalar > > space () const
 Returns this->spmdSpace(). More...
 
- Public Member Functions inherited from Thyra::SpmdVectorBase< Scalar >
RTOpPack::SubVectorView< Scalar > getNonconstLocalSubVector ()
 Get a non-const generalized view of local vector data. More...
 
RTOpPack::ConstSubVectorView< Scalar > getLocalSubVector () const
 Get a const generalized view of local vector data. More...
 
void getNonconstLocalData (const Ptr< ArrayRCP< Scalar > > &localValues)
 Returns a non-const pointer to the beginning of the local vector data. More...
 
void getLocalData (const Ptr< ArrayRCP< const Scalar > > &localValues) const
 Returns a const pointer to the beginning of the local vector data. More...
 
- Public Member Functions inherited from Thyra::VectorBase< Scalar >
void applyOp (const RTOpPack::RTOpT< Scalar > &op, const ArrayView< const Ptr< const VectorBase< Scalar > > > &vecs, const ArrayView< const Ptr< VectorBase< Scalar > > > &targ_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal global_offset) const
 Calls applyOpImpl(). More...
 
void acquireDetachedView (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 Calls acquireDetachedVectorViewImpl(). More...
 
void releaseDetachedView (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 Calls releaseDetachedVectorViewImpl(). More...
 
void acquireDetachedView (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec)
 Calls acquireNonconstDetachedVectorViewImpl(). More...
 
void commitDetachedView (RTOpPack::SubVectorView< Scalar > *sub_vec)
 Calls commitDetachedView(). More...
 
void setSubVector (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec)
 Calls setSubVectorImpl(). More...
 
- Public Member Functions inherited from Thyra::MultiVectorBase< Scalar >
void assign (Scalar alpha)
 V = alpha. More...
 
RCP< const VectorBase< Scalar > > col (Ordinal j) const
 Calls colImpl(). More...
 
RCP< VectorBase< Scalar > > col (Ordinal j)
 Calls nonconstColImpl(). More...
 
RCP< const MultiVectorBase< Scalar > > subView (const Range1D &colRng) const
 Calls contigSubViewImpl(). More...
 
RCP< MultiVectorBase< Scalar > > subView (const Range1D &colRng)
 Calls nonconstContigSubViewImpl(). More...
 
RCP< const MultiVectorBase< Scalar > > subView (const ArrayView< const int > &cols) const
 nonContigSubViewImpl(). More...
 
RCP< MultiVectorBase< Scalar > > subView (const ArrayView< const int > &cols)
 nonconstNonContigSubViewImpl(). More...
 
void applyOp (const RTOpPack::RTOpT< Scalar > &primary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const ArrayView< const Ptr< RTOpPack::ReductTarget > > &reduct_objs, const Ordinal primary_global_offset) const
 Calls mvMultiReductApplyOpImpl(). More...
 
void applyOp (const RTOpPack::RTOpT< Scalar > &primary_op, const RTOpPack::RTOpT< Scalar > &secondary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal primary_global_offset) const
 mvSingleReductApplyOpImpl(). More...
 
void acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Calls acquireDetachedMultiVectorViewImpl(). More...
 
void releaseDetachedView (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Calls releaseDetachedMultiVectorViewImpl(). More...
 
void acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Calls acquireNonconstDetachedMultiVectorViewImpl(). More...
 
void commitDetachedView (RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Calls commitNonconstDetachedMultiVectorViewImpl(). More...
 
RCP< const LinearOpBase< Scalar > > clone () const
 This function is simply overridden to return this->clone_mv(). More...
 
- Public Member Functions inherited from Thyra::LinearOpBase< Scalar >
bool opSupported (EOpTransp M_trans) const
 Return if the M_trans operation of apply() is supported or not. More...
 
void apply (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
 Apply the linear operator to a multi-vector : Y = alpha*op(M)*X + beta*Y. More...
 
- Public Member Functions inherited from Thyra::RowStatLinearOpBase< Scalar >
bool rowStatIsSupported (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 Determine if a given row stat is supported. More...
 
void getRowStat (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
 Get some statistics about a supported row. More...
 
- Public Member Functions inherited from Thyra::ScaledLinearOpBase< Scalar >
bool supportsScaleLeft () const
 Determines if this objects supports left scaling. More...
 
bool supportsScaleRight () const
 Determines if this objects supports right scaling. More...
 
void scaleLeft (const VectorBase< Scalar > &row_scaling)
 Left scales operator with diagonal scaling operator. More...
 
void scaleRight (const VectorBase< Scalar > &col_scaling)
 Right scales operator with diagonal scaling operator. More...
 
- Public Member Functions inherited from Thyra::SpmdMultiVectorBase< Scalar >
RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpace () const
 Returns the SPMD vector space object for the range of *this multi-vector. More...
 
RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVector ()
 Get a non-const generalized view of local multi-vector data. More...
 
RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVector () const
 Get a const generalized view of local multi-vector data. More...
 
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. More...
 
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. More...
 
- Public Member Functions inherited from Thyra::VectorDefaultBase< Scalar >
virtual void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 Generates a default outputting for all vectors. More...
 
virtual RCP< const VectorSpaceBase< Scalar > > range () const
 Returns this->space(). More...
 
virtual RCP< const VectorSpaceBase< Scalar > > domain () const
 Returns a DefaultSerialVectorSpace object with dimension 1. More...
 
RCP< MultiVectorBase< Scalar > > clone_mv () const
 Returns this->clone_v(). More...
 
RCP< VectorBase< Scalar > > clone_v () const
 Simply creates a new vector and copies the contents from *this. More...
 
- Protected Member Functions inherited from Thyra::SpmdVectorDefaultBase< Scalar >
void applyOpImpl (const RTOpPack::RTOpT< Scalar > &op, const ArrayView< const Ptr< const VectorBase< Scalar > > > &vecs, const ArrayView< const Ptr< VectorBase< Scalar > > > &targ_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal global_offset) const
 Calls applyOpImplWithComm(null,op,...). More...
 
void acquireDetachedVectorViewImpl (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 Implemented through this->getLocalData() More...
 
void releaseDetachedVectorViewImpl (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 Implemented through this->freeLocalData() More...
 
void acquireNonconstDetachedVectorViewImpl (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec)
 Implemented through this->getLocalData() More...
 
void commitNonconstDetachedVectorViewImpl (RTOpPack::SubVectorView< Scalar > *sub_vec)
 Implemented through this->commitLocalData() More...
 
RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVectorImpl ()
 
RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVectorImpl () const
 
void getNonconstLocalMultiVectorDataImpl (const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)
 
void getLocalMultiVectorDataImpl (const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const
 
RTOpPack::SubVectorView< Scalar > getNonconstLocalSubVectorImpl ()
 Virtual implementation for getNonconstLocalSubVector(). More...
 
RTOpPack::ConstSubVectorView< Scalar > getLocalSubVectorImpl () const
 Virtual implementation for getLocalSubVector(). More...
 
virtual void updateSpmdSpace ()
 Subclasses must call this function whenever the structure of the VectorSpaceBase changes. More...
 
- Protected Member Functions inherited from Thyra::SpmdVectorBase< Scalar >
- Protected Member Functions inherited from Thyra::VectorBase< Scalar >
- Protected Member Functions inherited from Thyra::MultiVectorBase< Scalar >
void absRowSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const
 
void absColSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const
 
virtual RCP< const VectorBase< Scalar > > colImpl (Ordinal j) const
 Return a non-changeable view of a constituent column vector. More...
 
virtual bool rowStatIsSupportedImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 
virtual void getRowStatImpl (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
 
virtual bool supportsScaleLeftImpl () const
 
virtual bool supportsScaleRightImpl () const
 
virtual void scaleLeftImpl (const VectorBase< Scalar > &row_scaling)
 
virtual void scaleRightImpl (const VectorBase< Scalar > &col_scaling)
 
- Protected Member Functions inherited from Thyra::LinearOpBase< Scalar >
- Protected Member Functions inherited from Thyra::RowStatLinearOpBase< Scalar >
- Protected Member Functions inherited from Thyra::ScaledLinearOpBase< Scalar >
- Protected Member Functions inherited from Thyra::SpmdMultiVectorBase< Scalar >
- Protected Member Functions inherited from Thyra::VectorDefaultBase< Scalar >
virtual RCP< VectorBase< Scalar > > nonconstColImpl (Ordinal j)
 Returns Teuchos::rcp(this,false). More...
 
virtual RCP< const MultiVectorBase< Scalar > > contigSubViewImpl (const Range1D &col_rng) const
 Returns Teuchos::rcp(this,false). More...
 
virtual RCP< MultiVectorBase< Scalar > > nonconstContigSubViewImpl (const Range1D &col_rng)
 Returns Teuchos::rcp(this,false). More...
 
virtual RCP< const MultiVectorBase< Scalar > > nonContigSubViewImpl (const ArrayView< const int > &cols) const
 Returns Teuchos::rcp(this,false). More...
 
virtual RCP< MultiVectorBase< Scalar > > nonconstNonContigSubViewImpl (const ArrayView< const int > &cols)
 Returns Teuchos::rcp(this,false). More...
 
virtual void acquireDetachedMultiVectorViewImpl (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Implemented in terms of this->acquireDetachedView(). More...
 
virtual void releaseDetachedMultiVectorViewImpl (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Implemented in terms of this->releaseDetachedView(). More...
 
virtual void acquireNonconstDetachedMultiVectorViewImpl (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Implemented in terms of this->acquireDetachedView(). More...
 
virtual void commitNonconstDetachedMultiVectorViewImpl (RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Implemented in terms of this->commitDetachedView(). More...
 
virtual void setSubVectorImpl (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec)
 
bool opSupportedImpl (EOpTransp M_trans) const
 For complex Scalar types returns true for NOTRANS and CONJTRANS and for real types returns true for all values of M_trans. More...
 
void applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
 . Applies vector or its adjoint (transpose) as a linear operator. More...
 
- Protected Member Functions inherited from Thyra::MultiVectorDefaultBase< Scalar >
void assignImpl (Scalar alpha)
 
virtual void mvMultiReductApplyOpImpl (const RTOpPack::RTOpT< Scalar > &primary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const ArrayView< const Ptr< RTOpPack::ReductTarget > > &reduct_objs, const Ordinal primary_global_offset) const
 
virtual void mvSingleReductApplyOpImpl (const RTOpPack::RTOpT< Scalar > &primary_op, const RTOpPack::RTOpT< Scalar > &secondary_op, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &multi_vecs, const ArrayView< const Ptr< MultiVectorBase< Scalar > > > &targ_multi_vecs, const Ptr< RTOpPack::ReductTarget > &reduct_obj, const Ordinal primary_global_offset) const
 
- Protected Member Functions inherited from Thyra::LinearOpDefaultBase< Scalar >
std::string description () const
 Default description that gives the label, type, and dimenstion . More...
 
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 Generates a default outputting for all linear operators. More...
 

Detailed Description

template<class Scalar>
class Thyra::DefaultSpmdVector< Scalar >

Efficient concrete implementation subclass for SPMD vectors.

This subclass provides a very efficient and very general concrete implementation of a Thyra::VectorBase object for any SPMD platform.

Objects of this type generally should not be constructed directly by a client but instead by using the concrete vector space subclass Thyra::DefaultSpmdVectorSpace and using the function Thyra::createMember().

The storage type can be anything since an ArrayRCP is used to pass in the local values pointer into the constructor and initialize().

Definition at line 69 of file Thyra_DefaultSpmdVector_decl.hpp.

Constructor & Destructor Documentation

◆ DefaultSpmdVector() [1/2]

template<class Scalar >
Thyra::DefaultSpmdVector< Scalar >::DefaultSpmdVector ( )

Construct to uninitialized.

Definition at line 58 of file Thyra_DefaultSpmdVector_def.hpp.

◆ DefaultSpmdVector() [2/2]

template<class Scalar >
Thyra::DefaultSpmdVector< Scalar >::DefaultSpmdVector ( const RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdSpace,
const ArrayRCP< Scalar > &  localValues,
const Ordinal  stride 
)

Calls initialize().

Definition at line 64 of file Thyra_DefaultSpmdVector_def.hpp.

Member Function Documentation

◆ initialize()

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::initialize ( const RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdSpace,
const ArrayRCP< Scalar > &  localValues,
const Ordinal  stride 
)

Initialize.

Parameters
spmdSpace[in] Smart pointer to SpmdVectorSpaceBase object that defines the data distribution for spmdSpace() and space().
localValues[in] Smart pointer to beginning of local strided vector data. This array must be at least of dimension mpiRangeSpace->localDim()*stride and (&*localValues)[ i*stride ] gives the local value of the zero-based entry (i) where i=0...spmdSpace()->localSubDim()-1.
stride[in] Stride between local vector elements.

Preconditions:

  • spmdSpace.get()!=NULL
  • localValues.get()!=NULL
  • stride != 0

Postconditions:

  • this->getRCptr().get() == localValues.get()
  • this->getPtr() == &*localValues
  • this->getStride() == stride

Definition at line 75 of file Thyra_DefaultSpmdVector_def.hpp.

◆ uninitialize()

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::uninitialize ( RCP< const SpmdVectorSpaceBase< Scalar > > *  spmdSpace = NULL,
ArrayRCP< Scalar > *  localValues = NULL,
Ordinal stride = NULL 
)

Set to an uninitialized state.

Postconditions:

Definition at line 94 of file Thyra_DefaultSpmdVector_def.hpp.

◆ getRCPtr() [1/2]

template<class Scalar >
ArrayRCP< Scalar > Thyra::DefaultSpmdVector< Scalar >::getRCPtr ( )
inline

Definition at line 182 of file Thyra_DefaultSpmdVector_decl.hpp.

◆ getRCPtr() [2/2]

template<class Scalar >
ArrayRCP< const Scalar > Thyra::DefaultSpmdVector< Scalar >::getRCPtr ( ) const
inline

Definition at line 191 of file Thyra_DefaultSpmdVector_decl.hpp.

◆ getPtr() [1/2]

template<class Scalar >
Scalar * Thyra::DefaultSpmdVector< Scalar >::getPtr ( )
inline

Definition at line 199 of file Thyra_DefaultSpmdVector_decl.hpp.

◆ getPtr() [2/2]

template<class Scalar >
const Scalar * Thyra::DefaultSpmdVector< Scalar >::getPtr ( ) const
inline

Definition at line 207 of file Thyra_DefaultSpmdVector_decl.hpp.

◆ getStride()

template<class Scalar >
Ordinal Thyra::DefaultSpmdVector< Scalar >::getStride ( ) const
inline

Definition at line 215 of file Thyra_DefaultSpmdVector_decl.hpp.

◆ spmdSpaceImpl()

template<class Scalar >
RCP< const SpmdVectorSpaceBase< Scalar > > Thyra::DefaultSpmdVector< Scalar >::spmdSpaceImpl ( ) const
virtual

◆ getNonconstLocalVectorDataImpl()

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::getNonconstLocalVectorDataImpl ( const Ptr< ArrayRCP< Scalar > > &  localValues)
virtual

Implements Thyra::SpmdVectorBase< Scalar >.

Definition at line 127 of file Thyra_DefaultSpmdVector_def.hpp.

◆ getLocalVectorDataImpl()

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::getLocalVectorDataImpl ( const Ptr< ArrayRCP< const Scalar > > &  localValues) const
virtual

Implements Thyra::SpmdVectorBase< Scalar >.

Definition at line 135 of file Thyra_DefaultSpmdVector_def.hpp.


The documentation for this class was generated from the following files: