MueLu  Version of the Day
MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

#include <MueLu_UtilitiesBase_fwd.hpp>

Inheritance diagram for MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >:
MueLu::Utilities< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Public Types

typedef Teuchos::ScalarTraits< Scalar >::magnitudeType Magnitude
 

Static Public Member Functions

static RCP< MatrixCrs2Op (RCP< CrsMatrix > Op)
 
static Teuchos::ArrayRCP< ScalarGetMatrixDiagonal (const Matrix &A)
 Extract Matrix Diagonal. More...
 
static RCP< VectorGetMatrixDiagonalInverse (const Matrix &A, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps() *100, Scalar valReplacement=Teuchos::ScalarTraits< Scalar >::zero())
 Extract Matrix Diagonal. More...
 
static Teuchos::RCP< VectorGetLumpedMatrixDiagonal (Matrix const &A, const bool doReciprocal=false, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps() *100, Scalar valReplacement=Teuchos::ScalarTraits< Scalar >::zero(), const bool replaceSingleEntryRowWithZero=false)
 Extract Matrix Diagonal of lumped matrix. More...
 
static Teuchos::ArrayRCP< MagnitudeGetMatrixMaxMinusOffDiagonal (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A)
 Return vector containing: max_{i=k}(-a_ik), for each for i in the matrix. More...
 
static Teuchos::ArrayRCP< MagnitudeGetMatrixMaxMinusOffDiagonal (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &BlockNumber)
 
static Teuchos::RCP< VectorGetInverse (Teuchos::RCP< const Vector > v, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps() *100, Scalar valReplacement=Teuchos::ScalarTraits< Scalar >::zero())
 Return vector containing inverse of input vector. More...
 
static RCP< VectorGetMatrixOverlappedDiagonal (const Matrix &A)
 Extract Overlapped Matrix Diagonal. More...
 
static RCP< VectorGetMatrixOverlappedDeletedRowsum (const Matrix &A)
 Extract Overlapped Matrix Deleted Rowsum. More...
 
static RCP< Xpetra::Vector< Magnitude, LocalOrdinal, GlobalOrdinal, Node > > GetMatrixOverlappedAbsDeletedRowsum (const Matrix &A)
 
static Teuchos::Array< MagnitudeResidualNorm (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS)
 
static Teuchos::Array< MagnitudeResidualNorm (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS, MultiVector &Resid)
 
static RCP< MultiVectorResidual (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS)
 
static void Residual (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS, MultiVector &Resid)
 
