MueLu
Version of the Day
|
#include <MueLu_Utilities_fwd.hpp>
Public Types | |
typedef Teuchos::ScalarTraits < Scalar >::magnitudeType | Magnitude |
![]() | |
typedef Teuchos::ScalarTraits < Scalar >::magnitudeType | Magnitude |
Static Public Member Functions | |
static RCP< const Tpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > | Op2TpetraRow (RCP< const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >> Op) |
Helper utility to pull out the underlying Tpetra objects from an Xpetra object. More... | |
static RCP< Tpetra::RowMatrix < Scalar, LocalOrdinal, GlobalOrdinal, Node > > | Op2NonConstTpetraRow (RCP< Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >> Op) |
static void | MyOldScaleMatrix (Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const Teuchos::ArrayRCP< const Scalar > &scalingVector, bool doInverse=true, bool doFillComplete=true, bool doOptimizeStorage=true) |
static void | MyOldScaleMatrix_Epetra (Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const Teuchos::ArrayRCP< Scalar > &scalingVector, bool doFillComplete, bool doOptimizeStorage) |
static void | MyOldScaleMatrix_Tpetra (Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const Teuchos::ArrayRCP< Scalar > &scalingVector, bool doFillComplete, bool doOptimizeStorage) |
static RCP< Xpetra::Matrix < Scalar, LocalOrdinal, GlobalOrdinal, Node > > | Transpose (Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, bool optimizeTranspose=false, const std::string &label=std::string(), const Teuchos::RCP< Teuchos::ParameterList > ¶ms=Teuchos::null) |
static RCP < Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > | RealValuedToScalarMultiVector (RCP< Xpetra::MultiVector< typename Teuchos::ScalarTraits< Scalar >::coordinateType, LocalOrdinal, GlobalOrdinal, Node >> X) |
static RCP < Xpetra::MultiVector < typename Teuchos::ScalarTraits< Scalar > ::magnitudeType, LocalOrdinal, GlobalOrdinal, Node > > | ExtractCoordinatesFromParameterList (ParameterList ¶mList) |
![]() | |
static RCP< Matrix > | Crs2Op (RCP< CrsMatrix > Op) |
static RCP< CrsMatrixWrap > | GetThresholdedMatrix (const RCP< Matrix > &Ain, const Magnitude threshold, const bool keepDiagonal=true, const GlobalOrdinal expectedNNZperRow=-1) |
Threshold a matrix. More... | |
static RCP< Xpetra::CrsGraph < LocalOrdinal, GlobalOrdinal, Node > > | GetThresholdedGraph (const RCP< Matrix > &A, const Magnitude threshold, const GlobalOrdinal expectedNNZperRow=-1) |
Threshold a graph. More... | |
static Teuchos::ArrayRCP< Scalar > | GetMatrixDiagonal_arcp (const Matrix &A) |
Extract Matrix Diagonal. More... | |
static RCP< Vector > | GetMatrixDiagonal (const Matrix &A) |
Extract Matrix Diagonal. More... | |
static RCP< Vector > | GetMatrixDiagonalInverse (const Matrix &A, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps()*100, Scalar valReplacement=Teuchos::ScalarTraits< Scalar >::zero(), const bool doLumped=false) |
Extract Matrix Diagonal. More... | |
static Teuchos::RCP< Vector > | GetLumpedMatrixDiagonal (Matrix const &A, const bool doReciprocal=false, Magnitude tol=Teuchos::ScalarTraits< Scalar >::magnitude(Teuchos::ScalarTraits< Scalar >::zero()), Scalar valReplacement=Teuchos::ScalarTraits< Scalar >::zero(), const bool replaceSingleEntryRowWithZero=false, const bool useAverageAbsDiagVal=false) |
Extract Matrix Diagonal of lumped matrix. More... | |
static Teuchos::RCP< Vector > | GetMatrixMaxMinusOffDiagonal (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::RCP< Vector > | GetMatrixMaxMinusOffDiagonal (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &BlockNumber) |
static Teuchos::RCP< Vector > | GetInverse (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< Vector > | GetMatrixOverlappedDiagonal (const Matrix &A) |
Extract Overlapped Matrix Diagonal. More... | |
static RCP< Vector > | GetMatrixOverlappedDeletedRowsum (const Matrix &A) |
Extract Overlapped Matrix Deleted Rowsum. More... | |
static RCP< Xpetra::Vector < Magnitude, LocalOrdinal, GlobalOrdinal, Node > > | GetMatrixOverlappedAbsDeletedRowsum (const Matrix &A) |
static Teuchos::Array< Magnitude > | ResidualNorm (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS) |
static Teuchos::Array< Magnitude > | ResidualNorm (const Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op, const MultiVector &X, const MultiVector &RHS, MultiVector &Resid) |
static RCP< MultiVector > | Residual (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< Magnitude >::zero(), bool count_twos_as_dirichlet=false) |
Detect Dirichlet rows. More... | |
static Kokkos::View< bool *, typename NO::device_type::memory_space > | DetectDirichletRows_kokkos (const Matrix &A, const Magnitude &tol=Teuchos::ScalarTraits< typename Teuchos::ScalarTraits< SC >::magnitudeType >::zero(), const bool count_twos_as_dirichlet=false) |
Detect Dirichlet rows. More... | |
static Kokkos::View< bool *, typename Kokkos::HostSpace > | DetectDirichletRows_kokkos_host (const Matrix &A, const Magnitude &tol=Teuchos::ScalarTraits< typename Teuchos::ScalarTraits< SC >::magnitudeType >::zero(), const bool count_twos_as_dirichlet=false) |
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 | EnforceInitialCondition (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &RHS, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &InitialGuess, const Magnitude &tol=Teuchos::ScalarTraits< Magnitude >::zero(), const bool count_twos_as_dirichlet=false) |
Detect Dirichlet rows and copy values from RHS multivector to InitialGuess for Dirichlet rows. 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 | FindNonZeros (const typename Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::dual_view_type::t_dev_const_um vals, Kokkos::View< bool *, typename Node::device_type > 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 | DetectDirichletColsAndDomains (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const Kokkos::View< bool *, typename Node::device_type > &dirichletRows, Kokkos::View< bool *, typename Node::device_type > dirichletCols, Kokkos::View< bool *, typename Node::device_type > 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 void | ApplyRowSumCriterion (const Matrix &A, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType rowSumTol, Kokkos::View< bool *, typename NO::device_type::memory_space > &dirichletRows) |
static void | ApplyRowSumCriterionHost (const Matrix &A, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType rowSumTol, Kokkos::View< bool *, Kokkos::HostSpace > &dirichletRows) |
static void | ApplyRowSumCriterion (const Matrix &A, const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &BlockNumber, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType rowSumTol, Kokkos::View< bool *, typename NO::device_type::memory_space > &dirichletRows) |
static void | ApplyRowSumCriterionHost (const Matrix &A, const Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > &BlockNumber, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType rowSumTol, Kokkos::View< bool *, Kokkos::HostSpace > &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 Kokkos::View< bool *, typename NO::device_type > | DetectDirichletCols (const Matrix &A, const Kokkos::View< const bool *, typename NO::device_type > &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 | ApplyOAZToMatrixRows (RCP< Matrix > &A, const Kokkos::View< const bool *, typename Node::device_type > &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 | ZeroDirichletRows (RCP< Matrix > &A, const Kokkos::View< const bool *, typename NO::device_type > &dirichletRows, SC replaceWith=Teuchos::ScalarTraits< SC >::zero()) |
static void | ZeroDirichletRows (RCP< MultiVector > &X, const Kokkos::View< const bool *, typename NO::device_type > &dirichletRows, SC replaceWith=Teuchos::ScalarTraits< SC >::zero()) |
static void | ZeroDirichletCols (Teuchos::RCP< Matrix > &A, const Teuchos::ArrayRCP< const bool > &dirichletCols, Scalar replaceWith=Teuchos::ScalarTraits< Scalar >::zero()) |
static void | ZeroDirichletCols (RCP< Matrix > &A, const Kokkos::View< const bool *, typename NO::device_type > &dirichletCols, SC replaceWith=Teuchos::ScalarTraits< SC >::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< Xpetra::Matrix < Scalar, LocalOrdinal, GlobalOrdinal, Node > > | ReplaceNonZerosWithOnes (const RCP< Matrix > &original) |
Creates a copy of a matrix where the non-zero entries are replaced by ones. More... | |
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) |
static RCP< Xpetra::Vector < LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > > | CuthillMcKee (const Matrix &Op) |
static RCP< Xpetra::Vector < LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > > | ReverseCuthillMcKee (const Matrix &Op) |
static RCP< const Epetra_MultiVector > | MV2EpetraMV (RCP< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >> const vec) |
Helper utility to pull out the underlying Epetra objects from an Xpetra object. More... | |
static RCP< Epetra_MultiVector > | MV2NonConstEpetraMV (RCP< Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >> vec) |
static const Epetra_MultiVector & | MV2EpetraMV (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &vec) |
static Epetra_MultiVector & | MV2NonConstEpetraMV (Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &vec) |
static RCP< const Epetra_CrsMatrix > | Op2EpetraCrs (RCP< const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >> Op) |
static RCP< Epetra_CrsMatrix > | Op2NonConstEpetraCrs (RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >> Op) |
static const Epetra_CrsMatrix & | Op2EpetraCrs (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op) |
static Epetra_CrsMatrix & | Op2NonConstEpetraCrs (Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &Op) |
static const Epetra_Map & | Map2EpetraMap (const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > &map) |
MueLu utility class.
MueLu utility class (specialization SC=double and LO=GO=int).
This class provides a number of static helper methods. Some are temporary and will eventually go away, while others should be moved to Xpetra.
This class provides a number of static helper methods. Some are temporary and will eventually go away, while others should be moved to Xpetra.
Note: this is the implementation for Epetra. Tpetra throws if TPETRA_INST_INT_INT is disabled!
Definition at line 15 of file MueLu_Utilities_fwd.hpp.
typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::Utilities< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Magnitude |
Definition at line 125 of file MueLu_Utilities_decl.hpp.
|
static |
Helper utility to pull out the underlying Epetra objects from an Xpetra object.
Definition at line 87 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 95 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 109 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 103 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 115 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 126 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 137 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 152 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 167 of file MueLu_Utilities_def.hpp.
|
static |
Helper utility to pull out the underlying Tpetra objects from an Xpetra object.
Definition at line 176 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 206 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 236 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 264 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 269 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 342 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 426 of file MueLu_Utilities_def.hpp.
|
static |
Definition at line 454 of file MueLu_Utilities_def.hpp.