MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu::Utilities_kokkos< double, int, int, Node > Class Template Reference

#include <MueLu_Utilities_kokkos_decl.hpp>

Inheritance diagram for MueLu::Utilities_kokkos< double, int, int, Node >:
MueLu::UtilitiesBase< double, int, int, Node >

Public Types

typedef double Scalar
 
typedef int LocalOrdinal
 
typedef int GlobalOrdinal
 
typedef Teuchos::ScalarTraits< Scalar >::magnitudeType Magnitude
 
using CoordinateType = typename Teuchos::ScalarTraits< Scalar >::coordinateType
 
using RealValuedMultiVector = Xpetra::MultiVector< CoordinateType, LocalOrdinal, GlobalOrdinal, Node >
 
- Public Types inherited from MueLu::UtilitiesBase< double, int, int, Node >
typedef Teuchos::ScalarTraits< double >::magnitudeType Magnitude
 

Static Public Member Functions

static RCP< const Epetra_MultiVectorMV2EpetraMV (RCP< MultiVector > const vec)
 Helper utility to pull out the underlying Epetra objects from an Xpetra object.
 
static RCP< Epetra_MultiVectorMV2NonConstEpetraMV (RCP< MultiVector > vec)
 
static const Epetra_MultiVectorMV2EpetraMV (const MultiVector &vec)
 
static Epetra_MultiVectorMV2NonConstEpetraMV (MultiVector &vec)
 
static RCP< const Epetra_CrsMatrixOp2EpetraCrs (RCP< const Matrix > Op)
 
static RCP< Epetra_CrsMatrixOp2NonConstEpetraCrs (RCP< Matrix > Op)
 
static const Epetra_CrsMatrixOp2EpetraCrs (const Matrix &Op)
 
static Epetra_CrsMatrixOp2NonConstEpetraCrs (Matrix &Op)
 
static const Epetra_MapMap2EpetraMap (const Map &map)
 
static RCP< const Tpetra::MultiVector< SC, LO, GO, NO > > MV2TpetraMV (RCP< MultiVector > const vec)
 Helper utility to pull out the underlying Tpetra objects from an Xpetra object.
 
static RCP< Tpetra::MultiVector< SC, LO, GO, NO > > MV2NonConstTpetraMV (RCP< MultiVector > vec)
 
static RCP< Tpetra::MultiVector< SC, LO, GO, NO > > MV2NonConstTpetraMV2 (MultiVector &vec)
 
static const Tpetra::MultiVector< SC, LO, GO, NO > & MV2TpetraMV (const MultiVector &vec)
 
static Tpetra::MultiVector< SC, LO, GO, NO > & MV2NonConstTpetraMV (MultiVector &vec)
 
static RCP< const Tpetra::CrsMatrix< SC, LO, GO, NO > > Op2TpetraCrs (RCP< const Matrix > Op)
 
static RCP< Tpetra::CrsMatrix< SC, LO, GO, NO > > Op2NonConstTpetraCrs (RCP< Matrix > Op)
 
static const Tpetra::CrsMatrix< SC, LO, GO, NO > & Op2TpetraCrs (const Matrix &Op)
 
static Tpetra::CrsMatrix< SC, LO, GO, NO > & Op2NonConstTpetraCrs (Matrix &Op)
 
static RCP< const Tpetra::RowMatrix< SC, LO, GO, NO > > Op2TpetraRow (RCP< const Matrix > Op)
 
static RCP< Tpetra::RowMatrix< SC, LO, GO, NO > > Op2NonConstTpetraRow (RCP< Matrix > Op)
 
static const RCP< const Tpetra::Map< LO, GO, NO > > Map2TpetraMap (const Map &map)
 
static RCP< Xpetra::Matrix< SC, LO, GO, NO > > Crs2Op (RCP< CrsMatrix > Op)
 
static RCP< VectorGetMatrixDiagonal (const Matrix &A)
 
static RCP< VectorGetMatrixDiagonalInverse (const Matrix &A, Magnitude tol=Teuchos::ScalarTraits< SC >::eps() *100, const bool doLumped=false)
 
static RCP< VectorGetLumpedMatrixDiagonal (Matrix const &A, const bool doReciprocal=false, Magnitude tol=Teuchos::ScalarTraits< Scalar >::eps() *100, Scalar tolReplacement=Teuchos::ScalarTraits< Scalar >::zero(), const bool replaceSingleEntryRowWithZero=false, const bool useAverageAbsDiagVal=false)
 