static Scalar PowerMethod (const Matrix &A, bool scaleByDiag=true, LocalOrdinal niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 Power method. More...
 
static Scalar PowerMethod (const Matrix &A, const RCP< Vector > &diagInvVec, LocalOrdinal niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 Power method. More...
 
static RCP< Teuchos::FancyOStream > MakeFancy (std::ostream &os)
 
static Teuchos::ScalarTraits< Scalar >::magnitudeType Distance2 (const Teuchos::Array< Teuchos::ArrayRCP< const Scalar >> &v, LocalOrdinal i0, LocalOrdinal i1)
 Squared distance between two rows in a multivector. More...
 
static Teuchos::ScalarTraits< Scalar >::magnitudeType Distance2 (const Teuchos::ArrayView< double > &weight, const Teuchos::Array< Teuchos::ArrayRCP< const Scalar >> &v, LocalOrdinal i0, LocalOrdinal i1)
 Weighted squared distance between two rows in a multivector. More...
 
static Teuchos::ArrayRCP< const bool > DetectDirichletRows (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Magnitude &tol=Teuchos::ScalarTraits< Scalar >::zero(), bool count_twos_as_dirichlet=false)
 Detect Dirichlet rows. More...
 
static Teuchos::ArrayRCP< const bool > DetectDirichletRowsExt (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, bool &bHasZeroDiagonal, const Magnitude &tol=Teuchos::ScalarTraits< Scalar >::zero())
 Detect Dirichlet rows (extended version) More...
 
static void FindNonZeros (const Teuchos::ArrayRCP< const Scalar > vals, Teuchos::ArrayRCP< bool > nonzeros)
 Find non-zero values in an ArrayRCP Compares the value to 2 * machine epsilon. More...
 
static void DetectDirichletColsAndDomains (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Teuchos::ArrayRCP< bool > &dirichletRows, Teuchos::ArrayRCP< bool > dirichletCols, Teuchos::ArrayRCP< bool > dirichletDomain)
 Detects Dirichlet columns & domains from a list of Dirichlet rows. More...
 
static void ApplyRowSumCriterion (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Magnitude rowSumTol, Teuchos::ArrayRCP< bool > &dirichletRows)
 Apply Rowsum Criterion. More...
 
static void ApplyRowSumCriterion (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &BlockNumber, const Magnitude rowSumTol, Teuchos::ArrayRCP< bool > &dirichletRows)
 
static Teuchos::ArrayRCP< const bool > DetectDirichletCols (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows)
 Detect Dirichlet columns based on Dirichlet rows. More...
 
static Scalar Frobenius (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &B)
 Frobenius inner product of two matrices. More...
 
static void SetRandomSeed (const Teuchos::Comm< int > &comm)
 Set seed for random number generator. More...
 
static void FindDirichletRows (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, std::vector< LocalOrdinal > &dirichletRows, bool count_twos_as_dirichlet=false)
 
static void ApplyOAZToMatrixRows (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, const std::vector< LocalOrdinal > &dirichletRows)
 
static void ApplyOAZToMatrixRows (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows)
 
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, const std::vector< LocalOrdinal > &dirichletRows, Scalar replaceWith=Teuchos::ScalarTraits< Scalar >::zero())
 
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows, Scalar replaceWith=Teuchos::ScalarTraits< Scalar >::zero())
 
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &X, const Teuchos::ArrayRCP< const bool > &dirichletRows, Scalar replaceWith=Teuchos::ScalarTraits< Scalar >::zero())
 
static void ZeroDirichletCols (Teuchos::RCP< Matrix > &A, const Teuchos::ArrayRCP< const bool > &dirichletCols, Scalar replaceWith=Teuchos::ScalarTraits< Scalar >::zero())
 
static void FindDirichletRowsAndPropagateToCols (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, Teuchos::RCP< Xpetra::Vector< int, LocalOrdinal, GlobalOrdinal, Node > > &isDirichletRow, Teuchos::RCP< Xpetra::Vector< int, LocalOrdinal, GlobalOrdinal, Node > > &isDirichletCol)
 
static RCP< const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > > GeneratedBlockedTargetMap (const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > &sourceBlockedMap, const Xpetra::Import< LocalOrdinal, GlobalOrdinal, Node > &Importer)
 
static bool MapsAreNested (const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > &rowMap, const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > &colMap)
 

Private Types

typedef Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, NodeCrsMatrixWrap
 
typedef Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, NodeCrsMatrix
 
typedef Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, NodeMatrix
 
typedef Xpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, NodeVector
 
typedef Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, NodeBlockedVector
 
typedef Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, NodeMultiVector
 
typedef Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, NodeBlockedMultiVector
 
typedef Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, NodeBlockedMap
 
typedef Xpetra::Map< LocalOrdinal, GlobalOrdinal, NodeMap
 

Detailed Description

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
class MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Definition at line 54 of file MueLu_UtilitiesBase_fwd.hpp.

Member Typedef Documentation

◆ CrsMatrixWrap

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::CrsMatrixWrap<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CrsMatrixWrap
private

Definition at line 113 of file MueLu_UtilitiesBase_decl.hpp.

◆ CrsMatrix

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CrsMatrix
private

Definition at line 114 of file MueLu_UtilitiesBase_decl.hpp.

◆ Matrix

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::Matrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Matrix
private

Definition at line 115 of file MueLu_UtilitiesBase_decl.hpp.

◆ Vector

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Vector
private

Definition at line 116 of file MueLu_UtilitiesBase_decl.hpp.

◆ BlockedVector

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::BlockedVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedVector
private

Definition at line 117 of file MueLu_UtilitiesBase_decl.hpp.

◆ MultiVector

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::MultiVector
private

