Base interface for linear operators with a solve that are composed out of individual LOB and LOWSB objects.
More...
|
virtual bool | acceptsLOWSBlock (const int i, const int j) const =0 |
| Determines if the block (i,j) can be filled with a LOWDB object or not. More...
|
|
virtual void | setNonconstLOWSBlock (const int i, const int j, const Teuchos::RCP< LinearOpWithSolveBase< Scalar > > &block)=0 |
|
virtual void | setLOWSBlock (const int i, const int j, const Teuchos::RCP< const LinearOpWithSolveBase< Scalar > > &block)=0 |
|
virtual Teuchos::RCP< LinearOpWithSolveBase< Scalar > > | getNonconstLOWSBlock (const int i, const int j)=0 |
|
virtual Teuchos::RCP< const LinearOpWithSolveBase< Scalar > > | getLOWSBlock (const int i, const int j) const =0 |
|
bool | solveSupports (EOpTransp transp) const |
| Return if solve() supports the argument transp . More...
|
|
bool | solveSupports (EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const |
| Return if solve() supports a given transpose and solve criteria specification. More...
|
|
bool | solveSupportsSolveMeasureType (EOpTransp transp, const SolveMeasureType &solveMeasureType) const |
| Return if solve() supports the given the solve measure type. More...
|
|
SolveStatus< Scalar > | solve (const EOpTransp A_trans, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria=Teuchos::null) const |
| Request the solution of a block linear system. More...
|
|
virtual RCP< const VectorSpaceBase< Scalar > > | range () const =0 |
| Return a smart pointer for the range space for this operator. More...
|
|
virtual RCP< const VectorSpaceBase< Scalar > > | domain () const =0 |
| Return a smart pointer for the domain space for this operator. More...
|
|
bool | opSupported (EOpTransp M_trans) const |
| Return if the M_trans operation of apply() is supported or not. More...
|
|
void | apply (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const |
| Apply the linear operator to a multi-vector : Y = alpha*op(M)*X + beta*Y . More...
|
|
virtual RCP< const LinearOpBase< Scalar > > | clone () const |
| Clone the linear operator object (if supported). More...
|
|
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > | productRange () const =0 |
| Return the product space for the range. More...
|
|
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > | productDomain () const =0 |
| Return the product space for the domain. More...
|
|
virtual bool | blockExists (const int i, const int j) const =0 |
| Return if the block (i,j) exists or not. More...
|
|
virtual bool | blockIsConst (const int i, const int j) const =0 |
| Return if the block (i,j) is const only or not. More...
|
|
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. More...
|
|
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. More...
|
|
virtual void | beginBlockFill ()=0 |
| Begin a block fill where the product range and domain spaces will be created on the fly and the number of block rows and columns is not known in advance. More...
|
|
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 number of block rows and block columns is known in advance. More...
|
|
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. More...
|
|
virtual bool | blockFillIsActive () const =0 |
| Determines if a block fill is active or not . More...
|
|
virtual bool | acceptsBlock (const int i, const int j) const =0 |
| Determines if the block (i,j) can be filled or not. More...
|
|
virtual void | setNonconstBlock (const int i, const int j, const Teuchos::RCP< LinearOpBase< Scalar > > &block)=0 |
| Set a non-const block linear operator. More...
|
|
virtual void | setBlock (const int i, const int j, const Teuchos::RCP< const LinearOpBase< Scalar > > &block)=0 |
| Set a const block linear operator. More...
|
|
virtual void | endBlockFill ()=0 |
| End a block fill after which *this object can be used. More...
|
|
virtual void | uninitialize ()=0 |
| Set to uninitlaized. More...
|
|
|
virtual bool | solveSupportsImpl (EOpTransp transp) const |
| Virtual implementation for solveSupports(). More...
|
|
virtual bool | solveSupportsNewImpl (EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const |
| Virtual implementation of solveSupports() . More...
|
|
virtual bool | solveSupportsSolveMeasureTypeImpl (EOpTransp transp, const SolveMeasureType &solveMeasureType) const |
| Virtual implementation for solveSupportsSolveMeasureType(). More...
|
|
virtual SolveStatus< Scalar > | solveImpl (const EOpTransp transp, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const =0 |
| Virtual implementation for solve(). More...
|
|
virtual bool | opSupportedImpl (EOpTransp M_trans) const =0 |
| Override in subclass. More...
|
|
virtual void | applyImpl (const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const =0 |
| Override in subclass. More...
|
|
template<class Scalar > |
bool | solveSupports (const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp) |
| Call solveSupports() as a non-member function. More...
|
|
template<class Scalar > |
bool | solveSupports (const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria) |
| Call solveSupports() as a non-member function. More...
|
|
template<class Scalar > |
bool | solveSupportsSolveMeasureType (const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp, const SolveMeasureType &solveMeasureType) |
| Call solveSupportsSolveMeasureType() as a non-member function. More...
|
|
template<class Scalar > |
SolveStatus< Scalar > | solve (const LinearOpWithSolveBase< Scalar > &A, const EOpTransp A_trans, const MultiVectorBase< Scalar > &B, const Ptr< MultiVectorBase< Scalar > > &X, const Ptr< const SolveCriteria< Scalar > > solveCriteria=Teuchos::null) |
| Call solve() as a non-member function. More...
|
|
template<class Scalar > |
void | assertSolveSupports (const LinearOpWithSolveBase< Scalar > &lows, const EOpTransp M_trans, const Ptr< const SolveCriteria< Scalar > > solveCriteria=Teuchos::null) |
| Assert that a LOWSB object supports a particular solve type. More...
|
|
template<class Scalar > |
bool | isFullyUninitialized (const LinearOpBase< Scalar > &M) |
| Determines if a linear operator is in the "Fully Uninitialized" state or not. More...
|
|
template<class Scalar > |
bool | isPartiallyInitialized (const LinearOpBase< Scalar > &M) |
| Determines if a linear operator is in the "Partially Initialized" state or not. More...
|
|
template<class Scalar > |
bool | isFullyInitialized (const LinearOpBase< Scalar > &M) |
| Determines if a linear operator is in the "Fully Initialized" state or not. More...
|
|
template<class Scalar > |
bool | opSupported (const LinearOpBase< Scalar > &M, EOpTransp M_trans) |
| Determines if an operation is supported for a single scalar type. More...
|
|
template<class Scalar > |
void | apply (const LinearOpBase< Scalar > &M, const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha=static_cast< Scalar >(1.0), const Scalar beta=static_cast< Scalar >(0.0)) |
| Non-member function call for M.apply(...) . More...
|
|
void | apply (const LinearOpBase< double > &M, const EOpTransp M_trans, const MultiVectorBase< double > &X, const Ptr< MultiVectorBase< double > > &Y, const double alpha=1.0, const double beta=0.0) |
| Calls apply<double>(...) . More...
|
|
template<class Scalar>
class Thyra::PhysicallyBlockedLinearOpWithSolveBase< Scalar >
Base interface for linear operators with a solve that are composed out of individual LOB and LOWSB objects.
ToDo: Finish Documentation.
Definition at line 60 of file Thyra_PhysicallyBlockedLinearOpWithSolveBase.hpp.