10 #ifndef THYRA_DEFAULT_BLOCKED_TRIANGULAR_LINEAR_OP_WITH_SOLVE_DECL_HPP
11 #define THYRA_DEFAULT_BLOCKED_TRIANGULAR_LINEAR_OP_WITH_SOLVE_DECL_HPP
14 #include "Thyra_PhysicallyBlockedLinearOpWithSolveBase.hpp"
15 #include "Thyra_PhysicallyBlockedLinearOpBase.hpp"
16 #include "Thyra_ProductVectorSpaceBase.hpp"
17 #include "Teuchos_ConstNonconstObjectContainer.hpp"
18 #include "Teuchos_Array.hpp"
79 template<
class Scalar>
112 const int i,
const int j,
117 const int i,
const int j,
130 const int numRowBlocks,
const int numColBlocks
143 const int i,
const int j,
148 const int i,
const int j,
188 getBlock(
const int i,
const int j)
const;
273 bool blockFillIsActive_;
287 void assertBlockFillIsActive(
bool)
const;
289 void assertBlockRowCol(
const int i,
const int j)
const;
291 template<
class LinearOpWithSolveType>
292 void setLOWSBlockImpl(
const int i,
const int j,
312 template<
class Scalar>
323 #endif // THYRA_DEFAULT_BLOCKED_TRIANGULAR_LINEAR_OP_WITH_SOLVE_DECL_HPP
bool solveSupportsSolveMeasureTypeImpl(EOpTransp M_trans, const SolveMeasureType &solveMeasureType) const
RCP< LinearOpWithSolveBase< Scalar > > getNonconstLOWSBlock(const int i, const int j)
SolveStatus< Scalar > solveImpl(const EOpTransp transp, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const
void setBlocks(const RCP< const PhysicallyBlockedLinearOpBase< Scalar > > &blocks)
Base class for all linear operators that can support a high-level solve operation.
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
void setNonconstBlock(const int i, const int j, const RCP< LinearOpBase< Scalar > > &block)
RCP< const LinearOpBase< Scalar > > getBlock(const int i, const int j) const
bool solveSupportsImpl(EOpTransp M_trans) const
bool acceptsLOWSBlock(const int i, const int j) const
Concrete composite LinearOpWithSolveBase subclass that creates single upper or lower block triangular...
bool blockFillIsActive() const
RCP< const ProductVectorSpaceBase< Scalar > > productDomain() const
void applyImpl(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
RCP< const VectorSpaceBase< Scalar > > range() const
void setBlock(const int i, const int j, const RCP< const LinearOpBase< Scalar > > &block)
RCP< const PhysicallyBlockedLinearOpBase< Scalar > > getBlocks()
bool blockExists(const int i, const int j) const
RCP< LinearOpBase< Scalar > > getNonconstBlock(const int i, const int j)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Interface for a collection of column vectors called a multi-vector.
void setLOWSBlock(const int i, const int j, const RCP< const LinearOpWithSolveBase< Scalar > > &block)
RCP< PhysicallyBlockedLinearOpBase< Scalar > > getNonconstBlocks()
Base interface for physically blocked linear operators.
RCP< const VectorSpaceBase< Scalar > > domain() const
RCP< const LinearOpBase< Scalar > > clone() const
Simple struct for the return status from a solve.
std::string description() const
Prints just the name DefaultBlockedTriangularLinearOpWithSolve along with the overall dimensions and ...
RCP< DefaultBlockedTriangularLinearOpWithSolve< Scalar > > defaultBlockedTriangularLinearOpWithSolve()
Nonmember constructor.
Base class for all linear operators.
bool acceptsBlock(const int i, const int j) const
RCP< const ProductVectorSpaceBase< Scalar > > productRange() const
RCP< const LinearOpWithSolveBase< Scalar > > getLOWSBlock(const int i, const int j) const
bool opSupportedImpl(EOpTransp M_trans) const
void setNonconstLOWSBlock(const int i, const int j, const RCP< LinearOpWithSolveBase< Scalar > > &block)
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Prints the details about the constituent linear operators.
bool blockIsConst(const int i, const int j) const
Base interface for linear operators with a solve that are composed out of individual LOB and LOWSB ob...
Simple struct that defines the requested solution criteria for a solve.
DefaultBlockedTriangularLinearOpWithSolve()
void setNonconstBlocks(const RCP< PhysicallyBlockedLinearOpBase< Scalar > > &blocks)