static RCP< VectorGetMatrixOverlappedDiagonal (const Matrix &A)
 
static RCP< VectorGetInverse (RCP< const Vector > v, Magnitude tol=Teuchos::ScalarTraits< SC >::eps() *100, SC tolReplacement=Teuchos::ScalarTraits< SC >::zero())
 
static Teuchos::Array< MagnitudeResidualNorm (const Operator &Op, const MultiVector &X, const MultiVector &RHS)
 
static RCP< MultiVectorResidual (const Operator &Op, const MultiVector &X, const MultiVector &RHS)
 
static RCP< Teuchos::FancyOStream > MakeFancy (std::ostream &os)
 
static void SetRandomSeed (const Teuchos::Comm< int > &comm)
 
static Kokkos::View< bool *, typename Node::device_type > DetectDirichletRows (const Matrix &A, const Magnitude &tol=Teuchos::ScalarTraits< SC >::zero(), const bool count_twos_as_dirichlet=false)
 
static Kokkos::View< bool *, typename Node::device_type > DetectDirichletCols (const Matrix &A, const Kokkos::View< const bool *, typename Node::device_type > &dirichletRows)
 
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)
 
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)
 
static void ZeroDirichletRows (RCP< Matrix > &A, const Kokkos::View< const bool *, typename Node::device_type > &dirichletRows, SC replaceWith=Teuchos::ScalarTraits< SC >::zero())
 
static void ZeroDirichletRows (RCP< MultiVector > &X, const Kokkos::View< const bool *, typename Node::device_type > &dirichletRows, SC replaceWith=Teuchos::ScalarTraits< SC >::zero())
 
static void ZeroDirichletCols (RCP< Matrix > &A, const Kokkos::View< const bool *, typename Node::device_type > &dirichletCols, SC replaceWith=Teuchos::ScalarTraits< SC >::zero())
 
static void ApplyRowSumCriterion (const Matrix &A, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType rowSumTol, Kokkos::View< bool *, typename NO::device_type > &dirichletRows)
 
static RCP< MultiVectorRealValuedToScalarMultiVector (RCP< RealValuedMultiVector > X)
 
