Thyra Version of the Day
Loading...
Searching...
No Matches

Concrete implementation of a clustered Spmd-based product vector. More...

#include <Thyra_DefaultClusteredSpmdProductVector_decl.hpp>

Inheritance diagram for Thyra::DefaultClusteredSpmdProductVector< Scalar >:

Overridden protected members from VectorBase

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

Constructors/initializers/accessors

 DefaultClusteredSpmdProductVector ()
 Constructs to uninitialized (see postconditions for uninitialize()).
 DefaultClusteredSpmdProductVector (const Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > &productSpace, const Teuchos::RCP< VectorBase< Scalar > > vecs[])
 Constructs to initialized (calls initialize()).
void initialize (const Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > &productSpace, const Teuchos::RCP< VectorBase< Scalar > > vecs[])
 Initialize.
void uninitialize (Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > *productSpace=NULL, Teuchos::RCP< VectorBase< Scalar > > vecs[]=NULL)
 Uninitialize.

Overridden from ProductVectorBase

Teuchos::RCP< VectorBase< Scalar > > getNonconstVectorBlock (const int k)
Teuchos::RCP< const VectorBase< Scalar > > getVectorBlock (const int k) const

Overridden from ProductMultiVectorBase

Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productSpace () const
bool blockIsConst (const int k) const
Teuchos::RCP< MultiVectorBase< Scalar > > getNonconstMultiVectorBlock (const int k)
Teuchos::RCP< const MultiVectorBase< Scalar > > getMultiVectorBlock (const int k) const

Overridden from VectorBase

Teuchos::RCP< const VectorSpaceBase< Scalar > > space () const

Additional Inherited Members

void assign (const VectorBase< Scalar > &x)
 Vector assignment:
void randomize (Scalar l, Scalar u)
 Random vector generation:
void update (Scalar alpha, const VectorBase< Scalar > &x)
 AXPY:
void linear_combination (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const VectorBase< Scalar > > > &x, const Scalar &beta)
 Linear combination:
Scalar dot (const VectorBase< Scalar > &x) const
 Euclidean dot product: result = x^H * this.
Teuchos::ScalarTraits< Scalar >::magnitudeType norm_1 () const
 One (1) norm: result = ||v||1.
Teuchos::ScalarTraits< Scalar >::magnitudeType norm_2 () const
 Euclidean (2) norm: result = ||v||2.
Teuchos::ScalarTraits< Scalar >::magnitudeType norm_2 (const VectorBase< Scalar > &x) const
 Weighted Euclidean (2) norm: result = ||v||2.
