Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_DefaultDiagonalLinearOpWithSolve_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_DIAGONAL_LINEAR_OP_WITH_SOLVE_DECL_HPP
11#define THYRA_DIAGONAL_LINEAR_OP_WITH_SOLVE_DECL_HPP
12
13#include "Thyra_DefaultDiagonalLinearOp.hpp"
14#include "Thyra_LinearOpWithSolveBase.hpp"
15
16
17namespace Thyra {
18
19
59template<class Scalar>
61 : virtual public DefaultDiagonalLinearOp<Scalar>,
62 virtual public LinearOpWithSolveBase<Scalar>
63{
64public:
65
68
76
79 const RCP<const VectorBase<Scalar> > &diag
80 );
81
82protected:
83
87 bool solveSupportsImpl(EOpTransp M_trans) const;
90 EOpTransp M_trans, const SolveMeasureType& solveMeasureType) const;
93 const EOpTransp transp,
96 const Ptr<const SolveCriteria<Scalar> > solveCriteria
97 ) const;
99
100};
101
102
107template<class Scalar>
113
114
119template<class Scalar>
122 const RCP<const VectorBase<Scalar> > &diag
123 )
124{
126 defaultDiagonalLinearOpWithSolve<Scalar>();
127 ddlows->initialize(diag);
128 return ddlows;
129}
130
131
132
133} // end namespace Thyra
134
135
136#endif // THYRA_DIAGONAL_LINEAR_OP_WITH_SOLVE_DECL_HPP
Concrete LinearOpWithSolveBase subclass for diagonal linear operators.
bool solveSupportsSolveMeasureTypeImpl(EOpTransp M_trans, const SolveMeasureType &solveMeasureType) const
RCP< DefaultDiagonalLinearOpWithSolve< Scalar > > defaultDiagonalLinearOpWithSolve(const RCP< const VectorBase< Scalar > > &diag)
Nonmember constructor.
SolveStatus< Scalar > solveImpl(const EOpTransp transp, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const
RCP< DefaultDiagonalLinearOpWithSolve< Scalar > > defaultDiagonalLinearOpWithSolve()
Nonmember constructor.
Default concrete LinearOpBase subclass for diagonal linear operators.
Base class for all linear operators that can support a high-level solve operation.
Interface for a collection of column vectors called a multi-vector.
Abstract interface for finite-dimensional dense vectors.
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Simple struct that defines the requested solution criteria for a solve.
Simple struct for the return status from a solve.