Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
support
operator_vector
adapter_support
Thyra_SpmdVectorDefaultBase_decl.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4
//
5
// Copyright 2004 NTESS and the Thyra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef THYRA_SPMD_VECTOR_DEFAULT_BASE_DECL_HPP
11
#define THYRA_SPMD_VECTOR_DEFAULT_BASE_DECL_HPP
12
13
14
#include "Thyra_VectorDefaultBase.hpp"
15
#include "Thyra_SpmdVectorBase.hpp"
16
#include "Thyra_SpmdVectorSpaceDefaultBase_decl.hpp"
17
18
19
//#define THYRA_SPMD_VECTOR_BASE_DUMP
20
21
22
namespace
Thyra {
23
24
57
template
<
class
Scalar>
58
class
SpmdVectorDefaultBase
59
:
virtual
public
SpmdVectorBase
<Scalar>,
60
virtual
public
VectorDefaultBase
<Scalar>
61
{
62
public
:
63
66
68
SpmdVectorDefaultBase
();
69
71
77
virtual
void
applyOpImplWithComm
(
78
const
Ptr
<
const
Teuchos::Comm<Ordinal>
> &comm,
79
const
RTOpPack::RTOpT<Scalar>
&op,
80
const
ArrayView
<
const
Ptr
<
const
VectorBase<Scalar>
> > &vecs,
81
const
ArrayView
<
const
Ptr
<
VectorBase<Scalar>
> > &targ_vecs,
82
const
Ptr<RTOpPack::ReductTarget>
&reduct_obj,
83
const
Ordinal global_offset
84
)
const
;
85
87
90
91
std::string
description
()
const
;
93
96
98
Teuchos::RCP<const VectorSpaceBase<Scalar>
>
space
()
const
;
99
101
102
protected
:
103
106
108
void
applyOpImpl
(
109
const
RTOpPack::RTOpT<Scalar>
&op,
110
const
ArrayView
<
const
Ptr
<
const
VectorBase<Scalar>
> > &vecs,
111
const
ArrayView
<
const
Ptr
<
VectorBase<Scalar>
> > &targ_vecs,
112
const
Ptr<RTOpPack::ReductTarget>
&reduct_obj,
113
const
Ordinal global_offset
114
)
const
;
116
void
acquireDetachedVectorViewImpl
(
117
const
Range1D
& rng,
RTOpPack::ConstSubVectorView<Scalar>
* sub_vec
118
)
const
;
120
void
releaseDetachedVectorViewImpl
(
121
RTOpPack::ConstSubVectorView<Scalar>
* sub_vec
122
)
const
;
124
void
acquireNonconstDetachedVectorViewImpl
(
125
const
Range1D
& rng,
RTOpPack::SubVectorView<Scalar>
* sub_vec
126
);
128
void
commitNonconstDetachedVectorViewImpl
(
129
RTOpPack::SubVectorView<Scalar>
* sub_vec
130
);
131
133
136
137
RTOpPack::SubMultiVectorView<Scalar>
getNonconstLocalSubMultiVectorImpl
();
139
RTOpPack::ConstSubMultiVectorView<Scalar>
getLocalSubMultiVectorImpl
()
const
;
141
void
getNonconstLocalMultiVectorDataImpl
(
142
const
Ptr
<
ArrayRCP<Scalar>
> &localValues,
const
Ptr<Ordinal>
&leadingDim);
144
void
getLocalMultiVectorDataImpl
(
145
const
Ptr
<
ArrayRCP<const Scalar>
> &localValues,
const
Ptr<Ordinal>
&leadingDim)
const
;
147
150
151
RTOpPack::SubVectorView<Scalar>
getNonconstLocalSubVectorImpl
();
153
RTOpPack::ConstSubVectorView<Scalar>
getLocalSubVectorImpl
()
const
;
155
158
162
virtual
void
updateSpmdSpace
();
163
165
166
private
:
167
168
// ///////////////////////////////////////
169
// Private data members
170
171
// Cached (only on vector space!)
172
mutable
Ordinal globalDim_;
173
mutable
Ordinal localOffset_;
174
mutable
Ordinal localSubDim_;
175
176
// /////////////////////////////////////
177
// Private member functions
178
179
Range1D
validateRange(
const
Range1D
& rng_in )
const
;
180
181
#ifdef THYRA_SPMD_VECTOR_BASE_DUMP
182
public
:
183
static
bool
show_dump;
184
#endif
// THYRA_SPMD_VECTOR_BASE_DUMP
185
186
};
// end class SpmdVectorDefaultBase
187
188
189
}
// end namespace Thyra
190
191
192
#endif
// THYRA_SPMD_VECTOR_DEFAULT_BASE_DECL_HPP
RTOpPack::ConstSubMultiVectorView
RTOpPack::ConstSubVectorView
RTOpPack::RTOpT
RTOpPack::SubMultiVectorView
RTOpPack::SubVectorView
Teuchos::ArrayRCP
Teuchos::ArrayView
Teuchos::Comm
Teuchos::Ptr
Teuchos::RCP
Thyra::SpmdVectorBase
Base class for SPMD vectors that can provide views of contiguous elements in a process.
Definition
Thyra_SpmdVectorBase.hpp:37
Thyra::SpmdVectorDefaultBase::getNonconstLocalSubMultiVectorImpl
RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVectorImpl()
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:308
Thyra::SpmdVectorDefaultBase::getLocalMultiVectorDataImpl
void getLocalMultiVectorDataImpl(const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:351
Thyra::SpmdVectorDefaultBase::applyOpImpl
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,...).
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:150
Thyra::SpmdVectorDefaultBase::acquireNonconstDetachedVectorViewImpl
void acquireNonconstDetachedVectorViewImpl(const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec)
Implemented through this->getLocalData().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:234
Thyra::SpmdVectorDefaultBase::releaseDetachedVectorViewImpl
void releaseDetachedVectorViewImpl(RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
Implemented through this->freeLocalData().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:208
Thyra::SpmdVectorDefaultBase::SpmdVectorDefaultBase
SpmdVectorDefaultBase()
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:37
Thyra::SpmdVectorDefaultBase::acquireDetachedVectorViewImpl
void acquireDetachedVectorViewImpl(const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
Implemented through this->getLocalData().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:164
Thyra::SpmdVectorDefaultBase::description
std::string description() const
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:122
Thyra::SpmdVectorDefaultBase::commitNonconstDetachedVectorViewImpl
void commitNonconstDetachedVectorViewImpl(RTOpPack::SubVectorView< Scalar > *sub_vec)
Implemented through this->commitLocalData().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:278
Thyra::SpmdVectorDefaultBase::updateSpmdSpace
virtual void updateSpmdSpace()
Subclasses must call this function whenever the structure of the VectorSpaceBase changes.
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:396
Thyra::SpmdVectorDefaultBase::getLocalSubMultiVectorImpl
RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVectorImpl() const
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:325
Thyra::SpmdVectorDefaultBase::getNonconstLocalMultiVectorDataImpl
void getNonconstLocalMultiVectorDataImpl(const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:342
Thyra::SpmdVectorDefaultBase::applyOpImplWithComm
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.
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:45
Thyra::SpmdVectorDefaultBase::getNonconstLocalSubVectorImpl
RTOpPack::SubVectorView< Scalar > getNonconstLocalSubVectorImpl()
Virtual implementation for getNonconstLocalSubVector().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:364
Thyra::SpmdVectorDefaultBase::space
Teuchos::RCP< const VectorSpaceBase< Scalar > > space() const
Returns this->spmdSpace().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:137
Thyra::SpmdVectorDefaultBase::getLocalSubVectorImpl
RTOpPack::ConstSubVectorView< Scalar > getLocalSubVectorImpl() const
Virtual implementation for getLocalSubVector().
Definition
Thyra_SpmdVectorDefaultBase_def.hpp:379
Thyra::VectorBase
Abstract interface for finite-dimensional dense vectors.
Definition
Thyra_VectorBase.hpp:115
Thyra::VectorDefaultBase
Convenient node subclass for concrete VectorBase subclasses that relies on a default MultiVectorBase ...
Definition
Thyra_VectorDefaultBase_decl.hpp:44
Thyra::Range1D
Teuchos::Range1D Range1D
Definition
Thyra_OperatorVectorTypes.hpp:65
Generated by
1.17.0