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< Scalar > GetMatrixDiagonal (const Matrix &A)
 Extract Matrix Diagonal. More...
 
static RCP< VectorGetMatrixDiagonalInverse (const Matrix &A, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps() *100)
 Extract Matrix Diagonal. More...
 
static Teuchos::ArrayRCP< Scalar > GetLumpedMatrixDiagonal (const Matrix &A)
 Extract Matrix Diagonal of lumped matrix. More...
 
static Teuchos::RCP< VectorGetLumpedMatrixDiagonal (Teuchos::RCP< const Matrix > rcpA)
 Extract Matrix Diagonal of lumped matrix. More...
 
static Teuchos::RCP< VectorGetInverse (Teuchos::RCP< const Vector > v, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps() *100, Scalar tolReplacement=Teuchos::ScalarTraits< Scalar >::zero())
 Return vector containing inverse of input vector. More...
 
static RCP< VectorGetMatrixOverlappedDiagonal (const Matrix &A)
 Extract Overlapped Matrix Diagonal. More...
 
static Teuchos::Array< MagnitudeResidualNorm (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS)
 
static RCP< MultiVectorResidual (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS)
 
static void PauseForDebugger ()
 
static Scalar PowerMethod (const Matrix &A, bool scaleByDiag=true, LocalOrdinal niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 Simple transpose for Tpetra::CrsMatrix types. More...
 
static RCP< Teuchos::FancyOStream > MakeFancy (std::ostream &os)
 
static Teuchos::ScalarTraits< Scalar >::magnitudeType Distance2 (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &v, LocalOrdinal i0, LocalOrdinal i1)
 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())
 Detect 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...
 

Private Types

typedef Xpetra::CrsMatrixWrap< Scalar, LocalOrdinal, GlobalOrdinal, Node > CrsMatrixWrap
 
typedef Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > CrsMatrix
 
typedef Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > Matrix
 
typedef Xpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > Vector
 
typedef Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > MultiVector
 
typedef Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > Map
 

Detailed Description

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Xpetra::CrsMatrixWrap<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CrsMatrixWrap
private

Definition at line 108 of file MueLu_UtilitiesBase_decl.hpp.

◆ CrsMatrix

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Xpetra::CrsMatrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CrsMatrix
private

Definition at line 109 of file MueLu_UtilitiesBase_decl.hpp.

◆ Matrix

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Xpetra::Matrix<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Matrix
private

Definition at line 110 of file MueLu_UtilitiesBase_decl.hpp.

◆ Vector

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Xpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Vector
private

Definition at line 111 of file MueLu_UtilitiesBase_decl.hpp.

◆ MultiVector

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Xpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::MultiVector
private

Definition at line 112 of file MueLu_UtilitiesBase_decl.hpp.

◆ Map

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Xpetra::Map<LocalOrdinal,GlobalOrdinal,Node> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Map
private

Definition at line 113 of file MueLu_UtilitiesBase_decl.hpp.

◆ Magnitude

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Magnitude

Definition at line 115 of file MueLu_UtilitiesBase_decl.hpp.

Member Function Documentation

◆ Crs2Op()

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

Definition at line 118 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixDiagonal()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 130 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixDiagonalInverse()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
static RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetMatrixDiagonalInverse ( const Matrix A,
Magnitude  tol = Teuchos::ScalarTraits<Scalar>::eps()*100 
)
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 158 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetLumpedMatrixDiagonal() [1/2]

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
static Teuchos::ArrayRCP<Scalar> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetLumpedMatrixDiagonal ( const Matrix A)
inlinestatic

Extract Matrix Diagonal of lumped matrix.

Returns Matrix diagonal of lumped matrix in ArrayRCP.

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

Definition at line 180 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetLumpedMatrixDiagonal() [2/2]

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
static Teuchos::RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetLumpedMatrixDiagonal ( Teuchos::RCP< const Matrix rcpA)
inlinestatic

Extract Matrix Diagonal of lumped matrix.

Returns Matrix diagonal of lumped matrix in ArrayRCP.

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

Definition at line 202 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetInverse()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
static Teuchos::RCP<Vector> MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::GetInverse ( Teuchos::RCP< const Vector v,
Magnitude  tol = Teuchos::ScalarTraits<Scalar>::eps()*100,
Scalar  tolReplacement = 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 tolReplacement (see below). The default value for tol is 100*eps (machine precision)
[in]tolReplacementValue put in for undefined entries in output vector (default: 0.0) : vector containing inverse values of input vector v

Definition at line 254 of file MueLu_UtilitiesBase_decl.hpp.

◆ GetMatrixOverlappedDiagonal()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 275 of file MueLu_UtilitiesBase_decl.hpp.

◆ ResidualNorm()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 311 of file MueLu_UtilitiesBase_decl.hpp.

◆ Residual()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 320 of file MueLu_UtilitiesBase_decl.hpp.

◆ PauseForDebugger()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
static void MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::PauseForDebugger ( )
inlinestatic

Definition at line 332 of file MueLu_UtilitiesBase_decl.hpp.

◆ PowerMethod()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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

Simple transpose for Tpetra::CrsMatrix types.

Note: This is very inefficient, as it inserts one entry at a time.

Power method.

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

(Shamelessly grabbed from tpetra/examples.)

Definition at line 374 of file MueLu_UtilitiesBase_decl.hpp.

◆ MakeFancy()

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

Definition at line 432 of file MueLu_UtilitiesBase_decl.hpp.

◆ Distance2()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
static Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::UtilitiesBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Distance2 ( const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  v,
LocalOrdinal  i0,
LocalOrdinal  i1 
)
inlinestatic

Squared distance between two rows in a multivector.

Used for coordinate vectors.

Definition at line 441 of file MueLu_UtilitiesBase_decl.hpp.

◆ DetectDirichletRows()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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() 
)
inlinestatic

Detect Dirichlet rows.

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 459 of file MueLu_UtilitiesBase_decl.hpp.

◆ Frobenius()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 482 of file MueLu_UtilitiesBase_decl.hpp.

◆ SetRandomSeed()

template<class Scalar, class LocalOrdinal = int, class GlobalOrdinal = LocalOrdinal, class Node = KokkosClassic::DefaultNode::DefaultNodeType>
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 549 of file MueLu_UtilitiesBase_decl.hpp.


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