Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
support
operator_vector
adapter_support
Thyra_DefaultSpmdVectorSpace_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_DEFAULT_SPMD_VECTOR_SPACE_DECL_HPP
11
#define THYRA_DEFAULT_SPMD_VECTOR_SPACE_DECL_HPP
12
13
14
#include "Thyra_SpmdVectorSpaceDefaultBase_decl.hpp"
15
#include "Thyra_ProductVectorSpaceBase.hpp"
16
17
18
namespace
Thyra {
19
20
35
template
<
class
Scalar>
36
class
DefaultSpmdVectorSpace
37
:
public
SpmdVectorSpaceDefaultBase
<Scalar>
38
{
39
public
:
40
43
45
static
RCP<DefaultSpmdVectorSpace<Scalar>
>
create
();
46
54
void
initialize
(
const
Ordinal
dim
);
55
110
void
initialize
(
111
const
RCP
<
const
Teuchos::Comm<Ordinal>
> &comm,
112
const
Ordinal
localSubDim
,
const
Ordinal globalDim,
113
const
bool
isLocallyReplicated
=
false
114
);
115
124
void
uninitialize
();
125
127
130
133
bool
hasInCoreView
(
134
const
Range1D
& rng,
const
EViewType
viewType,
const
EStrideType
strideType
135
)
const
;
137
RCP< const VectorSpaceBase<Scalar>
>
clone
()
const
;
139
140
protected
:
141
144
146
RCP<VectorBase<Scalar>
>
147
createMember
()
const
;
149
RCP<MultiVectorBase<Scalar>
>
150
createMembers
(
int
numMembers)
const
;
152
RCP<VectorBase<Scalar>
>
153
createMemberView
(
const
RTOpPack::SubVectorView<Scalar>
&raw_v )
const
;
155
RCP<const VectorBase<Scalar>
>
156
createMemberView
(
const
RTOpPack::ConstSubVectorView<Scalar>
&raw_v )
const
;
158
RCP<MultiVectorBase<Scalar>
>
159
createMembersView
(
const
RTOpPack::SubMultiVectorView<Scalar>
&raw_mv )
const
;
161
RCP<const MultiVectorBase<Scalar>
>
162
createMembersView
(
const
RTOpPack::ConstSubMultiVectorView<Scalar>
&raw_mv )
const
;
163
165
166
public
:
167
170
172
RCP<const Teuchos::Comm<Ordinal>
>
getComm
()
const
;
174
Ordinal
localSubDim
()
const
;
175
177
178
private
:
179
180
// //////////////////////////////////////
181
// Private data members
182
183
RCP<const Teuchos::Comm<Ordinal>
> comm_;
184
Ordinal localSubDim_;
185
int
numProc_;
186
int
procRank_;
187
RCP<DefaultSpmdVectorSpace<Scalar>
> weakSelfPtr_;
188
189
// /////////////////////////////////////
190
// Private member functions
191
192
DefaultSpmdVectorSpace();
193
194
public
:
195
196
};
// end class DefaultSpmdVectorSpace
197
198
203
template
<
class
Scalar>
204
RCP<DefaultSpmdVectorSpace<Scalar>
>
205
defaultSpmdVectorSpace
()
206
{
207
return
DefaultSpmdVectorSpace<Scalar>::create
();
208
}
209
210
215
template
<
class
Scalar>
216
RCP<DefaultSpmdVectorSpace<Scalar>
>
217
defaultSpmdVectorSpace
(
const
Ordinal
dim
)
218
{
219
RCP<DefaultSpmdVectorSpace<Scalar>
> vs =
220
DefaultSpmdVectorSpace<Scalar>::create
();
221
vs->initialize(
dim
);
222
return
vs;
223
}
224
225
231
template
<
class
Scalar>
232
RCP<DefaultSpmdVectorSpace<Scalar>
>
233
defaultSpmdVectorSpace
(
234
const
RCP
<
const
Teuchos::Comm<Ordinal>
> &comm,
235
const
Ordinal
localSubDim
,
const
Ordinal globalDim,
236
const
bool
isLocallyReplicated
=
false
237
)
238
{
239
RCP<DefaultSpmdVectorSpace<Scalar>
> vs =
240
DefaultSpmdVectorSpace<Scalar>::create
();
241
vs->initialize(comm,
localSubDim
, globalDim,
isLocallyReplicated
);
242
return
vs;
243
}
244
245
251
template
<
class
Scalar>
252
RCP<DefaultSpmdVectorSpace<Scalar>
>
253
locallyReplicatedDefaultSpmdVectorSpace
(
254
const
RCP
<
const
Teuchos::Comm<Ordinal>
> &comm,
255
const
Ordinal globalDim
256
)
257
{
258
RCP<DefaultSpmdVectorSpace<Scalar>
> vs =
259
DefaultSpmdVectorSpace<Scalar>::create
();
260
vs->initialize(comm, globalDim, globalDim,
true
);
261
return
vs;
262
}
263
264
265
}
// end namespace Thyra
266
267
268
#endif
// THYRA_DEFAULT_SPMD_VECTOR_SPACE_DECL_HPP
RTOpPack::ConstSubMultiVectorView
RTOpPack::ConstSubVectorView
RTOpPack::SubMultiVectorView
RTOpPack::SubVectorView
Teuchos::Comm
Teuchos::RCP
Thyra::DefaultSpmdVectorSpace::getComm
RCP< const Teuchos::Comm< Ordinal > > getComm() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:217
Thyra::DefaultSpmdVectorSpace::hasInCoreView
bool hasInCoreView(const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
Returns true if all the elements in rng are in this process.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:193
Thyra::DefaultSpmdVectorSpace::defaultSpmdVectorSpace
RCP< DefaultSpmdVectorSpace< Scalar > > defaultSpmdVectorSpace()
Nonmember consturctor that creats an uninitialized vector space.
Definition
Thyra_DefaultSpmdVectorSpace_decl.hpp:205
Thyra::DefaultSpmdVectorSpace::defaultSpmdVectorSpace
RCP< DefaultSpmdVectorSpace< Scalar > > defaultSpmdVectorSpace(const Ordinal dim)
Nonmember consturctor that creats a serial vector space.
Definition
Thyra_DefaultSpmdVectorSpace_decl.hpp:217
Thyra::DefaultSpmdVectorSpace::defaultSpmdVectorSpace
RCP< DefaultSpmdVectorSpace< Scalar > > defaultSpmdVectorSpace(const RCP< const Teuchos::Comm< Ordinal > > &comm, const Ordinal localSubDim, const Ordinal globalDim, const bool isLocallyReplicated=false)
Nonmember consturctor function that creates a distributed or locally-replicated parallel vector space...
Definition
Thyra_DefaultSpmdVectorSpace_decl.hpp:233
Thyra::DefaultSpmdVectorSpace::createMembers
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:97
Thyra::DefaultSpmdVectorSpace::locallyReplicatedDefaultSpmdVectorSpace
RCP< DefaultSpmdVectorSpace< Scalar > > locallyReplicatedDefaultSpmdVectorSpace(const RCP< const Teuchos::Comm< Ordinal > > &comm, const Ordinal globalDim)
Nonmember consturctor function that creates a locally-replicated parallel vector space.
Definition
Thyra_DefaultSpmdVectorSpace_decl.hpp:253
Thyra::DefaultSpmdVectorSpace::localSubDim
Ordinal localSubDim() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:224
Thyra::DefaultSpmdVectorSpace::create
static RCP< DefaultSpmdVectorSpace< Scalar > > create()
Create with weak ownership to self.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:26
Thyra::DefaultSpmdVectorSpace::clone
RCP< const VectorSpaceBase< Scalar > > clone() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:205
Thyra::DefaultSpmdVectorSpace::createMembersView
RCP< MultiVectorBase< Scalar > > createMembersView(const RTOpPack::SubMultiVectorView< Scalar > &raw_mv) const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:150
Thyra::DefaultSpmdVectorSpace::initialize
void initialize(const Ordinal dim)
Initialize a serial space.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:35
Thyra::DefaultSpmdVectorSpace::createMemberView
RCP< VectorBase< Scalar > > createMemberView(const RTOpPack::SubVectorView< Scalar > &raw_v) const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:112
Thyra::DefaultSpmdVectorSpace::createMember
RCP< VectorBase< Scalar > > createMember() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:80
Thyra::DefaultSpmdVectorSpace::uninitialize
void uninitialize()
Set to an uninitialized state.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:68
Thyra::SpmdVectorSpaceDefaultBase::isLocallyReplicated
bool isLocallyReplicated() const
Returns true if vector space is locally replicated space.
Definition
Thyra_SpmdVectorSpaceDefaultBase_def.hpp:48
Thyra::SpmdVectorSpaceDefaultBase::SpmdVectorSpaceDefaultBase
SpmdVectorSpaceDefaultBase()
Definition
Thyra_SpmdVectorSpaceDefaultBase_def.hpp:24
Thyra::SpmdVectorSpaceDefaultBase::dim
Ordinal dim() const
Returns the sum of the local number of elements on every process.
Definition
Thyra_SpmdVectorSpaceDefaultBase_def.hpp:80
Thyra::EStrideType
EStrideType
Determine if data is unit stride or non-unit stride.
Definition
Thyra_OperatorVectorTypes.hpp:287
Thyra::EViewType
EViewType
Determines if a view is a direct view of data or a detached copy of data.
Definition
Thyra_OperatorVectorTypes.hpp:277
Thyra::Range1D
Teuchos::Range1D Range1D
Definition
Thyra_OperatorVectorTypes.hpp:65
Generated by
1.17.0