static Scalar PowerMethod (const Matrix &A, bool scaleByDiag=true, LO niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 
static Scalar PowerMethod (const Matrix &A, const Teuchos::RCP< Vector > &invDiag, LO niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 
static void MyOldScaleMatrix (Matrix &Op, const Teuchos::ArrayRCP< const SC > &scalingVector, bool doInverse=true, bool doFillComplete=true, bool doOptimizeStorage=true)
 
static void MyOldScaleMatrix_Tpetra (Matrix &Op, const Teuchos::ArrayRCP< Scalar > &scalingVector, bool doFillComplete, bool doOptimizeStorage)
 
static void MyOldScaleMatrix_Epetra (Matrix &Op, const Teuchos::ArrayRCP< Scalar > &scalingVector, bool doFillComplete, bool doOptimizeStorage)
 
static RCP< MatrixTranspose (Matrix &Op, bool=false, const std::string &label=std::string(), const Teuchos::RCP< Teuchos::ParameterList > &params=Teuchos::null)
 Transpose a Xpetra::Matrix.
 
static RCP< Xpetra::MultiVector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType, LO, GO, NO > > ExtractCoordinatesFromParameterList (ParameterList &paramList)
 Extract coordinates from parameter list and return them in a Xpetra::MultiVector.
 
static RCP< Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > > ReverseCuthillMcKee (const Matrix &Op)
 
static RCP< Xpetra::Vector< LocalOrdinal, LocalOrdinal, GlobalOrdinal, Node > > CuthillMcKee (const Matrix &Op)
 
static void ApplyOAZToMatrixRows (RCP< Matrix > &A, const Kokkos::View< const bool *, typename Node::device_type > &dirichletRows)
 
- Static Public Member Functions inherited from MueLu::UtilitiesBase< double, int, int, Node >
static RCP< MatrixCrs2Op (RCP< CrsMatrix > Op)
 
static RCP< CrsMatrixWrapGetThresholdedMatrix (const RCP< Matrix > &Ain, const double threshold, const bool keepDiagonal=true, const int expectedNNZperRow=-1)
 Threshold a matrix.
 
static RCP< Xpetra::CrsGraph< int, int, Node > > GetThresholdedGraph (const RCP< Matrix > &A, const Magnitude threshold, const int expectedNNZperRow=-1)
 Threshold a graph.
 
static Teuchos::ArrayRCP< double > GetMatrixDiagonal (const Matrix &A)
 Extract Matrix Diagonal.
 
static RCP< VectorGetMatrixDiagonalInverse (const Matrix &A, Magnitude tol=Teuchos::ScalarTraits< double >::eps() *100, double valReplacement=Teuchos::ScalarTraits< double >::zero())
 Extract Matrix Diagonal.
 
static Teuchos::RCP< VectorGetLumpedMatrixDiagonal (Matrix const &A, const bool doReciprocal=false, Magnitude tol=Teuchos::ScalarTraits< double >::magnitude(Teuchos::ScalarTraits< double >::zero()), double valReplacement=Teuchos::ScalarTraits< double >::zero(), const bool replaceSingleEntryRowWithZero=false, const bool useAverageAbsDiagVal=false)
 Extract Matrix Diagonal of lumped matrix.
 
static Teuchos::ArrayRCP< MagnitudeGetMatrixMaxMinusOffDiagonal (const Xpetra::Matrix< double, int, int, Node > &A)
 Return vector containing: max_{i\not=k}(-a_ik), for each for i in the matrix.
 
static Teuchos::ArrayRCP< MagnitudeGetMatrixMaxMinusOffDiagonal (const Xpetra::Matrix< double, int, int, Node > &A, const Xpetra::Vector< int, int, int, Node > &BlockNumber)
 
static Teuchos::RCP< VectorGetInverse (Teuchos::RCP< const Vector > v, Magnitude tol=Teuchos::ScalarTraits< double >::eps() *100, double valReplacement=Teuchos::ScalarTraits< double >::zero())
 Return vector containing inverse of input vector.
 
static RCP< VectorGetMatrixOverlappedDiagonal (const Matrix &A)
 Extract Overlapped Matrix Diagonal.
 
static RCP< VectorGetMatrixOverlappedDeletedRowsum (const Matrix &A)
 Extract Overlapped Matrix Deleted Rowsum.
 
static RCP< Xpetra::Vector< Magnitude, int, int, Node > > GetMatrixOverlappedAbsDeletedRowsum (const Matrix &A)
 
static Teuchos::Array< MagnitudeResidualNorm (const Xpetra::Operator< double, int, int, Node > &Op, const MultiVector &X, const MultiVector &RHS)
 
static Teuchos::Array< MagnitudeResidualNorm (const Xpetra::Operator< double, int, int, Node > &Op, const MultiVector &X, const MultiVector &RHS, MultiVector &Resid)
 
static RCP< MultiVectorResidual (const Xpetra::Operator< double, int, int, Node > &Op, const MultiVector &X, const MultiVector &RHS)
 
static void Residual (const Xpetra::Operator< double, int, int, Node > &Op, const MultiVector &X, const MultiVector &RHS, MultiVector &Resid)
 
static double PowerMethod (const Matrix &A, bool scaleByDiag=true, int niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 Power method.
 
static double PowerMethod (const Matrix &A, const RCP< Vector > &diagInvVec, int niters=10, Magnitude tolerance=1e-2, bool verbose=false, unsigned int seed=123)
 Power method.
 
static RCP< Teuchos::FancyOStream > MakeFancy (std::ostream &os)
 
static Teuchos::ScalarTraits< double >::magnitudeType Distance2 (const Teuchos::Array< Teuchos::ArrayRCP< const double > > &v, int i0, int i1)
 Squared distance between two rows in a multivector.
 
static Teuchos::ScalarTraits< double >::magnitudeType Distance2 (const Teuchos::ArrayView< double > &weight, const Teuchos::Array< Teuchos::ArrayRCP< const double > > &v, int i0, int i1)
 Weighted squared distance between two rows in a multivector.
 
static Teuchos::ArrayRCP< const bool > DetectDirichletRows (const Xpetra::Matrix< double, int, int, Node > &A, const Magnitude &tol=Teuchos::ScalarTraits< double >::zero(), bool count_twos_as_dirichlet=false)
 Detect Dirichlet rows.
 
static Teuchos::ArrayRCP< const bool > DetectDirichletRowsExt (const Xpetra::Matrix< double, int, int, Node > &A, bool &bHasZeroDiagonal, const Magnitude &tol=Teuchos::ScalarTraits< double >::zero())
 Detect Dirichlet rows (extended version)
 
static void FindNonZeros (const Teuchos::ArrayRCP< const double > vals, Teuchos::ArrayRCP< bool > nonzeros)
 Find non-zero values in an ArrayRCP Compares the value to 2 * machine epsilon.
 
static void DetectDirichletColsAndDomains (const Xpetra::Matrix< double, int, int, 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.
 
static void ApplyRowSumCriterion (const Xpetra::Matrix< double, int, int, Node > &A, const Magnitude rowSumTol, Teuchos::ArrayRCP< bool > &dirichletRows)
 Apply Rowsum Criterion.
 
static void ApplyRowSumCriterion (const Xpetra::Matrix< double, int, int, Node > &A, const Xpetra::Vector< int, int, int, Node > &BlockNumber, const Magnitude rowSumTol, Teuchos::ArrayRCP< bool > &dirichletRows)
 
static Teuchos::ArrayRCP< const bool > DetectDirichletCols (const Xpetra::Matrix< double, int, int, Node > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows)
 Detect Dirichlet columns based on Dirichlet rows.
 
static double Frobenius (const Xpetra::Matrix< double, int, int, Node > &A, const Xpetra::Matrix< double, int, int, Node > &B)
 Frobenius inner product of two matrices.
 
static void SetRandomSeed (const Teuchos::Comm< int > &comm)
 Set seed for random number generator.
 
static void FindDirichletRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Node > > &A, std::vector< int > &dirichletRows, bool count_twos_as_dirichlet=false)
 
static void ApplyOAZToMatrixRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Node > > &A, const std::vector< int > &dirichletRows)
 
static void ApplyOAZToMatrixRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Node > > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows)
 
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Node > > &A, const std::vector< int > &dirichletRows, double replaceWith=Teuchos::ScalarTraits< double >::zero())
 
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Node > > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows, double replaceWith=Teuchos::ScalarTraits< double >::zero())
 
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::MultiVector< double, int, int, Node > > &X, const Teuchos::ArrayRCP< const bool > &dirichletRows, double replaceWith=Teuchos::ScalarTraits< double >::zero())
 