Definition at line 118 of file MueLu_UtilitiesBase_decl.hpp.

◆ BlockedMultiVector

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::BlockedMultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector
private

Definition at line 119 of file MueLu_UtilitiesBase_decl.hpp.

◆ BlockedMap

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::BlockedMap<LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMap
private

Definition at line 120 of file MueLu_UtilitiesBase_decl.hpp.

◆ Map

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Xpetra::Map<LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Map
private

Definition at line 121 of file MueLu_UtilitiesBase_decl.hpp.

◆ Magnitude

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Magnitude

Definition at line 123 of file MueLu_UtilitiesBase_decl.hpp.

Member Function Documentation

◆ Crs2Op()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<Matrix> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Crs2Op ( RCP< CrsMatrix Op)
inlinestatic

Definition at line 126 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixDiagonal()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ArrayRCP<Scalar> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixDiagonal ( const Matrix A)
inlinestatic

Extract Matrix Diagonal.

Returns Matrix diagonal in ArrayRCP.

NOTE – it's assumed that A has been fillComplete'd.

Definition at line 138 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixDiagonalInverse()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixDiagonalInverse ( const Matrix A,
Magnitude  tol = Teuchos::ScalarTraits<Scalar>::eps()*100,
Scalar  valReplacement = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Extract Matrix Diagonal.

Returns inverse of the Matrix diagonal in ArrayRCP.

NOTE – it's assumed that A has been fillComplete'd.

Definition at line 166 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetLumpedMatrixDiagonal()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetLumpedMatrixDiagonal ( Matrix const &  A,
const bool  doReciprocal = false,
Magnitude  tol = Teuchos::ScalarTraits<Scalar>::eps()*100,
Scalar  valReplacement = Teuchos::ScalarTraits<Scalar>::zero(),
const bool  replaceSingleEntryRowWithZero = false 
)
inlinestatic

Extract Matrix Diagonal of lumped matrix.

Returns Matrix diagonal of lumped matrix in RCP<Vector>.

NOTE – it's assumed that A has been fillComplete'd.

Definition at line 185 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixMaxMinusOffDiagonal() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ArrayRCP<Magnitude> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixMaxMinusOffDiagonal ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A)
inlinestatic

Return vector containing: max_{i=k}(-a_ik), for each for i in the matrix.

Parameters
[in]Ainput matrix : vector containing max_{i=k}(-a_ik)

Definition at line 270 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixMaxMinusOffDiagonal() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ArrayRCP<Magnitude> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixMaxMinusOffDiagonal ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &  BlockNumber 
)
inlinestatic

