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
//
4
// Thyra: Interfaces and Support for Abstract Numerical Algorithms
5
// Copyright (2004) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Roscoe A. Bartlett (bartlettra@ornl.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
43
#ifndef THYRA_DEFAULT_SPMD_VECTOR_SPACE_DECL_HPP
44
#define THYRA_DEFAULT_SPMD_VECTOR_SPACE_DECL_HPP
45
46
47
#include "Thyra_SpmdVectorSpaceDefaultBase_decl.hpp"
48
#include "Thyra_ProductVectorSpaceBase.hpp"
49
50
51
namespace
Thyra {
52
53
68
template
<
class
Scalar>
69
class
DefaultSpmdVectorSpace
70
:
public
SpmdVectorSpaceDefaultBase
<Scalar>
71
{
72
public
:
73
76
78
static
RCP<DefaultSpmdVectorSpace<Scalar>
>
create
();
79
87
void
initialize
(
const
Ordinal
dim
);
88
143
void
initialize
(
144
const
RCP
<
const
Teuchos::Comm<Ordinal>
> &comm,
145
const
Ordinal
localSubDim
,
const
Ordinal globalDim,
146
const
bool
isLocallyReplicated
=
false
147
);
148
157
void
uninitialize
();
158
160
163
166
bool
hasInCoreView
(
167
const
Range1D
& rng,
const
EViewType
viewType,
const
EStrideType
strideType
168
)
const
;
170
RCP< const VectorSpaceBase<Scalar>
>
clone
()
const
;
172
173
protected
:
174
177
179
RCP<VectorBase<Scalar>
>
180
createMember
()
const
;
182
RCP<MultiVectorBase<Scalar>
>
183
createMembers
(
int
numMembers)
const
;
185
RCP<VectorBase<Scalar>
>
186
createMemberView
(
const
RTOpPack::SubVectorView<Scalar>
&raw_v )
const
;
188
RCP<const VectorBase<Scalar>
>
189
createMemberView
(
const
RTOpPack::ConstSubVectorView<Scalar>
&raw_v )
const
;
191
RCP<MultiVectorBase<Scalar>
>
192
createMembersView
(
const
RTOpPack::SubMultiVectorView<Scalar>
&raw_mv )
const
;
194
RCP<const MultiVectorBase<Scalar>
>
195
createMembersView
(
const
RTOpPack::ConstSubMultiVectorView<Scalar>
&raw_mv )
const
;
196
198
199
public
:
200
203
205
RCP<const Teuchos::Comm<Ordinal>
>
getComm
()
const
;
207
Ordinal
localSubDim
()
const
;
208
210
211
private
:
212
213
// //////////////////////////////////////
214
// Private data members
215
216
RCP<const Teuchos::Comm<Ordinal>
> comm_;
217
Ordinal localSubDim_;
218
int
numProc_;
219
int
procRank_;
220
RCP<DefaultSpmdVectorSpace<Scalar>
> weakSelfPtr_;
221
222
// /////////////////////////////////////
223
// Private member functions
224
225
DefaultSpmdVectorSpace();
226
227
public
:
228
229
};
// end class DefaultSpmdVectorSpace
230
231
236
template
<
class
Scalar>
237
RCP<DefaultSpmdVectorSpace<Scalar>
>
238
defaultSpmdVectorSpace
()
239
{
240
return
DefaultSpmdVectorSpace<Scalar>::create
();
241
}
242
243
248
template
<
class
Scalar>
249
RCP<DefaultSpmdVectorSpace<Scalar>
>
250
defaultSpmdVectorSpace
(
const
Ordinal
dim
)
251
{
252
RCP<DefaultSpmdVectorSpace<Scalar>
> vs =
253
DefaultSpmdVectorSpace<Scalar>::create
();
254
vs->initialize(
dim
);
255
return
vs;
256
}
257
258
264
template
<
class
Scalar>
265
RCP<DefaultSpmdVectorSpace<Scalar>
>
266
defaultSpmdVectorSpace
(
267
const
RCP
<
const
Teuchos::Comm<Ordinal>
> &comm,
268
const
Ordinal
localSubDim
,
const
Ordinal globalDim,
269
const
bool
isLocallyReplicated
=
false
270
)
271
{
272
RCP<DefaultSpmdVectorSpace<Scalar>
> vs =
273
DefaultSpmdVectorSpace<Scalar>::create
();
274
vs->initialize(comm,
localSubDim
, globalDim,
isLocallyReplicated
);
275
return
vs;
276
}
277
278
284
template
<
class
Scalar>
285
RCP<DefaultSpmdVectorSpace<Scalar>
>
286
locallyReplicatedDefaultSpmdVectorSpace
(
287
const
RCP
<
const
Teuchos::Comm<Ordinal>
> &comm,
288
const
Ordinal globalDim
289
)
290
{
291
RCP<DefaultSpmdVectorSpace<Scalar>
> vs =
292
DefaultSpmdVectorSpace<Scalar>::create
();
293
vs->initialize(comm, globalDim, globalDim,
true
);
294
return
vs;
295
}
296
297
298
}
// end namespace Thyra
299
300
301
#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:249
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:225
Thyra::DefaultSpmdVectorSpace::defaultSpmdVectorSpace
RCP< DefaultSpmdVectorSpace< Scalar > > defaultSpmdVectorSpace()
Nonmember consturctor that creats an uninitialized vector space.
Definition
Thyra_DefaultSpmdVectorSpace_decl.hpp:238
Thyra::DefaultSpmdVectorSpace::defaultSpmdVectorSpace
RCP< DefaultSpmdVectorSpace< Scalar > > defaultSpmdVectorSpace(const Ordinal dim)
Nonmember consturctor that creats a serial vector space.
Definition
Thyra_DefaultSpmdVectorSpace_decl.hpp:250
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:266
Thyra::DefaultSpmdVectorSpace::createMembers
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:129
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:286
Thyra::DefaultSpmdVectorSpace::localSubDim
Ordinal localSubDim() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:256
Thyra::DefaultSpmdVectorSpace::create
static RCP< DefaultSpmdVectorSpace< Scalar > > create()
Create with weak ownership to self.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:58
Thyra::DefaultSpmdVectorSpace::clone
RCP< const VectorSpaceBase< Scalar > > clone() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:237
Thyra::DefaultSpmdVectorSpace::createMembersView
RCP< MultiVectorBase< Scalar > > createMembersView(const RTOpPack::SubMultiVectorView< Scalar > &raw_mv) const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:182
Thyra::DefaultSpmdVectorSpace::initialize
void initialize(const Ordinal dim)
Initialize a serial space.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:67
Thyra::DefaultSpmdVectorSpace::createMemberView
RCP< VectorBase< Scalar > > createMemberView(const RTOpPack::SubVectorView< Scalar > &raw_v) const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:144
Thyra::DefaultSpmdVectorSpace::createMember
RCP< VectorBase< Scalar > > createMember() const
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:112
Thyra::DefaultSpmdVectorSpace::uninitialize
void uninitialize()
Set to an uninitialized state.
Definition
Thyra_DefaultSpmdVectorSpace_def.hpp:100
Thyra::SpmdVectorSpaceDefaultBase::isLocallyReplicated
bool isLocallyReplicated() const
Returns true if vector space is locally replicated space.
Definition
Thyra_SpmdVectorSpaceDefaultBase_def.hpp:80
Thyra::SpmdVectorSpaceDefaultBase::SpmdVectorSpaceDefaultBase
SpmdVectorSpaceDefaultBase()
Definition
Thyra_SpmdVectorSpaceDefaultBase_def.hpp:56
Thyra::SpmdVectorSpaceDefaultBase::dim
Ordinal dim() const
Returns the sum of the local number of elements on every process.
Definition
Thyra_SpmdVectorSpaceDefaultBase_def.hpp:112
Thyra::EStrideType
EStrideType
Determine if data is unit stride or non-unit stride.
Definition
Thyra_OperatorVectorTypes.hpp:319
Thyra::EViewType
EViewType
Determines if a view is a direct view of data or a detached copy of data.
Definition
Thyra_OperatorVectorTypes.hpp:309
Thyra::Range1D
Teuchos::Range1D Range1D
Definition
Thyra_OperatorVectorTypes.hpp:97
Generated by
1.17.0