static void ZeroDirichletCols (Teuchos::RCP< Matrix > &A, const Teuchos::ArrayRCP< const bool > &dirichletCols, double replaceWith=Teuchos::ScalarTraits< double >::zero())
 
static void FindDirichletRowsAndPropagateToCols (Teuchos::RCP< Xpetra::Matrix< double, int, int, Node > > &A, Teuchos::RCP< Xpetra::Vector< int, int, int, Node > > &isDirichletRow, Teuchos::RCP< Xpetra::Vector< int, int, int, Node > > &isDirichletCol)
 
static RCP< const Xpetra::BlockedMap< int, int, Node > > GeneratedBlockedTargetMap (const Xpetra::BlockedMap< int, int, Node > &sourceBlockedMap, const Xpetra::Import< int, int, Node > &Importer)
 
static bool MapsAreNested (const Xpetra::Map< int, int, Node > &rowMap, const Xpetra::Map< int, int, Node > &colMap)
 

Detailed Description

template<class Node>
class MueLu::Utilities_kokkos< double, int, int, Node >

Definition at line 351 of file MueLu_Utilities_kokkos_decl.hpp.

Member Typedef Documentation

◆ Scalar

template<class Node >
typedef double MueLu::Utilities_kokkos< double, int, int, Node >::Scalar

Definition at line 353 of file MueLu_Utilities_kokkos_decl.hpp.

◆ LocalOrdinal

template<class Node >
typedef int MueLu::Utilities_kokkos< double, int, int, Node >::LocalOrdinal

Definition at line 354 of file MueLu_Utilities_kokkos_decl.hpp.

◆ GlobalOrdinal

template<class Node >
typedef int MueLu::Utilities_kokkos< double, int, int, Node >::GlobalOrdinal

Definition at line 355 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Magnitude

template<class Node >
typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::Utilities_kokkos< double, int, int, Node >::Magnitude

Definition at line 356 of file MueLu_Utilities_kokkos_decl.hpp.

◆ CoordinateType

