42#ifndef THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP
43#define THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP
45#include "Thyra_BlockedLinearOpBase.hpp"
96 const int numRowBlocks,
const int numColBlocks
154 const int i,
const int j
170 const int i,
const int j
Base interface for linear operators that can be accessed as sub-blocks.
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.
Base class for all linear operators.
Base interface for physically blocked linear operators.
virtual void uninitialize()=0
Set to uninitlaized.
virtual void beginBlockFill(const int numRowBlocks, const int numColBlocks)=0
Begin a block fill where the product range and domain spaces will be created on the fly but the total...
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 void setNonconstBlock(const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)=0
Set a non-const block linear operator.
virtual void setBlock(const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)=0
Set a const block linear operator.
virtual void endBlockFill()=0
End a block fill after which *this object can be used.
virtual void beginBlockFill(const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > &productRange, const Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > &productDomain)=0
Begin a block fill where the product range and domain spaces are set a priori.
virtual bool acceptsBlock(const int i, const int j) const =0
Determines if the block (i,j) can be filled or not.
virtual bool blockFillIsActive() const =0
Determines if a block fill is active or not .