Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
interfaces
operator_vector
extended
Thyra_RowStatLinearOpBase.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_ROW_SUM_LINEAR_OP_BASE_HPP
11
#define THYRA_ROW_SUM_LINEAR_OP_BASE_HPP
12
13
#include "Thyra_LinearOpBase_decl.hpp"
14
15
16
namespace
Thyra {
17
18
19
namespace
RowStatLinearOpBaseUtils {
20
21
23
enum
ERowStat {
25
ROW_STAT_INV_ROW_SUM,
27
ROW_STAT_ROW_SUM,
29
ROW_STAT_INV_COL_SUM,
31
ROW_STAT_COL_SUM
32
};
33
34
35
}
// namespace RowStatLinearOpBaseUtils
36
37
43
template
<
class
Scalar>
44
class
RowStatLinearOpBase
:
virtual
public
LinearOpBase
<Scalar> {
45
public
:
46
49
51
bool
rowStatIsSupported
(
52
const
RowStatLinearOpBaseUtils::ERowStat rowStat
53
)
const
54
{
return
rowStatIsSupportedImpl
(rowStat); }
55
60
void
getRowStat
(
61
const
RowStatLinearOpBaseUtils::ERowStat rowStat,
62
const
Ptr
<
VectorBase<Scalar>
> &rowStatVec
63
)
const
64
{
65
TEUCHOS_ASSERT
(
rowStatIsSupported
(rowStat));
66
getRowStatImpl
(rowStat, rowStatVec);
67
}
68
70
71
protected
:
72
75
77
virtual
bool
rowStatIsSupportedImpl
(
78
const
RowStatLinearOpBaseUtils::ERowStat rowStat)
const
= 0;
79
81
virtual
void
getRowStatImpl
(
82
const
RowStatLinearOpBaseUtils::ERowStat rowStat,
83
const
Ptr
<
VectorBase<Scalar>
> &rowStatVec)
const
= 0;
84
86
87
};
88
89
90
}
// end namespace Thyra
91
92
93
#endif
// THYRA_SCALED_LINEAR_OP_BASE_HPP
Teuchos::Ptr
Thyra::LinearOpBase
Base class for all linear operators.
Definition
Thyra_LinearOpBase_decl.hpp:159
Thyra::RowStatLinearOpBase
Interface for exxtracting row statistics as a VectorBase from a supporting LinearOpBase object.
Definition
Thyra_RowStatLinearOpBase.hpp:44
Thyra::RowStatLinearOpBase::rowStatIsSupportedImpl
virtual bool rowStatIsSupportedImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat) const =0
Thyra::RowStatLinearOpBase::rowStatIsSupported
bool rowStatIsSupported(const RowStatLinearOpBaseUtils::ERowStat rowStat) const
Determine if a given row stat is supported.
Definition
Thyra_RowStatLinearOpBase.hpp:51
Thyra::RowStatLinearOpBase::getRowStat
void getRowStat(const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const
Get some statistics about a supported row.
Definition
Thyra_RowStatLinearOpBase.hpp:60
Thyra::RowStatLinearOpBase::getRowStatImpl
virtual void getRowStatImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat, const Ptr< VectorBase< Scalar > > &rowStatVec) const =0
Thyra::VectorBase
Abstract interface for finite-dimensional dense vectors.
Definition
Thyra_VectorBase.hpp:115
TEUCHOS_ASSERT
#define TEUCHOS_ASSERT(assertion_test)
Generated by
1.17.0