43 #ifndef THYRA_TPETRA_VECTOR_SPACE_DECL_HPP 44 #define THYRA_TPETRA_VECTOR_SPACE_DECL_HPP 47 #include "Thyra_SpmdVectorSpaceDefaultBase.hpp" 48 #include "Tpetra_Map.hpp" 58 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
70 static RCP<TpetraVectorSpace<Scalar,LocalOrdinal,GlobalOrdinal,Node> >
create();
74 const RCP<
const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > &tpetraMap
88 RCP< const VectorSpaceBase<Scalar> >
clone()
const;
97 RCP<VectorBase<Scalar> >
100 RCP<MultiVectorBase<Scalar> >
106 const ArrayView<Scalar> &scalarProds_out)
const;
116 RCP<const Teuchos::Comm<Ordinal> >
getComm()
const;
127 RCP<const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > tpetraMap_;
134 RCP<const Teuchos::Comm<Ordinal> > comm_;
135 RCP<this_t> weakSelfPtr_;
149 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
150 RCP<TpetraVectorSpace<Scalar,LocalOrdinal,GlobalOrdinal,Node> >
152 const RCP<
const Tpetra::Map<LocalOrdinal,GlobalOrdinal,Node> > &tpetraMap
155 RCP<TpetraVectorSpace<Scalar,LocalOrdinal,GlobalOrdinal,Node> > vs =
157 vs->initialize(tpetraMap);
165 #endif // THYRA_TPETRA_VECTOR_SPACE_DECL_HPP RCP< VectorBase< Scalar > > createMember() const
RCP< const VectorSpaceBase< Scalar > > clone() const
Concrete implementation of an SPMD vector space for Tpetra.
Base VectorSpaceBase class for all SPMD vector spaces with contiguous local-to-global indexing...
RCP< TpetraVectorSpace< Scalar, LocalOrdinal, GlobalOrdinal, Node > > tpetraVectorSpace(const RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > &tpetraMap)
Nonmember consturctor that creats a serial vector space.
RCP< const Teuchos::Comm< Ordinal > > getComm() const
static RCP< TpetraVectorSpace< Scalar, LocalOrdinal, GlobalOrdinal, Node > > create()
Create with weak ownership to self.
void initialize(const RCP< const Tpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > &tpetraMap)
Initialize a serial space.
EViewType
Determines if a view is a direct view of data or a detached copy of data.
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
Ordinal localSubDim() const
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
Interface for a collection of column vectors called a multi-vector.
bool hasInCoreView(const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
Returns true if all the elements in rng are in this process.
TpetraVectorSpace< Scalar, LocalOrdinal, GlobalOrdinal, Node > this_t
void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Calls getScalarProd()->scalarProds(X,Y,scalar_prods)
EStrideType
Determine if data is unit stride or non-unit stride.