42#ifndef THYRA_DETACHED_SPMD_VECTOR_VIEW_HPP
43#define THYRA_DETACHED_SPMD_VECTOR_VIEW_HPP
46#include "Thyra_SpmdVectorBase.hpp"
47#include "Teuchos_Assert.hpp"
67 using Teuchos::rcp_dynamic_cast;
70 rcp_dynamic_cast<const SpmdVectorBase<Scalar> >(v,
true);
72 sv_ = spmd_v->getLocalSubVector();
84 {
if (!is_null(v_))
return v_->spmdSpace();
return Teuchos::null; }
96 const Scalar&
operator[](Teuchos_Ordinal i)
const {
return sv_[i]; }
98 const Scalar&
operator()(Teuchos_Ordinal i)
const {
return sv_(i); }
118template<
class Scalar>
124 using Teuchos::rcp_dynamic_cast;
127 rcp_dynamic_cast<SpmdVectorBase<Scalar> >(v,
true);
129 sv_ = spmd_v->getNonconstLocalSubVector();
141 {
if (!is_null(v_))
return v_->spmdSpace();
return Teuchos::null; }
153 Scalar&
operator[](Teuchos_Ordinal i)
const {
return sv_[i]; }
155 Scalar&
operator()(Teuchos_Ordinal i)
const {
return sv_(i); }
Ordinal globalOffset() const
const ArrayRCP< const Scalar > values() const
const ArrayRCP< Scalar > values() const
Create an explicit detached non-mutable (const) view of all of the local elements on this process of ...
~ConstDetachedSpmdVectorView()
const RTOpPack::ConstSubVectorView< Scalar > & sv() const
const ArrayRCP< const Scalar > values() const
const Scalar & operator[](Teuchos_Ordinal i) const
const Scalar & operator()(Teuchos_Ordinal i) const
Teuchos_Ordinal subDim() const
const RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpace() const
ConstDetachedSpmdVectorView(const Teuchos::RCP< const VectorBase< Scalar > > &v)
Teuchos_Ordinal globalOffset() const
Create an explicit detached mutable (non-const) view of all of the local elements on this process of ...
Teuchos_Ordinal globalOffset() const
DetachedSpmdVectorView(const Teuchos::RCP< VectorBase< Scalar > > &v)
Scalar & operator()(Teuchos_Ordinal i) const
const RTOpPack::SubVectorView< Scalar > & sv() const
Scalar & operator[](Teuchos_Ordinal i) const
const ArrayRCP< const Scalar > values() const
Teuchos_Ordinal subDim() const
~DetachedSpmdVectorView()
const RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpace() const
Abstract interface for finite-dimensional dense vectors.