template<class Node >
using MueLu::Utilities_kokkos< double, int, int, Node >::CoordinateType = typename Teuchos::ScalarTraits<Scalar>::coordinateType

Definition at line 357 of file MueLu_Utilities_kokkos_decl.hpp.

◆ RealValuedMultiVector

template<class Node >
using MueLu::Utilities_kokkos< double, int, int, Node >::RealValuedMultiVector = Xpetra::MultiVector<CoordinateType,LocalOrdinal,GlobalOrdinal,Node>

Definition at line 358 of file MueLu_Utilities_kokkos_decl.hpp.

Member Function Documentation

◆ MV2EpetraMV() [1/2]

template<class Node >
static RCP< const Epetra_MultiVector > MueLu::Utilities_kokkos< double, int, int, Node >::MV2EpetraMV ( RCP< MultiVector > const  vec)
inlinestatic

Helper utility to pull out the underlying Epetra objects from an Xpetra object.

Definition at line 369 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2NonConstEpetraMV() [1/2]

template<class Node >
static RCP< Epetra_MultiVector > MueLu::Utilities_kokkos< double, int, int, Node >::MV2NonConstEpetraMV ( RCP< MultiVector vec)
inlinestatic

Definition at line 370 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2EpetraMV() [2/2]

template<class Node >
static const Epetra_MultiVector & MueLu::Utilities_kokkos< double, int, int, Node >::MV2EpetraMV ( const MultiVector vec)
inlinestatic

Definition at line 372 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2NonConstEpetraMV() [2/2]

template<class Node >
static Epetra_MultiVector & MueLu::Utilities_kokkos< double, int, int, Node >::MV2NonConstEpetraMV ( MultiVector vec)
inlinestatic

Definition at line 373 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2EpetraCrs() [1/2]

template<class Node >
static RCP< const Epetra_CrsMatrix > MueLu::Utilities_kokkos< double, int, int, Node >::Op2EpetraCrs ( RCP< const Matrix Op)
inlinestatic

Definition at line 375 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2NonConstEpetraCrs() [1/2]

template<class Node >
static RCP< Epetra_CrsMatrix > MueLu::Utilities_kokkos< double, int, int, Node >::Op2NonConstEpetraCrs ( RCP< Matrix Op)
inlinestatic

Definition at line 376 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2EpetraCrs() [2/2]

template<class Node >
static const Epetra_CrsMatrix & MueLu::Utilities_kokkos< double, int, int, Node >::Op2EpetraCrs ( const Matrix Op)
inlinestatic

Definition at line 378 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2NonConstEpetraCrs() [2/2]

template<class Node >
static Epetra_CrsMatrix & MueLu::Utilities_kokkos< double, int, int, Node >::Op2NonConstEpetraCrs ( Matrix Op)
inlinestatic

Definition at line 379 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Map2EpetraMap()

template<class Node >
static const Epetra_Map & MueLu::Utilities_kokkos< double, int, int, Node >::Map2EpetraMap ( const Map map)
inlinestatic

Definition at line 381 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2TpetraMV() [1/2]

template<class Node >
static RCP< const Tpetra::MultiVector< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::MV2TpetraMV ( RCP< MultiVector > const  vec)
inlinestatic

Helper utility to pull out the underlying Tpetra objects from an Xpetra object.

Definition at line 388 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2NonConstTpetraMV() [1/2]

template<class Node >
static RCP< Tpetra::MultiVector< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::MV2NonConstTpetraMV ( RCP< MultiVector vec)
inlinestatic

Definition at line 389 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2NonConstTpetraMV2()

template<class Node >
static RCP< Tpetra::MultiVector< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::MV2NonConstTpetraMV2 ( MultiVector vec)
inlinestatic

Definition at line 390 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2TpetraMV() [2/2]

template<class Node >
static const Tpetra::MultiVector< SC, LO, GO, NO > & MueLu::Utilities_kokkos< double, int, int, Node >::MV2TpetraMV ( const MultiVector vec)
inlinestatic

Definition at line 392 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MV2NonConstTpetraMV() [2/2]

template<class Node >
static Tpetra::MultiVector< SC, LO, GO, NO > & MueLu::Utilities_kokkos< double, int, int, Node >::MV2NonConstTpetraMV ( MultiVector vec)
inlinestatic

Definition at line 393 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2TpetraCrs() [1/2]