Definition at line 289 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetInverse()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetInverse ( Teuchos::RCP< const Vector v,
Magnitude  tol = Teuchos::ScalarTraits<Scalar>::eps()*100,
Scalar  valReplacement = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Return vector containing inverse of input vector.

Parameters
[in]vinput vector
[in]toltolerance. If entries of input vector are smaller than tolerance they are replaced by valReplacement (see below). The default value for tol is 100*eps (machine precision)
[in]valReplacementValue put in for undefined entries in output vector (default: 0.0) : vector containing inverse values of input vector v

Definition at line 321 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixOverlappedDiagonal()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixOverlappedDiagonal ( const Matrix A)
inlinestatic

Extract Overlapped Matrix Diagonal.

Returns overlapped Matrix diagonal in ArrayRCP.

The local overlapped diagonal has an entry for each index in A's column map. NOTE – it's assumed that A has been fillComplete'd.

Definition at line 359 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixOverlappedDeletedRowsum()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixOverlappedDeletedRowsum ( const Matrix A)
inlinestatic

Extract Overlapped Matrix Deleted Rowsum.

Returns overlapped Matrix deleted Rowsum in ArrayRCP.

The local overlapped deleted Rowsum has an entry for each index in A's column map. NOTE – it's assumed that A has been fillComplete'd.

Definition at line 402 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixOverlappedAbsDeletedRowsum()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<Xpetra::Vector<Magnitude,LocalOrdinal,GlobalOrdinal,Node> > MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixOverlappedAbsDeletedRowsum ( const Matrix A)
inlinestatic

Definition at line 445 of file MueLu_UtilitiesBase_decl.hpp.

◆ ResidualNorm() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::Array<Magnitude> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ResidualNorm ( const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Op,
const MultiVector X,
const MultiVector RHS 
)
inlinestatic

Definition at line 494 of file MueLu_UtilitiesBase_decl.hpp.

◆ ResidualNorm() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::Array<Magnitude> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ResidualNorm ( const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Op,
const MultiVector X,
const MultiVector RHS,
MultiVector Resid 
)
inlinestatic

Definition at line 503 of file MueLu_UtilitiesBase_decl.hpp.

◆ Residual() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<MultiVector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Residual ( const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Op,
const MultiVector X,
const MultiVector RHS 
)
inlinestatic

Definition at line 512 of file MueLu_UtilitiesBase_decl.hpp.

◆ Residual() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Residual ( const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  Op,
const MultiVector X,
const MultiVector RHS,
MultiVector Resid 
)
inlinestatic

Definition at line 522 of file MueLu_UtilitiesBase_decl.hpp.

◆ PowerMethod() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Scalar MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::PowerMethod ( const Matrix A,
bool  scaleByDiag = true,
LocalOrdinal  niters = 10,
Magnitude  tolerance = 1e-2,
bool  verbose = false,
unsigned int  seed = 123 
)
inlinestatic

Power method.

Parameters
Amatrix
scaleByDiagif true, estimate the largest eigenvalue of \( D^; A \).
nitersmaximum number of iterations
tolerancestopping tolerance if true, print iteration information seed for randomizing initial guess

(Shamelessly grabbed from tpetra/examples.)

Definition at line 540 of file MueLu_UtilitiesBase_decl.hpp.

◆ PowerMethod() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Scalar MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::PowerMethod ( const Matrix A,
const RCP< Vector > &  diagInvVec,
LocalOrdinal  niters = 10,
Magnitude  tolerance = 1e-2,
bool  verbose = false,
unsigned int  seed = 123 
)
inlinestatic

Power method.

Parameters
Amatrix
diagInvVecreciprocal of matrix diagonal
nitersmaximum number of iterations
tolerancestopping tolerance if true, print iteration information seed for randomizing initial guess

(Shamelessly grabbed from tpetra/examples.)

Definition at line 569 of file MueLu_UtilitiesBase_decl.hpp.

◆ MakeFancy()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<Teuchos::FancyOStream> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::MakeFancy ( std::ostream &  os)
inlinestatic

Definition at line 617 of file MueLu_UtilitiesBase_decl.hpp.

◆ Distance2() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Distance2 ( const Teuchos::Array< Teuchos::ArrayRCP< const Scalar >> &  v,
LocalOrdinal  i0,
LocalOrdinal  i1 
)
inlinestatic

Squared distance between two rows in a multivector.

Used for coordinate vectors.

Definition at line 626 of file MueLu_UtilitiesBase_decl.hpp.

◆ Distance2() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Distance2 ( const Teuchos::ArrayView< double > &  weight,
const Teuchos::Array< Teuchos::ArrayRCP< const Scalar >> &  v,
LocalOrdinal  i0,
LocalOrdinal  i1 
)
inlinestatic

Weighted squared distance between two rows in a multivector.

Used for coordinate vectors.

Definition at line 640 of file MueLu_UtilitiesBase_decl.hpp.

◆ DetectDirichletRows()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ArrayRCP<const bool> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DetectDirichletRows ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Magnitude tol = Teuchos::ScalarTraits<Scalar>::zero(),
bool  count_twos_as_dirichlet = false 
)
inlinestatic

Detect Dirichlet rows.

The routine assumes, that if there is only one nonzero per row, it is on the diagonal and therefore a DBC. This is safe for most of our applications, but one should be aware of that.

There is an alternative routine (see DetectDirichletRowsExt)

Parameters
[in]Amatrix
[in]tolIf a row entry's magnitude is less than or equal to this tolerance, the entry is treated as zero.
Returns
boolean array. The ith entry is true iff row i is a Dirichlet row.

