Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
interfaces
operator_vector
extended
Thyra_ProductVectorSpaceBase.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_PRODUCT_VECTOR_SPACE_BASE_HPP
11
#define THYRA_PRODUCT_VECTOR_SPACE_BASE_HPP
12
13
14
#include "Thyra_VectorSpaceBase.hpp"
15
#include "Teuchos_ExpandScalarTypeMacros.hpp"
16
17
18
namespace
Thyra {
19
20
62
template
<
class
Scalar>
63
class
ProductVectorSpaceBase
:
virtual
public
VectorSpaceBase
<Scalar> {
64
public
:
65
72
virtual
int
numBlocks
()
const
= 0;
73
80
virtual
Teuchos::RCP<const VectorSpaceBase<Scalar>
>
getBlock
(
const
int
k)
const
= 0;
81
82
#ifdef DOXYGEN_COMPILE
83
private
:
84
const
VectorSpaceBase<Scalar>
*spaces;
85
#endif
86
87
private
:
88
89
// Not defined and not to be called
90
ProductVectorSpaceBase<Scalar>
&
91
operator=(
const
ProductVectorSpaceBase<Scalar>
&);
92
93
};
94
95
101
template
<
class
Scalar>
102
inline
103
RCP<ProductVectorSpaceBase<Scalar>
>
104
nonconstProductVectorSpaceBase
(
105
const
RCP
<
VectorSpaceBase<Scalar>
> &v,
106
const
bool
forceSuccess =
true
107
)
108
{
109
return
Teuchos::rcp_dynamic_cast<ProductVectorSpaceBase<Scalar> >(
110
v, forceSuccess);
111
}
112
113
119
template
<
class
Scalar>
120
inline
121
RCP<const ProductVectorSpaceBase<Scalar>
>
122
productVectorSpaceBase
(
123
const
RCP
<
const
VectorSpaceBase<Scalar>
> &v,
124
const
bool
forceSuccess =
true
125
)
126
{
127
return
Teuchos::rcp_dynamic_cast<const ProductVectorSpaceBase<Scalar> >(
128
v, forceSuccess);
129
}
130
131
137
inline
138
RCP<ProductVectorSpaceBase<double>
>
139
nonconstProductVectorSpaceBase
(
140
const
RCP
<
VectorSpaceBase<double>
> &vs,
141
const
bool
forceSuccess =
true
142
)
143
{
144
return
nonconstProductVectorSpaceBase<double>
(vs, forceSuccess);
145
}
146
147
152
inline
153
RCP<const ProductVectorSpaceBase<double>
>
154
productVectorSpaceBase
(
155
const
RCP
<
const
VectorSpaceBase<double>
> &vs,
156
const
bool
forceSuccess =
true
157
)
158
{
159
return
productVectorSpaceBase<double>
(vs, forceSuccess);
160
}
161
162
163
}
// namespace Thyra
164
165
#endif
// THYRA_PRODUCT_VECTOR_SPACE_BASE_HPP
Teuchos::RCP
Thyra::ProductVectorSpaceBase
Definition
Thyra_ProductVectorSpaceBase.hpp:63
Thyra::ProductVectorSpaceBase::productVectorSpaceBase
RCP< const ProductVectorSpaceBase< Scalar > > productVectorSpaceBase(const RCP< const VectorSpaceBase< Scalar > > &v, const bool forceSuccess=true)
Dynamic cast from a const VectorSpaceBase to a const ProductVectorSpaceBase object and thow exception...
Definition
Thyra_ProductVectorSpaceBase.hpp:122
Thyra::ProductVectorSpaceBase::nonconstProductVectorSpaceBase
RCP< ProductVectorSpaceBase< double > > nonconstProductVectorSpaceBase(const RCP< VectorSpaceBase< double > > &vs, const bool forceSuccess=true)
Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double.
Definition
Thyra_ProductVectorSpaceBase.hpp:139
Thyra::ProductVectorSpaceBase::numBlocks
virtual int numBlocks() const =0
Returns the number of blocks that make up this product space.
Thyra::ProductVectorSpaceBase::nonconstProductVectorSpaceBase
RCP< ProductVectorSpaceBase< Scalar > > nonconstProductVectorSpaceBase(const RCP< VectorSpaceBase< Scalar > > &v, const bool forceSuccess=true)
Dynamic cast from a VectorSpaceBase to a ProductVectorSpaceBase object and thow exception if this fai...
Definition
Thyra_ProductVectorSpaceBase.hpp:104
Thyra::ProductVectorSpaceBase::productVectorSpaceBase
RCP< const ProductVectorSpaceBase< double > > productVectorSpaceBase(const RCP< const VectorSpaceBase< double > > &vs, const bool forceSuccess=true)
Inline overload of productVectorSpaceBase<Scalar>(..) for double.
Definition
Thyra_ProductVectorSpaceBase.hpp:154
Thyra::ProductVectorSpaceBase::getBlock
virtual Teuchos::RCP< const VectorSpaceBase< Scalar > > getBlock(const int k) const =0
Returns a vector space for the kth (zero-based) block.
Thyra::VectorSpaceBase
Abstract interface for objects that represent a space for vectors.
Definition
Thyra_VectorSpaceBase_decl.hpp:267
Generated by
1.17.0