template<class Node >
static RCP< const Tpetra::CrsMatrix< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::Op2TpetraCrs ( RCP< const Matrix Op)
inlinestatic

Definition at line 395 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2NonConstTpetraCrs() [1/2]

template<class Node >
static RCP< Tpetra::CrsMatrix< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::Op2NonConstTpetraCrs ( RCP< Matrix Op)
inlinestatic

Definition at line 396 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2TpetraCrs() [2/2]

template<class Node >
static const Tpetra::CrsMatrix< SC, LO, GO, NO > & MueLu::Utilities_kokkos< double, int, int, Node >::Op2TpetraCrs ( const Matrix Op)
inlinestatic

Definition at line 398 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2NonConstTpetraCrs() [2/2]

template<class Node >
static Tpetra::CrsMatrix< SC, LO, GO, NO > & MueLu::Utilities_kokkos< double, int, int, Node >::Op2NonConstTpetraCrs ( Matrix Op)
inlinestatic

Definition at line 399 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2TpetraRow()

template<class Node >
static RCP< const Tpetra::RowMatrix< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::Op2TpetraRow ( RCP< const Matrix Op)
inlinestatic

Definition at line 401 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Op2NonConstTpetraRow()

template<class Node >
static RCP< Tpetra::RowMatrix< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::Op2NonConstTpetraRow ( RCP< Matrix Op)
inlinestatic

Definition at line 402 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Map2TpetraMap()

template<class Node >
static const RCP< const Tpetra::Map< LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::Map2TpetraMap ( const Map map)
inlinestatic

Definition at line 404 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Crs2Op()

template<class Node >
static RCP< Xpetra::Matrix< SC, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::Crs2Op ( RCP< CrsMatrix Op)
inlinestatic

Definition at line 406 of file MueLu_Utilities_kokkos_decl.hpp.

◆ GetMatrixDiagonal()

template<class Node >
static RCP< Vector > MueLu::Utilities_kokkos< double, int, int, Node >::GetMatrixDiagonal ( const Matrix A)
inlinestatic

Definition at line 408 of file MueLu_Utilities_kokkos_decl.hpp.

◆ GetMatrixDiagonalInverse()

template<class Node >
Teuchos::RCP< Xpetra::Vector< double, int, int, Node > > MueLu::Utilities_kokkos< double, int, int, Node >::GetMatrixDiagonalInverse ( const Matrix A,
Magnitude  tol = Teuchos::ScalarTraits<SC>::eps()*100,
const bool  doLumped = false 
)
static

Definition at line 211 of file MueLu_Utilities_kokkos_def.hpp.

◆ GetLumpedMatrixDiagonal()

template<class Node >
static RCP< Vector > MueLu::Utilities_kokkos< double, int, int, Node >::GetLumpedMatrixDiagonal ( Matrix const &  A,
const bool  doReciprocal = false,
Magnitude  tol = Teuchos::ScalarTraits<Scalar>::eps()*100,
Scalar  tolReplacement = Teuchos::ScalarTraits<Scalar>::zero(),
const bool  replaceSingleEntryRowWithZero = false,
const bool  useAverageAbsDiagVal = false 
)
inlinestatic

Definition at line 418 of file MueLu_Utilities_kokkos_decl.hpp.

◆ GetMatrixOverlappedDiagonal()

template<class Node >
static RCP< Vector > MueLu::Utilities_kokkos< double, int, int, Node >::GetMatrixOverlappedDiagonal ( const Matrix A)
inlinestatic

Definition at line 421 of file MueLu_Utilities_kokkos_decl.hpp.

◆ GetInverse()

template<class Node >
static RCP< Vector > MueLu::Utilities_kokkos< double, int, int, Node >::GetInverse ( RCP< const Vector v,
Magnitude  tol = Teuchos::ScalarTraits<SC>::eps()*100,
SC  tolReplacement = Teuchos::ScalarTraits<SC>::zero() 
)
inlinestatic

Definition at line 424 of file MueLu_Utilities_kokkos_decl.hpp.

◆ ResidualNorm()

template<class Node >
static Teuchos::Array< Magnitude > MueLu::Utilities_kokkos< double, int, int, Node >::ResidualNorm ( const Operator &  Op,
const MultiVector X,
const MultiVector RHS 
)
inlinestatic

Definition at line 427 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Residual()