Definition at line 663 of file MueLu_UtilitiesBase_decl.hpp.

◆ DetectDirichletRowsExt()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ArrayRCP<const bool> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DetectDirichletRowsExt ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
bool &  bHasZeroDiagonal,
const Magnitude tol = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Detect Dirichlet rows (extended version)

Look at each matrix row and mark it as Dirichlet if there is only one "not small" nonzero on the diagonal. In determining whether a nonzero is "not small" use abs(A(i,j)) / sqrt(abs(diag[i]*diag[j])) > tol

Parameters
[in]Amatrix
[in/out]bHasZeroDiagonal Reference to boolean variable. Returns true if there is a zero on the diagonal in the local part of the Matrix. Otherwise it is false. Different processors might return a different value. There is no global reduction!
[in]tolIf a row entry's magnitude is less than or equal to this tolerance, the entry is treated as zero.
Returns
boolean array. The ith entry is true iff row i is a Dirichlet row.

Definition at line 715 of file MueLu_UtilitiesBase_decl.hpp.

◆ FindNonZeros()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::FindNonZeros ( const Teuchos::ArrayRCP< const Scalar vals,
Teuchos::ArrayRCP< bool >  nonzeros 
)
inlinestatic

Find non-zero values in an ArrayRCP Compares the value to 2 * machine epsilon.

Parameters
[in]vals- ArrayRCP<const Scalar> of values to be tested
[out]nonzeros- ArrayRCP<bool> of true/false values for whether each entry in vals is nonzero

Definition at line 753 of file MueLu_UtilitiesBase_decl.hpp.

◆ DetectDirichletColsAndDomains()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DetectDirichletColsAndDomains ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Teuchos::ArrayRCP< bool > &  dirichletRows,
Teuchos::ArrayRCP< bool >  dirichletCols,
Teuchos::ArrayRCP< bool >  dirichletDomain 
)
inlinestatic

Detects Dirichlet columns & domains from a list of Dirichlet rows.

Parameters
[in]A- Matrix on which to apply Dirichlet column detection
[in]dirichletRows- ArrayRCP<bool> of indicators as to which rows are Dirichlet
[out]dirichletCols- ArrayRCP<bool> of indicators as to which cols are Dirichlet
[out]dirichletDomain- ArrayRCP<bool> of indicators as to which domains are Dirichlet

Definition at line 771 of file MueLu_UtilitiesBase_decl.hpp.

◆ ApplyRowSumCriterion() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ApplyRowSumCriterion ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Magnitude  rowSumTol,
Teuchos::ArrayRCP< bool > &  dirichletRows 
)
inlinestatic

Apply Rowsum Criterion.

Flags a row i as dirichlet if:

{j=i} A_ij > A_ii * tol

Parameters
[in]Amatrix
[in]rowSumTolSee above
[in/out]dirichletRows boolean array. The ith entry is true if the above criterion is satisfied (or if it was already set to true)

Definition at line 823 of file MueLu_UtilitiesBase_decl.hpp.

◆ ApplyRowSumCriterion() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ApplyRowSumCriterion ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &  BlockNumber,
const Magnitude  rowSumTol,
Teuchos::ArrayRCP< bool > &  dirichletRows 
)
inlinestatic

Definition at line 851 of file MueLu_UtilitiesBase_decl.hpp.

◆ DetectDirichletCols()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Teuchos::ArrayRCP<const bool> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DetectDirichletCols ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Teuchos::ArrayRCP< const bool > &  dirichletRows 
)
inlinestatic

Detect Dirichlet columns based on Dirichlet rows.

The routine finds all column indices that are in Dirichlet rows, where Dirichlet rows are described by dirichletRows, as returned by DetectDirichletRows.

Parameters
[in]Amatrix
[in]dirichletRowsarray of Dirichlet rows.
Returns
boolean array. The ith entry is true iff row i is a Dirichlet column.

Definition at line 896 of file MueLu_UtilitiesBase_decl.hpp.

◆ Frobenius()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static Scalar MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Frobenius ( const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  B 
)
inlinestatic

