10#ifndef BELOS_XPETRA_STATUS_TEST_GEN_RES_SUB_NORM_HPP
11#define BELOS_XPETRA_STATUS_TEST_GEN_RES_SUB_NORM_HPP
13#include "Xpetra_ConfigDefs.hpp"
15#include "Xpetra_BlockedCrsMatrix.hpp"
19#include <BelosConfigDefs.hpp>
20#include <BelosTypes.hpp>
21#include <BelosOperatorT.hpp>
22#include <BelosXpetraAdapterOperator.hpp>
23#include <BelosStatusTestGenResSubNorm.hpp>
30template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
31class StatusTestGenResSubNorm<
Scalar,
Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>, Belos::OperatorT<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> >, Teuchos::SerialDenseMatrix<LocalOrdinal, Scalar> >
32 :
public StatusTestResNorm<Scalar, Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>, Belos::OperatorT<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> >, Teuchos::SerialDenseMatrix<LocalOrdinal, Scalar> > {
35 typedef Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>
MV;
36 typedef Xpetra::BlockedCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>
BCRS;
37 typedef Xpetra::MapExtractor<Scalar, LocalOrdinal, GlobalOrdinal, Node>
ME;
38 typedef Teuchos::SerialDenseMatrix<LocalOrdinal, Scalar>
DM;
39 typedef Belos::OperatorT<MV>
OP;
41 typedef Teuchos::ScalarTraits<Scalar>
SCT;
43 typedef MultiVecTraits<Scalar, MV, DM>
MVT;
44 typedef OperatorTraits<Scalar, MV, OP>
OT;
96 "StatusTestGenResSubNorm::defineResForm(): The residual form has already been defined.");
127 "StatusTestGenResSubNorm::defineScaleForm(): The scaling type has already been defined.");
179 MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
180 const LinearProblem<Scalar, MV, OP>& lp = iSolver->getProblem();
184 if (status == Failed) {
220 Teuchos::RCP<MV> cur_update = iSolver->getCurrentUpdate();
221 curSoln_ = lp.updateSolution(cur_update);
222 Teuchos::RCP<MV> cur_res = MVT::Clone(*
curSoln_, MVT::GetNumberVecs(*
curSoln_));
223 lp.computeCurrResVec(&*cur_res, &*
curSoln_);
224 std::vector<MagnitudeType> tmp_resvector(MVT::GetNumberVecs(*cur_res));
227 typename std::vector<int>::iterator p =
curLSIdx_.begin();
228 for (
int i = 0; p <
curLSIdx_.end(); ++p, ++i) {
239 typename std::vector<int>::iterator pp =
curLSIdx_.begin();
253 typename std::vector<int>::iterator pp =
curLSIdx_.begin();
263 typename std::vector<int>::iterator p2 =
curLSIdx_.begin();
270 }
else if (
testvector_[*p2] == Teuchos::ScalarTraits<Scalar>::magnitude(Teuchos::ScalarTraits<Scalar>::zero())) {
278 TEUCHOS_TEST_FOR_EXCEPTION(
true, StatusTestError,
"StatusTestGenResSubNorm::checkStatus(): NaN has been detected.");
284 status_ = (have >= need) ? Passed : Failed;
314 void print(std::ostream& os,
int indent = 0)
const {
315 os.setf(std::ios_base::scientific);
316 for (
int j = 0; j < indent; j++)
327 for (
int j = 0; j < indent + 13; j++)
332 for (
int i = 0; i <
numrhs_; i++) {
333 for (
int j = 0; j < indent + 13; j++)
335 os <<
"residual [ " << i <<
" ] = " <<
testvector_[i];
348 os << std::left << std::setw(13) << std::setfill(
'.');
361 os << std::left << std::setfill(
' ');
413 MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
414 MagnitudeType one = Teuchos::ScalarTraits<MagnitudeType>::one();
415 const LinearProblem<Scalar, MV, OP>& lp = iSolver->getProblem();
424 Teuchos::RCP<const OP> Op = lp.getOperator();
425 Teuchos::RCP<const Belos::XpetraOp<Scalar, LocalOrdinal, GlobalOrdinal, Node> > xOp =
426 Teuchos::rcp_dynamic_cast<const Belos::XpetraOp<Scalar, LocalOrdinal, GlobalOrdinal, Node> >(Op);
427 TEUCHOS_TEST_FOR_EXCEPTION(xOp.is_null(),
MueLu::Exceptions::BadCast,
"Bad cast from \'const Belos::OperatorT\' to \'const Belos::XpetraOp\'. The origin type is " <<
typeid(
const OP).name() <<
".");
428 Teuchos::RCP<const Xpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal, Node> > xIntOp =
430 TEUCHOS_TEST_FOR_EXCEPTION(xIntOp.is_null(),
MueLu::Exceptions::BadCast,
"Cannot access Xpetra::Operator stored in Belos::XpetraOperator.");
431 Teuchos::RCP<const Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > xMat =
432 Teuchos::rcp_dynamic_cast<const Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >(xIntOp);
434 Teuchos::RCP<const Xpetra::BlockedCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> > bMat = Teuchos::rcp_dynamic_cast<const Xpetra::BlockedCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> >(xMat);
435 TEUCHOS_TEST_FOR_EXCEPTION(bMat.is_null(),
MueLu::Exceptions::BadCast,
"Bad cast from \'const Xpetra::Matrix\' to \'const Xpetra::BlockedCrsMatrix\'. The origin type is " <<
typeid(
const Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>).name() <<
". Note: you need a BlockedCrsMatrix object for the StatusTestGenResSubNorm to work!");
442 Teuchos::RCP<const MV> rhs = lp.getRHS();
443 numrhs_ = MVT::GetNumberVecs(*rhs);
447 Teuchos::RCP<const MV> init_res = lp.getInitResVec();
448 numrhs_ = MVT::GetNumberVecs(*init_res);
452 Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
453 numrhs_ = MVT::GetNumberVecs(*init_res);
457 Teuchos::RCP<const MV> init_res = lp.getInitResVec();
458 numrhs_ = MVT::GetNumberVecs(*init_res);
462 }
else if (
scaletype_ == NormOfFullPrecInitRes) {
463 Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
464 numrhs_ = MVT::GetNumberVecs(*init_res);
468 }
else if (
scaletype_ == NormOfFullScaledInitRes) {
469 Teuchos::RCP<const MV> init_res = lp.getInitResVec();
470 numrhs_ = MVT::GetNumberVecs(*init_res);
474 }
else if (
scaletype_ == NormOfFullScaledPrecInitRes) {
475 Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
476 numrhs_ = MVT::GetNumberVecs(*init_res);
481 numrhs_ = MVT::GetNumberVecs(*(lp.getRHS()));
498 for (i = 0; i <
numrhs_; i++) {
516 std::ostringstream oss;
517 oss <<
"Belos::StatusTestGenResSubNorm<>: " <<
resFormStr();
529 std::ostringstream oss;
534 oss <<
" Res Vec [" <<
subIdx_ <<
"]) ";
543 oss <<
" (User Scale)";
549 oss <<
" Res0 [" <<
subIdx_ <<
"]";
551 oss <<
" Prec Res0 [" <<
subIdx_ <<
"]";
553 oss <<
" Full Res0 [" <<
subIdx_ <<
"]";
555 oss <<
" Full Prec Res0 [" <<
subIdx_ <<
"]";
556 else if (
scaletype_ == NormOfFullScaledInitRes)
557 oss <<
" scaled Full Res0 [" <<
subIdx_ <<
"]";
558 else if (
scaletype_ == NormOfFullScaledPrecInitRes)
559 oss <<
" scaled Full Prec Res0 [" <<
subIdx_ <<
"]";
561 oss <<
" RHS [" <<
subIdx_ <<
"]";
577 void MvSubNorm(
const MV& mv,
size_t block, std::vector<
typename Teuchos::ScalarTraits<Scalar>::magnitudeType>& normVec, NormType type = TwoNorm) {
578 Teuchos::RCP<const MV> input = Teuchos::rcpFromRef(mv);
580 Teuchos::RCP<const MV> SubVec =
mapExtractor_->ExtractVector(input, block);
581 MVT::MvNorm(*SubVec, normVec, type);
586 Teuchos::RCP<const MV> input = Teuchos::rcpFromRef(mv);
588 Teuchos::RCP<const MV> SubVec =
mapExtractor_->ExtractVector(input, block);
590 lengthRatio = Teuchos::as<MagnitudeType>(SubVec->getGlobalLength()) / Teuchos::as<MagnitudeType>(input->getGlobalLength());
MueLu::DefaultScalar Scalar
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::setShowMaxResNormOnly int setShowMaxResNormOnly(bool showMaxResNormOnly)
Set whether the only maximum residual norm is displayed when the print() method is called.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::ME Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > ME
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getShowMaxResNormOnly bool getShowMaxResNormOnly()
Returns whether the only maximum residual norm is displayed when the print() method is called.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getTestValue const std::vector< MagnitudeType > * getTestValue() const
Returns the test value, , computed in most recent call to CheckStatus.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::DM Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > DM
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::scalevalue_ MagnitudeType scalevalue_
Scaling value.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::curSoln_ Teuchos::RCP< MV > curSoln_
Most recent solution vector used by this status test.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::SCT Teuchos::ScalarTraits< Scalar > SCT
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getLOADetected bool getLOADetected() const
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::MVT MultiVecTraits< Scalar, MV, DM > MVT
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::BCRS Xpetra::BlockedCrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > BCRS
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::convIndices std::vector< int > convIndices()
Returns the std::vector containing the indices of the residuals that passed the test.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::scaletype_ ScaleType scaletype_
Type of scaling to use (Norm of RHS, Norm of Initial Residual, None or User provided).
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::checkStatus StatusType checkStatus(Iteration< Scalar, MV, OP, DM > *iSolver)
Check convergence status: Passed, Failed, or Undefined.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::tolerance_ MagnitudeType tolerance_
Tolerance used to determine convergence.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::firstCallCheckStatusSetup StatusType firstCallCheckStatusSetup(Iteration< Scalar, MV, OP > *iSolver)
Call to setup initial scaling std::vector.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::status_ StatusType status_
Status.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::testvector_ std::vector< MagnitudeType > testvector_
Test std::vector = resvector_ / scalevector_.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::printStatus void printStatus(std::ostream &os, StatusType type) const
Print message for each status specific to this stopping test.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::description std::string description() const
Method to return description of the maximum iteration status test.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getSubIdx size_t getSubIdx() const
Returns the index of the block row the norms are calculated for.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::MvScalingRatio void MvScalingRatio(const MV &mv, size_t block, MagnitudeType &lengthRatio)
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::numrhs_ int numrhs_
The total number of right-hand sides being solved for.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::print void print(std::ostream &os, int indent=0) const
Output formatted description of stopping test to output stream.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::defineScaleForm int defineScaleForm(ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue=Teuchos::ScalarTraits< MagnitudeType >::one())
Define form of the scaling, its norm, its optional weighting std::vector, or, alternatively,...
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::setQuorum int setQuorum(int quorum)
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::firstcallCheckStatus_ bool firstcallCheckStatus_
Is this the first time CheckStatus is called?
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::StatusTestGenResSubNorm StatusTestGenResSubNorm(MagnitudeType Tolerance, size_t subIdx, int quorum=-1, bool showMaxResNormOnly=false)
Constructor.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getScaledNormValue const std::vector< MagnitudeType > * getScaledNormValue() const
Returns the scaled norm value, .
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::setTolerance int setTolerance(MagnitudeType tolerance)
Set the value of the tolerance.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::quorum_ int quorum_
Number of residuals that must pass the convergence test before Passed is returned.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::resFormStr std::string resFormStr() const
Description of current residual form.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::ind_ std::vector< int > ind_
Vector containing the indices for the vectors that passed the test.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::curBlksz_ int curBlksz_
The current blocksize of the linear system being solved.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::OT OperatorTraits< Scalar, MV, OP > OT
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::firstcallDefineResForm_ bool firstcallDefineResForm_
Is this the first time DefineResForm is called?
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::setSubIdx int setSubIdx(size_t subIdx)
Set the block index of which we want to check the norm of the sub-residuals.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::curNumRHS_ int curNumRHS_
The current number of right-hand sides being solved for.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::resnormtype_ NormType resnormtype_
Type of norm to use on residual (OneNorm, TwoNorm, or InfNorm).
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getQuorum int getQuorum() const
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::scalevector_ std::vector< MagnitudeType > scalevector_
Scaling std::vector.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::reset void reset()
Resets the internal configuration to the initial state.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getStatus StatusType getStatus() const
Return the result of the most recent CheckStatus call.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::~StatusTestGenResSubNorm virtual ~StatusTestGenResSubNorm()
Destructor.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getResNormValue const std::vector< MagnitudeType > * getResNormValue() const
Returns the residual norm value, , computed in most recent call to CheckStatus.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::scalenormtype_ NormType scalenormtype_
Type of norm to use on the scaling (OneNorm, TwoNorm, or InfNorm).
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getTolerance MagnitudeType getTolerance() const
Returns the value of the tolerance, , set in the constructor.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::showMaxResNormOnly_ bool showMaxResNormOnly_
Determines if the entries for all of the residuals are shown or just the max.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::mapExtractor_ Teuchos::RCP< const ME > mapExtractor_
MapExtractor for range space.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::defineResForm int defineResForm(NormType TypeOfNorm)
Define form of the residual, its norm and optional weighting std::vector.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::resvector_ std::vector< MagnitudeType > resvector_
Residual norm std::vector.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::firstcallDefineScaleForm_ bool firstcallDefineScaleForm_
Is this the first time DefineScaleForm is called?
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::MvSubNorm void MvSubNorm(const MV &mv, size_t block, std::vector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &normVec, NormType type=TwoNorm)
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::subIdx_ size_t subIdx_
Index of block row in n x n block system of which we want to check the sub-residuals.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::MV Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > MV
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::getSolution Teuchos::RCP< MV > getSolution()
Returns the current solution estimate that was computed for the most recent residual test.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::curLSNum_ int curLSNum_
The current number of linear systems that have been loaded into the linear problem.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::OP Belos::OperatorT< MV > OP
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::curLSIdx_ std::vector< int > curLSIdx_
The indices of the current number of right-hand sides being solved for.
Belos::StatusTestGenResSubNorm< Scalar, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >, Belos::OperatorT< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > >, Teuchos::SerialDenseMatrix< LocalOrdinal, Scalar > >::MagnitudeType SCT::magnitudeType MagnitudeType
Exception indicating invalid cast attempted.
Exception throws to report errors in the internal logical of the program.