10 #ifndef THYRA_DEFAULT_BLOCKED_LINEAR_OP_DECL_HPP 
   11 #define THYRA_DEFAULT_BLOCKED_LINEAR_OP_DECL_HPP 
   14 #include "Thyra_PhysicallyBlockedLinearOpBase.hpp" 
   15 #include "Thyra_ProductVectorSpaceBase.hpp" 
   16 #include "Thyra_RowStatLinearOpBase.hpp" 
   17 #include "Thyra_ScaledLinearOpBase.hpp" 
   18 #include "Teuchos_ConstNonconstObjectContainer.hpp" 
   53 template<
class Scalar>
 
   76     const int numRowBlocks, 
const int numColBlocks
 
   89     const int i, 
const int j,
 
   94     const int i, 
const int j
 
  122   getBlock(
const int i, 
const int j) 
const; 
 
  186     const RowStatLinearOpBaseUtils::ERowStat rowStat) 
const;
 
  190     const RowStatLinearOpBaseUtils::ERowStat rowStat, 
 
  225   template<
class Scalar2>
 
  227     BlockEntry() : i(-1), j(-1) {}
 
  228     BlockEntry( 
const int i_in, 
const int j_in, 
const CNCLO &block_in )
 
  229       :i(i_in),j(j_in),block(block_in)
 
  246   std::vector<CNCLO> Ops_; 
 
  250   std::vector<BlockEntry<Scalar> > Ops_stack_; 
 
  251   bool blockFillIsActive_;
 
  256   void resetStorage( 
const int numRowBlocks, 
const int numColBlocks );
 
  257   void assertBlockFillIsActive(
bool) 
const;
 
  258   void assertBlockRowCol(
const int i, 
const int j) 
const;
 
  262   template<
class LinearOpType>
 
  264     const int i, 
const int j,
 
  267   void adjustBlockSpaces();
 
  280 template<
class Scalar>
 
  288 template<
class Scalar>
 
  292   const std::string &label = 
"" 
  300 template<
class Scalar>
 
  305   const std::string &label = 
"" 
  313 template<
class Scalar>
 
  318   const std::string &label = 
"" 
  326 template<
class Scalar>
 
  333   const std::string &label = 
"" 
  341 template<
class Scalar>
 
  345   const std::string &label = 
"" 
  353 template<
class Scalar>
 
  358   const std::string &label = 
"" 
  366 template<
class Scalar>
 
  371   const std::string &label = 
"" 
  379 template<
class Scalar>
 
  386   const std::string &label = 
"" 
  393 #endif  // THYRA_DEFAULT_BLOCKED_LINEAR_OP_DECL_HPP 
bool blockExists(const int i, const int j) const 
 
EOpTransp
Enumeration for determining how a linear operator is applied. `*. 
 
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productRange() const 
 
bool acceptsBlock(const int i, const int j) const 
 
void applyImpl(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const 
 
virtual bool supportsScaleLeftImpl() const 
 
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const 
Prints the details about the constituent linear operators. 
 
virtual void getRowStatImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat, const Teuchos::Ptr< VectorBase< Scalar > > &rowStatVec) const 
 
bool blockIsConst(const int i, const int j) const 
 
void setNonconstBlock(const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)
 
Interface for a collection of column vectors called a multi-vector. 
 
std::string description() const 
Prints just the name DefaultBlockedLinearOp along with the overall dimensions and the number of const...
 
Base interface for physically blocked linear operators. 
 
Abstract interface for finite-dimensional dense vectors. 
 
Teuchos::RCP< const LinearOpBase< Scalar > > clone() const 
 
Teuchos::RCP< const VectorSpaceBase< Scalar > > domain() const 
 
Base class for all linear operators. 
 
bool blockFillIsActive() const 
 
Applies left or right sclaing to the linear operator. 
 
Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productDomain() const 
 
Teuchos::RCP< const VectorSpaceBase< Scalar > > range() const 
 
virtual void scaleLeftImpl(const VectorBase< Scalar > &row_scaling)
 
virtual void scaleRightImpl(const VectorBase< Scalar > &col_scaling)
 
bool opSupportedImpl(EOpTransp M_trans) const 
Returns true only if all constituent operators support M_trans. 
 
Interface for exxtracting row statistics as a VectorBase from a supporting LinearOpBase object...
 
virtual bool rowStatIsSupportedImpl(const RowStatLinearOpBaseUtils::ERowStat rowStat) const 
 
Teuchos::RCP< LinearOpBase< Scalar > > getNonconstBlock(const int i, const int j)
 
void setBlock(const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)
 
virtual bool supportsScaleRightImpl() const 
 
Concrete composite LinearOpBase subclass that creates single linear operator object out of a set of c...
 
Teuchos::RCP< const LinearOpBase< Scalar > > getBlock(const int i, const int j) const