42 #ifndef THYRA_BLOCKED_LINEAR_OP_BASE_HPP
43 #define THYRA_BLOCKED_LINEAR_OP_BASE_HPP
46 #include "Thyra_LinearOpBase.hpp"
62 template<
class Scalar>
94 virtual bool blockExists(
const int i,
const int j)
const = 0;
106 virtual bool blockIsConst(
const int i,
const int j)
const = 0;
143 getBlock(
const int i,
const int j)
const = 0;
151 #endif // THYRA_BLOCKED_LINEAR_OP_BASE_HPP
Base interface for linear operators that can be accessed as sub-blocks.
virtual bool blockIsConst(const int i, const int j) const =0
Return if the block (i,j) is const only or not.
virtual Teuchos::RCP< const LinearOpBase< Scalar > > getBlock(const int i, const int j) const =0
Return a const view of the block (i,j) if it exists.
virtual bool blockExists(const int i, const int j) const =0
Return if the block (i,j) exists or not.
Base class for all linear operators.
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productDomain() const =0
Return the product space for the domain.
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productRange() const =0
Return the product space for the range.
virtual Teuchos::RCP< LinearOpBase< Scalar > > getNonconstBlock(const int i, const int j)=0
Return a non-const view of the block (i,j) if it exists.