Teuchos::ScalarTraits< Scalar >::magnitudeType norm_inf () const
 Infinity norm: result = ||v||inf.
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().
void acquireDetachedView (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 Calls acquireDetachedVectorViewImpl().
void releaseDetachedView (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 Calls releaseDetachedVectorViewImpl().
void acquireDetachedView (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec)
 Calls acquireNonconstDetachedVectorViewImpl().
void commitDetachedView (RTOpPack::SubVectorView< Scalar > *sub_vec)
 Calls commitDetachedView().
void setSubVector (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec)
 Calls setSubVectorImpl().
void assign (Scalar alpha)
 V = alpha.
void assign (const MultiVectorBase< Scalar > &mv)
 V = mv.
void scale (Scalar alpha)
void update (Scalar alpha, const MultiVectorBase< Scalar > &mv)
void linear_combination (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &mv, const Scalar &beta)
 Y.col(j)(i) = beta*Y.col(j)(i) + sum( alpha[k]*X[k].col(j)(i),
void dots (const MultiVectorBase< Scalar > &mv, const ArrayView< Scalar > &prods) const
 Column-wise Euclidean dot product.
void norms_1 (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const
 Column-wise 1-norms.
void norms_2 (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const
 Column-wise 2-norms.
void norms_inf (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const
 Column-wise infinity-norms.
RCP< const VectorBase< Scalar > > col (Ordinal j) const
 Calls colImpl().
RCP< VectorBase< Scalar > > col (Ordinal j)
 Calls nonconstColImpl().
RCP< const MultiVectorBase< Scalar > > subView (const Range1D &colRng) const
 Calls contigSubViewImpl().
RCP< MultiVectorBase< Scalar > > subView (const Range1D &colRng)
 Calls nonconstContigSubViewImpl().
RCP< const MultiVectorBase< Scalar > > subView (const ArrayView< const int > &cols) const
 nonContigSubViewImpl().
RCP< MultiVectorBase< Scalar > > subView (const ArrayView< const int > &cols)
 nonconstNonContigSubViewImpl().
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().
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().
void acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Calls acquireDetachedMultiVectorViewImpl().
void releaseDetachedView (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Calls releaseDetachedMultiVectorViewImpl().
void acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Calls acquireNonconstDetachedMultiVectorViewImpl().
void commitDetachedView (RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Calls commitNonconstDetachedMultiVectorViewImpl().
RCP< const LinearOpBase< Scalar > > clone () const
 This function is simply overridden to return this->clone_mv().
bool opSupported (EOpTransp M_trans) const
 Return if the M_trans operation of apply() is supported or not.
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.
bool rowStatIsSupported (const RowStatLinearOpBaseUtils::ERowStat rowStat) const
 Determine if a given row stat is supported.
void getRowStat (const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
 Get some statistics about a supported row.
bool supportsScaleLeft () const
 Determines if this objects supports left scaling.
bool supportsScaleRight () const
 Determines if this objects supports right scaling.
void scaleLeft (const VectorBase< Scalar > &row_scaling)
 Left scales operator with diagonal scaling operator.
void scaleRight (const VectorBase< Scalar > &col_scaling)
 Right scales operator with diagonal scaling operator.
virtual RCP< const VectorBase< Scalar > > colImpl (Ordinal j) const
 Return a non-changeable view of a constituent column vector.
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)
void absRowSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const
void absColSum (const Teuchos::Ptr< Thyra::VectorBase< Scalar > > &output) const
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.
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.
virtual void assignVecImpl (const VectorBase< Scalar > &x)
 Default implementation of assign(vector) using RTOps.
virtual void randomizeImpl (Scalar l, Scalar u)
 Default implementation of randomize using RTOps.
virtual void absImpl (const VectorBase< Scalar > &x)
 Default implementation of abs using RTOps.
virtual void reciprocalImpl (const VectorBase< Scalar > &x)
 Default implementation of reciprocal using RTOps.
virtual void eleWiseScaleImpl (const VectorBase< Scalar > &x)
 Default implementation of ele_wise_scale using RTOps.
virtual void updateVecImpl (Scalar alpha, const VectorBase< Scalar > &x)
 Default implementation of update using RTOps.
virtual void linearCombinationVecImpl (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const VectorBase< Scalar > > > &x, const Scalar &beta)
 Default implementation of linear_combination using RTOps.
virtual Scalar dotImpl (const VectorBase< Scalar > &x) const
 Default implementation of dot using RTOps.
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType norm1Impl () const
 Default implementation of norm_1 using RTOps.
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType norm2Impl () const
 Default implementation of norm_2 using RTOps.
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType norm2WeightedImpl (const VectorBase< Scalar > &x) const
 Default implementation of norm_2 (weighted) using RTOps.
virtual Teuchos::ScalarTraits< Scalar >::magnitudeType normInfImpl () const
 Default implementation of norm_inf using RTOps.
virtual RCP< VectorBase< Scalar > > nonconstColImpl (Ordinal j)
 Returns Teuchos::rcp(this,false).
virtual RCP< const MultiVectorBase< Scalar > > contigSubViewImpl (const Range1D &col_rng) const
 Returns Teuchos::rcp(this,false).
virtual RCP< MultiVectorBase< Scalar > > nonconstContigSubViewImpl (const Range1D &col_rng)
 Returns Teuchos::rcp(this,false).
virtual RCP< const MultiVectorBase< Scalar > > nonContigSubViewImpl (const ArrayView< const int > &cols) const
 Returns Teuchos::rcp(this,false).
virtual RCP< MultiVectorBase< Scalar > > nonconstNonContigSubViewImpl (const ArrayView< const int > &cols)
 Returns Teuchos::rcp(this,false).
virtual void acquireDetachedMultiVectorViewImpl (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Implemented in terms of this->acquireDetachedView().
virtual void releaseDetachedMultiVectorViewImpl (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Implemented in terms of this->releaseDetachedView().
virtual void acquireNonconstDetachedMultiVectorViewImpl (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Implemented in terms of this->acquireDetachedView().
virtual void commitNonconstDetachedMultiVectorViewImpl (RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Implemented in terms of this->commitDetachedView().
virtual void acquireDetachedVectorViewImpl (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
virtual void releaseDetachedVectorViewImpl (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
virtual void acquireNonconstDetachedVectorViewImpl (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec)
virtual void commitNonconstDetachedVectorViewImpl (RTOpPack::SubVectorView< Scalar > *sub_vec)
virtual void setSubVectorImpl (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec)
virtual std::string description () const
 Default description that gives the label, type, and dimenstion .
virtual void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 Generates a default outputting for all vectors.
virtual RCP< const VectorSpaceBase< Scalar > > range () const
 Returns this->space().
virtual RCP< const VectorSpaceBase< Scalar > > domain () const
 Returns a DefaultSerialVectorSpace object with dimension 1.
RCP< MultiVectorBase< Scalar > > clone_mv () const
 Returns this->clone_v().
RCP< VectorBase< Scalar > > clone_v () const
 Simply creates a new vector and copies the contents from *this.
virtual void assignImpl (Scalar alpha)
 Default implementation of assign(scalar) using RTOps.
virtual void assignMultiVecImpl (const MultiVectorBase< Scalar > &mv)
 Default implementation of assign(MV) using RTOps.
virtual void scaleImpl (Scalar alpha)
 Default implementation of scale using RTOps.
virtual void updateImpl (Scalar alpha, const MultiVectorBase< Scalar > &mv)
 Default implementation of update using RTOps.
virtual void linearCombinationImpl (const ArrayView< const Scalar > &alpha, const ArrayView< const Ptr< const MultiVectorBase< Scalar > > > &mv, const Scalar &beta)
 Default implementation of linear_combination using RTOps.
virtual void dotsImpl (const MultiVectorBase< Scalar > &mv, const ArrayView< Scalar > &prods) const
 Default implementation of dots using RTOps.
virtual void norms1Impl (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const
 Default implementation of norms_1 using RTOps.
virtual void norms2Impl (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const
 Default implementation of norms_2 using RTOps.
virtual void normsInfImpl (const ArrayView< typename ScalarTraits< Scalar >::magnitudeType > &norms) const
 Default implementation of norms_inf using RTOps.
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

Detailed Description

template<class Scalar>
class Thyra::DefaultClusteredSpmdProductVector< Scalar >

Concrete implementation of a clustered Spmd-based product vector.

ToDo: Finish documentation!

The default constructor is made private to avoid accidental default construction.

Definition at line 31 of file Thyra_DefaultClusteredSpmdProductVector_decl.hpp.

Constructor & Destructor Documentation

◆ DefaultClusteredSpmdProductVector() [1/2]

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

Constructs to uninitialized (see postconditions for uninitialize()).

Definition at line 30 of file Thyra_DefaultClusteredSpmdProductVector_def.hpp.

◆ DefaultClusteredSpmdProductVector() [2/2]

template<class Scalar>
Thyra::DefaultClusteredSpmdProductVector< Scalar >::DefaultClusteredSpmdProductVector ( const Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > & productSpace,
const Teuchos::RCP< VectorBase< Scalar > > vecs[] )

Constructs to initialized (calls initialize()).

Definition at line 37 of file Thyra_DefaultClusteredSpmdProductVector_def.hpp.

Member Function Documentation

◆ initialize()

template<class Scalar>
void Thyra::DefaultClusteredSpmdProductVector< Scalar >::initialize ( const Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > & productSpace,
const Teuchos::RCP< VectorBase< Scalar > > vecs[] )

Initialize.

ToDo: Finish documentation.

Definition at line 47 of file Thyra_DefaultClusteredSpmdProductVector_def.hpp.

◆ uninitialize()

template<class Scalar>
void Thyra::DefaultClusteredSpmdProductVector< Scalar >::uninitialize ( Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > * productSpace = NULL,
Teuchos::RCP< VectorBase< Scalar > > vecs[] = NULL )

Uninitialize.

ToDo: Finish documentation.

Definition at line 67 of file Thyra_DefaultClusteredSpmdProductVector_def.hpp.

◆ getNonconstVectorBlock()

template<class Scalar>
Teuchos::RCP< VectorBase< Scalar > > Thyra::DefaultClusteredSpmdProductVector< Scalar >::getNonconstVectorBlock ( const int k)
virtual

◆ getVectorBlock()

template<class Scalar>
Teuchos::RCP< const VectorBase< Scalar > > Thyra::DefaultClusteredSpmdProductVector< Scalar >::getVectorBlock ( const int k) const
virtual

◆ productSpace()

template<class Scalar>
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > Thyra::DefaultClusteredSpmdProductVector< Scalar >::productSpace ( ) const
virtual

◆ blockIsConst()

template<class Scalar>
bool Thyra::DefaultClusteredSpmdProductVector< Scalar >::blockIsConst ( const int k) const
virtual

◆ getNonconstMultiVectorBlock()

template<class Scalar>
Teuchos::RCP< MultiVectorBase< Scalar > > Thyra::DefaultClusteredSpmdProductVector< Scalar >::getNonconstMultiVectorBlock ( const int k)
virtual

◆ getMultiVectorBlock()

template<class Scalar>
Teuchos::RCP< const MultiVectorBase< Scalar > > Thyra::DefaultClusteredSpmdProductVector< Scalar >::getMultiVectorBlock ( const int k) const
virtual

◆ space()

template<class Scalar>
Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultClusteredSpmdProductVector< Scalar >::space ( ) const
virtual

◆ applyOpImpl()

template<class Scalar>
void Thyra::DefaultClusteredSpmdProductVector< Scalar >::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
protectedvirtual

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