10 #ifndef THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP
11 #define THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP
13 #include "Thyra_BlockedLinearOpBase.hpp"
30 template<
class Scalar>
64 const int numRowBlocks,
const int numColBlocks
108 virtual bool acceptsBlock(
const int i,
const int j)
const = 0;
122 const int i,
const int j
138 const int i,
const int j
177 #endif // THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP
Base interface for linear operators that can be accessed as sub-blocks.
virtual bool blockFillIsActive() const =0
Determines if a block fill is active or not .
virtual void uninitialize()=0
Set to uninitlaized.
virtual void setNonconstBlock(const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)=0
Set a non-const block linear operator.
Base interface for physically blocked linear operators.
virtual void endBlockFill()=0
End a block fill after which *this object can be used.
Base class for all linear operators.
virtual void beginBlockFill()=0
Begin a block fill where the product range and domain spaces will be created on the fly and the numbe...
virtual bool acceptsBlock(const int i, const int j) const =0
Determines if the block (i,j) can be filled or not.
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productDomain() const =0
Return the product space for the domain.
virtual void setBlock(const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)=0
Set a const block linear operator.
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productRange() const =0
Return the product space for the range.