Frobenius inner product of two matrices.

Used in energy minimization algorithms

Definition at line 936 of file MueLu_UtilitiesBase_decl.hpp.

◆ SetRandomSeed()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SetRandomSeed ( const Teuchos::Comm< int > &  comm)
inlinestatic

Set seed for random number generator.

Distribute the seeds evenly in [1,INT_MAX-1]. This guarantees nothing about where random number streams on difference processes will intersect. This does avoid overflow situations in parallel when multiplying by a PID. It also avoids the pathological case of having the same random number stream on each process.

Definition at line 1003 of file MueLu_UtilitiesBase_decl.hpp.

◆ FindDirichletRows()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::FindDirichletRows ( Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  A,
std::vector< LocalOrdinal > &  dirichletRows,
bool  count_twos_as_dirichlet = false 
)
inlinestatic

Definition at line 1030 of file MueLu_UtilitiesBase_decl.hpp.

◆ ApplyOAZToMatrixRows() [1/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ApplyOAZToMatrixRows ( Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  A,
const std::vector< LocalOrdinal > &  dirichletRows 
)
inlinestatic

Definition at line 1052 of file MueLu_UtilitiesBase_decl.hpp.

◆ ApplyOAZToMatrixRows() [2/2]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ApplyOAZToMatrixRows ( Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  A,
const Teuchos::ArrayRCP< const bool > &  dirichletRows 
)
inlinestatic

Definition at line 1078 of file MueLu_UtilitiesBase_decl.hpp.

◆ ZeroDirichletRows() [1/3]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ZeroDirichletRows ( Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  A,
const std::vector< LocalOrdinal > &  dirichletRows,
Scalar  replaceWith = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Definition at line 1112 of file MueLu_UtilitiesBase_decl.hpp.

◆ ZeroDirichletRows() [2/3]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ZeroDirichletRows ( Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  A,
const Teuchos::ArrayRCP< const bool > &  dirichletRows,
Scalar  replaceWith = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Definition at line 1128 of file MueLu_UtilitiesBase_decl.hpp.

◆ ZeroDirichletRows() [3/3]

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ZeroDirichletRows ( Teuchos::RCP< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  X,
const Teuchos::ArrayRCP< const bool > &  dirichletRows,
Scalar  replaceWith = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Definition at line 1147 of file MueLu_UtilitiesBase_decl.hpp.

◆ ZeroDirichletCols()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ZeroDirichletCols ( Teuchos::RCP< Matrix > &  A,
const Teuchos::ArrayRCP< const bool > &  dirichletCols,
Scalar  replaceWith = Teuchos::ScalarTraits<Scalar>::zero() 
)
inlinestatic

Definition at line 1161 of file MueLu_UtilitiesBase_decl.hpp.

◆ FindDirichletRowsAndPropagateToCols()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::FindDirichletRowsAndPropagateToCols ( Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &  A,
Teuchos::RCP< Xpetra::Vector< int, LocalOrdinal, GlobalOrdinal, Node > > &  isDirichletRow,
Teuchos::RCP< Xpetra::Vector< int, LocalOrdinal, GlobalOrdinal, Node > > &  isDirichletCol 
)
inlinestatic

Definition at line 1178 of file MueLu_UtilitiesBase_decl.hpp.

◆ GeneratedBlockedTargetMap()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static RCP<const Xpetra::BlockedMap<LocalOrdinal,GlobalOrdinal,Node> > MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GeneratedBlockedTargetMap ( const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > &  sourceBlockedMap,
const Xpetra::Import< LocalOrdinal, GlobalOrdinal, Node > &  Importer 
)
inlinestatic

Definition at line 1221 of file MueLu_UtilitiesBase_decl.hpp.

◆ MapsAreNested()

template<class Scalar, class LocalOrdinal = DefaultLocalOrdinal, class GlobalOrdinal = DefaultGlobalOrdinal, class Node = DefaultNode>
static bool MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::MapsAreNested ( const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > &  rowMap,
const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > &  colMap 
)
inlinestatic

Definition at line 1275 of file MueLu_UtilitiesBase_decl.hpp.


The documentation for this class was generated from the following files: