Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
support
operator_vector
adapter_support
Thyra_DefaultClusteredSpmdProductVector_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_CLUSTERED_SPMD_PRODUCT_VECTOR_DECL_HPP
11
#define THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_DECL_HPP
12
13
#include "Thyra_ProductVectorBase.hpp"
14
#include "Thyra_VectorDefaultBase.hpp"
15
16
namespace
Thyra {
17
19
template
<
class
Scalar>
class
DefaultClusteredSpmdProductVectorSpace
;
20
30
template
<
class
Scalar>
31
class
DefaultClusteredSpmdProductVector
32
:
virtual
public
ProductVectorBase
<Scalar>
33
,
virtual
protected
VectorDefaultBase
<Scalar>
34
{
35
public
:
36
37
#ifndef _MSC_VER
39
using
ProductVectorBase
<Scalar>
::applyOp
;
40
#endif
41
44
46
DefaultClusteredSpmdProductVector
();
47
49
DefaultClusteredSpmdProductVector
(
50
const
Teuchos::RCP
<
const
DefaultClusteredSpmdProductVectorSpace<Scalar>
> &
productSpace
51
,
const
Teuchos::RCP
<
VectorBase<Scalar>
> vecs[]
52
);
53
58
void
initialize
(
59
const
Teuchos::RCP
<
const
DefaultClusteredSpmdProductVectorSpace<Scalar>
> &
productSpace
60
,
const
Teuchos::RCP
<
VectorBase<Scalar>
> vecs[]
61
);
62
67
void
uninitialize
(
68
Teuchos::RCP
<
const
DefaultClusteredSpmdProductVectorSpace<Scalar>
> *
productSpace
= NULL
69
,
Teuchos::RCP
<
VectorBase<Scalar>
> vecs[] = NULL
70
);
71
73
76
78
Teuchos::RCP<VectorBase<Scalar>
>
getNonconstVectorBlock
(
const
int
k);
80
Teuchos::RCP<const VectorBase<Scalar>
>
getVectorBlock
(
const
int
k)
const
;
81
83
86
88
Teuchos::RCP<const ProductVectorSpaceBase<Scalar>
>
productSpace
()
const
;
90
bool
blockIsConst
(
const
int
k)
const
;
92
Teuchos::RCP<MultiVectorBase<Scalar>
>
getNonconstMultiVectorBlock
(
const
int
k);
94
Teuchos::RCP<const MultiVectorBase<Scalar>
>
getMultiVectorBlock
(
const
int
k)
const
;
95
97
100
102
Teuchos::RCP< const VectorSpaceBase<Scalar>
>
space
()
const
;
103
105
106
protected
:
107
110
112
void
applyOpImpl
(
113
const
RTOpPack::RTOpT<Scalar>
&op,
114
const
ArrayView
<
const
Ptr
<
const
VectorBase<Scalar>
> > &vecs,
115
const
ArrayView
<
const
Ptr
<
VectorBase<Scalar>
> > &targ_vecs,
116
const
Ptr<RTOpPack::ReductTarget>
&reduct_obj,
117
const
Ordinal global_offset
118
)
const
;
119
121
122
private
:
123
124
// //////////////////////////////
125
// Private data members
126
127
Teuchos::RCP<const DefaultClusteredSpmdProductVectorSpace<Scalar>
> productSpace_;
128
std::vector<Teuchos::RCP<VectorBase<Scalar> > > vecs_;
129
130
};
131
132
}
// namespace Thyra
133
134
#endif
// THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_DECL_HPP
RTOpPack::RTOpT
Teuchos::ArrayView
Teuchos::Ptr
Teuchos::RCP
Thyra::DefaultClusteredSpmdProductVector::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
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:154
Thyra::DefaultClusteredSpmdProductVector::productSpace
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productSpace() const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:108
Thyra::DefaultClusteredSpmdProductVector::uninitialize
void uninitialize(Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > *productSpace=NULL, Teuchos::RCP< VectorBase< Scalar > > vecs[]=NULL)
Uninitialize.
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:67
Thyra::DefaultClusteredSpmdProductVector::space
Teuchos::RCP< const VectorSpaceBase< Scalar > > space() const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:144
Thyra::DefaultClusteredSpmdProductVector::initialize
void initialize(const Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > &productSpace, const Teuchos::RCP< VectorBase< Scalar > > vecs[])
Initialize.
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:47
Thyra::DefaultClusteredSpmdProductVector::getNonconstMultiVectorBlock
Teuchos::RCP< MultiVectorBase< Scalar > > getNonconstMultiVectorBlock(const int k)
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:125
Thyra::DefaultClusteredSpmdProductVector::getVectorBlock
Teuchos::RCP< const VectorBase< Scalar > > getVectorBlock(const int k) const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:95
Thyra::DefaultClusteredSpmdProductVector::getMultiVectorBlock
Teuchos::RCP< const MultiVectorBase< Scalar > > getMultiVectorBlock(const int k) const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:133
Thyra::DefaultClusteredSpmdProductVector::blockIsConst
bool blockIsConst(const int k) const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:115
Thyra::DefaultClusteredSpmdProductVector::getNonconstVectorBlock
Teuchos::RCP< VectorBase< Scalar > > getNonconstVectorBlock(const int k)
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:85
Thyra::DefaultClusteredSpmdProductVector::DefaultClusteredSpmdProductVector
DefaultClusteredSpmdProductVector()
Constructs to uninitialized (see postconditions for uninitialize()).
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:30
Thyra::DefaultClusteredSpmdProductVectorSpace
Definition
Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp:56
Thyra::ProductVectorBase
Base interface for product vectors.
Definition
Thyra_ProductVectorBase.hpp:58
Thyra::VectorBase
Abstract interface for finite-dimensional dense vectors.
Definition
Thyra_VectorBase.hpp:115
Thyra::VectorBase::applyOp
void applyOp(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 applyOpImpl().
Definition
Thyra_VectorBase.hpp:265
Thyra::VectorDefaultBase
Convenient node subclass for concrete VectorBase subclasses that relies on a default MultiVectorBase ...
Definition
Thyra_VectorDefaultBase_decl.hpp:44
Generated by
1.17.0