template<class Node >
static RCP< MultiVector > MueLu::Utilities_kokkos< double, int, int, Node >::Residual ( const Operator &  Op,
const MultiVector X,
const MultiVector RHS 
)
inlinestatic

Definition at line 430 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MakeFancy()

template<class Node >
static RCP< Teuchos::FancyOStream > MueLu::Utilities_kokkos< double, int, int, Node >::MakeFancy ( std::ostream &  os)
inlinestatic

Definition at line 433 of file MueLu_Utilities_kokkos_decl.hpp.

◆ SetRandomSeed()

template<class Node >
static void MueLu::Utilities_kokkos< double, int, int, Node >::SetRandomSeed ( const Teuchos::Comm< int > &  comm)
inlinestatic

Definition at line 436 of file MueLu_Utilities_kokkos_decl.hpp.

◆ DetectDirichletRows()

template<class Node >
Kokkos::View< bool *, typename Node::device_type > MueLu::Utilities_kokkos< double, int, int, Node >::DetectDirichletRows ( const Matrix A,
const Magnitude tol = Teuchos::ScalarTraits<SC>::zero(),
const bool  count_twos_as_dirichlet = false 
)
static

Definition at line 469 of file MueLu_Utilities_kokkos_def.hpp.

◆ DetectDirichletCols()

template<class Node >
Kokkos::View< bool *, typename Node::device_type > MueLu::Utilities_kokkos< double, int, int, Node >::DetectDirichletCols ( const Matrix A,
const Kokkos::View< const bool *, typename Node::device_type > &  dirichletRows 
)
static

Definition at line 536 of file MueLu_Utilities_kokkos_def.hpp.

◆ FindNonZeros()

template<class Node >
void MueLu::Utilities_kokkos< double, int, int, Node >::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 
)
static

Definition at line 569 of file MueLu_Utilities_kokkos_def.hpp.

◆ DetectDirichletColsAndDomains()

template<class Node >
void MueLu::Utilities_kokkos< double, int, int, Node >::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 
)
static

Definition at line 633 of file MueLu_Utilities_kokkos_def.hpp.

◆ ZeroDirichletRows() [1/2]

template<class Node >
static void MueLu::Utilities_kokkos< double, int, int, Node >::ZeroDirichletRows ( RCP< Matrix > &  A,
const Kokkos::View< const bool *, typename Node::device_type > &  dirichletRows,
SC  replaceWith = Teuchos::ScalarTraits< SC >::zero() 
)
static

◆ ZeroDirichletRows() [2/2]

template<class Node >
static void MueLu::Utilities_kokkos< double, int, int, Node >::ZeroDirichletRows ( RCP< MultiVector > &  X,
const Kokkos::View< const bool *, typename Node::device_type > &  dirichletRows,
SC  replaceWith = Teuchos::ScalarTraits< SC >::zero() 
)
static

◆ ZeroDirichletCols()

template<class Node >
void MueLu::Utilities_kokkos< double, int, int, Node >::ZeroDirichletCols ( RCP< Matrix > &  A,
const Kokkos::View< const bool *, typename Node::device_type > &  dirichletCols,
SC  replaceWith = Teuchos::ScalarTraits<SC>::zero() 
)
static

Definition at line 763 of file MueLu_Utilities_kokkos_def.hpp.

◆ ApplyRowSumCriterion()

template<class Node >
void MueLu::Utilities_kokkos< double, int, int, Node >::ApplyRowSumCriterion ( const Matrix A,
const typename Teuchos::ScalarTraits< Scalar >::magnitudeType  rowSumTol,
Kokkos::View< bool *, typename NO::device_type > &  dirichletRows 
)
static

Definition at line 816 of file MueLu_Utilities_kokkos_def.hpp.

◆ RealValuedToScalarMultiVector()

template<class Node >
RCP< Xpetra::MultiVector< double, int, int, Node > > MueLu::Utilities_kokkos< double, int, int, Node >::RealValuedToScalarMultiVector ( RCP< RealValuedMultiVector X)
static

Definition at line 854 of file MueLu_Utilities_kokkos_def.hpp.

◆ PowerMethod() [1/2]

template<class Node >
static Scalar MueLu::Utilities_kokkos< double, int, int, Node >::PowerMethod ( const Matrix A,
bool  scaleByDiag = true,
LO  niters = 10,
Magnitude  tolerance = 1e-2,
bool  verbose = false,
unsigned int  seed = 123 
)
inlinestatic

