Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
interfaces
operator_vector
extended
Thyra_SpmdMultiVectorBase.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_MULTI_VECTOR_BASE_DECL_HPP
11
#define THYRA_SPMD_MULTI_VECTOR_BASE_DECL_HPP
12
13
14
#include "Thyra_MultiVectorBase.hpp"
15
16
17
namespace
Thyra {
18
19
20
template
<
class
Scalar>
class
SpmdVectorSpaceBase
;
21
22
34
template
<
class
Scalar>
35
class
SpmdMultiVectorBase
:
virtual
public
MultiVectorBase
<Scalar>
36
{
37
public
:
38
41
45
RCP<const SpmdVectorSpaceBase<Scalar>
>
spmdSpace
()
const
46
{
return
spmdSpaceImpl
(); }
47
50
RTOpPack::SubMultiVectorView<Scalar>
getNonconstLocalSubMultiVector
()
51
{
return
getNonconstLocalSubMultiVectorImpl
(); }
52
55
RTOpPack::ConstSubMultiVectorView<Scalar>
getLocalSubMultiVector
()
const
56
{
return
getLocalSubMultiVectorImpl
(); }
57
78
void
getNonconstLocalData
(
79
const
Ptr
<
ArrayRCP<Scalar>
> &localValues,
const
Ptr<Ordinal>
&leadingDim
80
)
81
{
getNonconstLocalMultiVectorDataImpl
(localValues, leadingDim); }
82
103
void
getLocalData
(
104
const
Ptr
<
ArrayRCP<const Scalar>
> &localValues,
const
Ptr<Ordinal>
&leadingDim
105
)
const
106
{
getLocalMultiVectorDataImpl
(localValues, leadingDim); }
107
109
110
protected
:
111
114
116
virtual
RCP<const SpmdVectorSpaceBase<Scalar>
>
spmdSpaceImpl
()
const
= 0;
117
119
virtual
RTOpPack::SubMultiVectorView<Scalar>
120
getNonconstLocalSubMultiVectorImpl
() = 0;
121
123
virtual
RTOpPack::ConstSubMultiVectorView<Scalar>
124
getLocalSubMultiVectorImpl
()
const
= 0;
125
127
virtual
void
getNonconstLocalMultiVectorDataImpl
(
128
const
Ptr
<
ArrayRCP<Scalar>
> &localValues,
const
Ptr<Ordinal>
&leadingDim
129
) = 0;
130
132
virtual
void
getLocalMultiVectorDataImpl
(
133
const
Ptr
<
ArrayRCP<const Scalar>
> &localValues,
const
Ptr<Ordinal>
&leadingDim
134
)
const
= 0;
135
137
138
};
// end class SpmdMultiVectorBase
139
140
141
}
// end namespace Thyra
142
143
144
#endif
// THYRA_SPMD_MULTI_VECTOR_BASE_DECL_HPP
RTOpPack::ConstSubMultiVectorView
RTOpPack::SubMultiVectorView
Teuchos::ArrayRCP
Teuchos::Ptr
Teuchos::RCP
Thyra::MultiVectorBase
Interface for a collection of column vectors called a multi-vector.
Definition
Thyra_MultiVectorBase_decl.hpp:464
Thyra::SpmdMultiVectorBase
Base interface class for SPMD multi-vectors.
Definition
Thyra_SpmdMultiVectorBase.hpp:36
Thyra::SpmdMultiVectorBase::getNonconstLocalSubMultiVector
RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVector()
Get a non-const generalized view of local multi-vector data.
Definition
Thyra_SpmdMultiVectorBase.hpp:50
Thyra::SpmdMultiVectorBase::getLocalMultiVectorDataImpl
virtual void getLocalMultiVectorDataImpl(const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const =0
Virtual implementation for getLocalData().
Thyra::SpmdMultiVectorBase::getNonconstLocalMultiVectorDataImpl
virtual void getNonconstLocalMultiVectorDataImpl(const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)=0
Virtual implementation for getNonconstLocalData().
Thyra::SpmdMultiVectorBase::getNonconstLocalSubMultiVectorImpl
virtual RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVectorImpl()=0
Virtual implementation for getNonconstLocalSubMultiVector().
Thyra::SpmdMultiVectorBase::spmdSpace
RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpace() const
Returns the SPMD vector space object for the range of *this multi-vector.
Definition
Thyra_SpmdMultiVectorBase.hpp:45
Thyra::SpmdMultiVectorBase::getLocalData
void getLocalData(const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const
Returns a const pointer to a Fortran-style view of the local multi-vector data.
Definition
Thyra_SpmdMultiVectorBase.hpp:103
Thyra::SpmdMultiVectorBase::getLocalSubMultiVectorImpl
virtual RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVectorImpl() const =0
Virtual implementation for getLocalSubMultiVector().
Thyra::SpmdMultiVectorBase::spmdSpaceImpl
virtual RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpaceImpl() const =0
Virtual implementation for spmdSpace().
Thyra::SpmdMultiVectorBase::getLocalSubMultiVector
RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVector() const
Get a const generalized view of local multi-vector data.
Definition
Thyra_SpmdMultiVectorBase.hpp:55
Thyra::SpmdMultiVectorBase::getNonconstLocalData
void getNonconstLocalData(const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)
Returns a non-const pointer to a Fortran-style view of the local multi-vector data.
Definition
Thyra_SpmdMultiVectorBase.hpp:78
Thyra::SpmdVectorSpaceBase
Base abstract VectorSpaceBase class for all SPMD-based vector spaces.
Definition
Thyra_SpmdVectorSpaceBase_decl.hpp:100
Generated by
1.17.0