42 #ifndef THYRA_LINEAR_OP_WITH_SOLVE_BASE_DECL_HPP
43 #define THYRA_LINEAR_OP_WITH_SOLVE_BASE_DECL_HPP
45 #include "Thyra_OperatorSolveTypes.hpp"
46 #include "Thyra_LinearOpBase.hpp"
47 #include "Thyra_MultiVectorBase.hpp"
48 #include "Thyra_VectorSpaceBase.hpp"
49 #include "Thyra_SolveSupportTypes.hpp"
50 #include "Teuchos_VerboseObject.hpp"
307 template<
class Scalar>
456 {
return solveImpl(A_trans, B, X, solveCriteria); }
506 template<
class Scalar>
518 template<
class Scalar>
535 template<
class Scalar>
551 template<
class Scalar>
561 return A.
solve(A_trans, B, X, solveCriteria);
569 #endif // THYRA_LINEAR_OP_WITH_SOLVE_BASE_DECL_HPP
Base class for all linear operators that can support a high-level solve operation.
EOpTransp
Enumeration for determining how a linear operator is applied. `*.
bool solveSupports(const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria)
Call solveSupports() as a non-member function.
virtual bool solveSupportsSolveMeasureTypeImpl(EOpTransp transp, const SolveMeasureType &solveMeasureType) const
Virtual implementation for solveSupportsSolveMeasureType().
virtual bool solveSupportsImpl(EOpTransp transp) const
Virtual implementation for solveSupports().
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.
bool solveSupportsSolveMeasureType(const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp, const SolveMeasureType &solveMeasureType)
Call solveSupportsSolveMeasureType() as a non-member function.
Interface for a collection of column vectors called a multi-vector.
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().
Simple struct for the return status from a solve.
Base class for all linear operators.
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.
bool solveSupportsSolveMeasureType(EOpTransp transp, const SolveMeasureType &solveMeasureType) const
Return if solve() supports the given the solve measure type.
#define TEUCHOS_UNREACHABLE_RETURN(dummyReturnVal)
bool solveSupports(EOpTransp transp) const
Return if solve() supports the argument transp.
bool solveSupports(EOpTransp transp, const Ptr< const SolveCriteria< Scalar > > solveCriteria) const
Return if solve() supports a given transpose and solve criteria specification.
bool solveSupports(const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp)
Call solveSupports() as a non-member function.
Simple struct that defines the requested solution criteria for a solve.
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
virtual bool solveSupportsNewImpl(EOpTransp, const Ptr< const SolveCriteria< Scalar > >) const
Virtual implementation of solveSupports().