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
//
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
#ifndef THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_DECL_HPP
43
#define THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_DECL_HPP
44
45
#include "Thyra_ProductVectorBase.hpp"
46
#include "Thyra_VectorDefaultBase.hpp"
47
48
namespace
Thyra {
49
51
template
<
class
Scalar>
class
DefaultClusteredSpmdProductVectorSpace
;
52
62
template
<
class
Scalar>
63
class
DefaultClusteredSpmdProductVector
64
:
virtual
public
ProductVectorBase
<Scalar>
65
,
virtual
protected
VectorDefaultBase
<Scalar>
66
{
67
public
:
68
69
#ifndef _MSC_VER
71
using
ProductVectorBase
<Scalar>
::applyOp
;
72
#endif
73
76
78
DefaultClusteredSpmdProductVector
();
79
81
DefaultClusteredSpmdProductVector
(
82
const
Teuchos::RCP
<
const
DefaultClusteredSpmdProductVectorSpace<Scalar>
> &
productSpace
83
,
const
Teuchos::RCP
<
VectorBase<Scalar>
> vecs[]
84
);
85
90
void
initialize
(
91
const
Teuchos::RCP
<
const
DefaultClusteredSpmdProductVectorSpace<Scalar>
> &
productSpace
92
,
const
Teuchos::RCP
<
VectorBase<Scalar>
> vecs[]
93
);
94
99
void
uninitialize
(
100
Teuchos::RCP
<
const
DefaultClusteredSpmdProductVectorSpace<Scalar>
> *
productSpace
= NULL
101
,
Teuchos::RCP
<
VectorBase<Scalar>
> vecs[] = NULL
102
);
103
105
108
110
Teuchos::RCP<VectorBase<Scalar>
>
getNonconstVectorBlock
(
const
int
k);
112
Teuchos::RCP<const VectorBase<Scalar>
>
getVectorBlock
(
const
int
k)
const
;
113
115
118
120
Teuchos::RCP<const ProductVectorSpaceBase<Scalar>
>
productSpace
()
const
;
122
bool
blockIsConst
(
const
int
k)
const
;
124
Teuchos::RCP<MultiVectorBase<Scalar>
>
getNonconstMultiVectorBlock
(
const
int
k);
126
Teuchos::RCP<const MultiVectorBase<Scalar>
>
getMultiVectorBlock
(
const
int
k)
const
;
127
129
132
134
Teuchos::RCP< const VectorSpaceBase<Scalar>
>
space
()
const
;
135
137
138
protected
:
139
142
144
void
applyOpImpl
(
145
const
RTOpPack::RTOpT<Scalar>
&op,
146
const
ArrayView
<
const
Ptr
<
const
VectorBase<Scalar>
> > &vecs,
147
const
ArrayView
<
const
Ptr
<
VectorBase<Scalar>
> > &targ_vecs,
148
const
Ptr<RTOpPack::ReductTarget>
&reduct_obj,
149
const
Ordinal global_offset
150
)
const
;
151
153
154
private
:
155
156
// //////////////////////////////
157
// Private data members
158
159
Teuchos::RCP<const DefaultClusteredSpmdProductVectorSpace<Scalar>
> productSpace_;
160
std::vector<Teuchos::RCP<VectorBase<Scalar> > > vecs_;
161
162
};
163
164
}
// namespace Thyra
165
166
#endif
// THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_DECL_HPP
RTOpPack::RTOpT
Teuchos::ArrayView
Teuchos::Ptr
Teuchos::RCP
Thyra::DefaultClusteredSpmdProductVectorSpace
Definition
Thyra_DefaultClusteredSpmdProductVectorSpace_decl.hpp:88
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:186
Thyra::DefaultClusteredSpmdProductVector::productSpace
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productSpace() const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:140
Thyra::DefaultClusteredSpmdProductVector::uninitialize
void uninitialize(Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > *productSpace=NULL, Teuchos::RCP< VectorBase< Scalar > > vecs[]=NULL)
Uninitialize.
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:99
Thyra::DefaultClusteredSpmdProductVector::space
Teuchos::RCP< const VectorSpaceBase< Scalar > > space() const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:176
Thyra::DefaultClusteredSpmdProductVector::initialize
void initialize(const Teuchos::RCP< const DefaultClusteredSpmdProductVectorSpace< Scalar > > &productSpace, const Teuchos::RCP< VectorBase< Scalar > > vecs[])
Initialize.
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:79
Thyra::DefaultClusteredSpmdProductVector::getNonconstMultiVectorBlock
Teuchos::RCP< MultiVectorBase< Scalar > > getNonconstMultiVectorBlock(const int k)
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:157
Thyra::DefaultClusteredSpmdProductVector::getVectorBlock
Teuchos::RCP< const VectorBase< Scalar > > getVectorBlock(const int k) const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:127
Thyra::DefaultClusteredSpmdProductVector::getMultiVectorBlock
Teuchos::RCP< const MultiVectorBase< Scalar > > getMultiVectorBlock(const int k) const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:165
Thyra::DefaultClusteredSpmdProductVector::blockIsConst
bool blockIsConst(const int k) const
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:147
Thyra::DefaultClusteredSpmdProductVector::getNonconstVectorBlock
Teuchos::RCP< VectorBase< Scalar > > getNonconstVectorBlock(const int k)
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:117
Thyra::DefaultClusteredSpmdProductVector::DefaultClusteredSpmdProductVector
DefaultClusteredSpmdProductVector()
Constructs to uninitialized (see postconditions for uninitialize()).
Definition
Thyra_DefaultClusteredSpmdProductVector_def.hpp:62
Thyra::ProductVectorBase
Base interface for product vectors.
Definition
Thyra_ProductVectorBase.hpp:90
Thyra::VectorBase
Abstract interface for finite-dimensional dense vectors.
Definition
Thyra_VectorBase.hpp:147
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:297
Thyra::VectorDefaultBase
Convenient node subclass for concrete VectorBase subclasses that relies on a default MultiVectorBase ...
Definition
Thyra_VectorDefaultBase_decl.hpp:76
Generated by
1.17.0