10#ifndef THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP 
   11#define THYRA_PHYSICALLY_BLOCKED_LINEAR_OP_BASE_HPP 
   13#include "Thyra_BlockedLinearOpBase.hpp" 
   64    const int numRowBlocks, 
const int numColBlocks
 
  122    const int i, 
const int j
 
  138    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 .