10#ifndef THYRA_LINEAR_OP_WITH_SOLVE_FACTORY_SUBCLASS_HELPERS_HPP
11#define THYRA_LINEAR_OP_WITH_SOLVE_FACTORY_SUBCLASS_HELPERS_HPP
14#include "Thyra_LinearOpWithSolveBase.hpp"
15#include "Teuchos_toString.hpp"
31 const EOpTransp M_trans,
43void assertSupportsSolveMeasureType(
45 const EOpTransp M_trans,
61 const EOpTransp M_trans,
69 "Error, the LinearOpWithSolve object \"" << lows.
description() <<
"\"\n"
70 "for M_trans = " <<
toString(M_trans) <<
" does not support the solve"
72 << ( nonnull(solveCriteria) ?
toString(*solveCriteria) : std::string(
"null") )
80void Thyra::assertSupportsSolveMeasureType(
82 const EOpTransp M_trans,
89 "Error, the LinearOpWithSolve object \"" << lows.
description() <<
"\"\n"
90 "for M_trans = " <<
toString(M_trans) <<
" does not support the solve"
virtual std::string description() const
Base class for all linear operators that can support a high-level solve operation.
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.
bool solveSupportsSolveMeasureType(const LinearOpWithSolveBase< Scalar > &A, const EOpTransp transp, const SolveMeasureType &solveMeasureType)
Call solveSupportsSolveMeasureType() as a non-member function.
bool solveSupports(EOpTransp transp) const
Return if solve() supports the argument transp.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
const char * toString(EOpTransp transp)
Return a string name for a EOpTransp value.
std::string toString(const T &t)
Simple struct that defines the requested solution criteria for a solve.
ESolveMeasureNormType numerator
ESolveMeasureNormType denominator