Definition at line 465 of file MueLu_Utilities_kokkos_decl.hpp.

◆ PowerMethod() [2/2]

template<class Node >
static Scalar MueLu::Utilities_kokkos< double, int, int, Node >::PowerMethod ( const Matrix A,
const Teuchos::RCP< Vector > &  invDiag,
LO  niters = 10,
Magnitude  tolerance = 1e-2,
bool  verbose = false,
unsigned int  seed = 123 
)
inlinestatic

Definition at line 469 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MyOldScaleMatrix()

template<class Node >
static void MueLu::Utilities_kokkos< double, int, int, Node >::MyOldScaleMatrix ( Matrix Op,
const Teuchos::ArrayRCP< const SC > &  scalingVector,
bool  doInverse = true,
bool  doFillComplete = true,
bool  doOptimizeStorage = true 
)
inlinestatic

Definition at line 473 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MyOldScaleMatrix_Tpetra()

template<class Node >
static void MueLu::Utilities_kokkos< double, int, int, Node >::MyOldScaleMatrix_Tpetra ( Matrix Op,
const Teuchos::ArrayRCP< Scalar > &  scalingVector,
bool  doFillComplete,
bool  doOptimizeStorage 
)
inlinestatic

Definition at line 503 of file MueLu_Utilities_kokkos_decl.hpp.

◆ MyOldScaleMatrix_Epetra()

template<class Node >
static void MueLu::Utilities_kokkos< double, int, int, Node >::MyOldScaleMatrix_Epetra ( Matrix Op,
const Teuchos::ArrayRCP< Scalar > &  scalingVector,
bool  doFillComplete,
bool  doOptimizeStorage 
)
inlinestatic

Definition at line 587 of file MueLu_Utilities_kokkos_decl.hpp.

◆ Transpose()

template<class Node >
static RCP< Matrix > MueLu::Utilities_kokkos< double, int, int, Node >::Transpose ( Matrix Op,
bool  = false,
const std::string &  label = std::string(),
const Teuchos::RCP< Teuchos::ParameterList > &  params = Teuchos::null 
)
inlinestatic

Transpose a Xpetra::Matrix.

Note: Currently, an error is thrown if the matrix isn't a Tpetra::CrsMatrix or Epetra_CrsMatrix. In principle, however, we could allow any Epetra_RowMatrix because the Epetra transposer does.

Definition at line 617 of file MueLu_Utilities_kokkos_decl.hpp.

◆ ExtractCoordinatesFromParameterList()

template<class Node >
static RCP< Xpetra::MultiVector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType, LO, GO, NO > > MueLu::Utilities_kokkos< double, int, int, Node >::ExtractCoordinatesFromParameterList ( ParameterList &  paramList)
inlinestatic

Extract coordinates from parameter list and return them in a Xpetra::MultiVector.

Definition at line 697 of file MueLu_Utilities_kokkos_decl.hpp.

◆ ReverseCuthillMcKee()

template<class Node >
Teuchos::RCP< Xpetra::Vector< int, int, int, Node > > MueLu::Utilities_kokkos< double, int, int, Node >::ReverseCuthillMcKee ( const Matrix Op)
static

Perform a Cuthill-McKee (CM) or Reverse Cuthill-McKee (RCM) ordering of the local component of the matrix Kokkos-Kernels has an RCM implementation, so we reverse that here if we call CM.

Definition at line 926 of file MueLu_Utilities_kokkos_def.hpp.

◆ CuthillMcKee()

template<class Node >
Teuchos::RCP< Xpetra::Vector< int, int, int, Node > > MueLu::Utilities_kokkos< double, int, int, Node >::CuthillMcKee ( const Matrix Op)
static

Perform a Cuthill-McKee (CM) or Reverse Cuthill-McKee (RCM) ordering of the local component of the matrix Kokkos-Kernels has an RCM implementation, so we reverse that here if we call CM.

Definition at line 938 of file MueLu_Utilities_kokkos_def.hpp.

◆ ApplyOAZToMatrixRows()

template<class Node >
void MueLu::Utilities_kokkos< double, int, int, Node >::ApplyOAZToMatrixRows ( RCP< Matrix > &  A,
const Kokkos::View< const bool *, typename Node::device_type > &  dirichletRows 
)
static

Definition at line 991 of file MueLu_Utilities_kokkos_def.hpp.


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