MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu::Utilities< double, int, int, Xpetra::EpetraNode > Class Reference

#include <MueLu_Utilities_decl.hpp>

Inheritance diagram for MueLu::Utilities< double, int, int, Xpetra::EpetraNode >:
MueLu::UtilitiesBase< double, int, int, Xpetra::EpetraNode > MueLu::UtilitiesBase< double, int, int, Xpetra::EpetraNode >

Public Types

typedef double Scalar
typedef int LocalOrdinal
typedef int GlobalOrdinal
typedef Xpetra::EpetraNode Node
typedef Teuchos::ScalarTraits< Scalar >::magnitudeType Magnitude
Public Types inherited from MueLu::UtilitiesBase< double, int, int, Xpetra::EpetraNode >
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::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Op2TpetraRow (RCP< const Operator > Op)
 Helper utility to pull out the underlying Tpetra objects from an Xpetra object.
static RCP< Tpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > Op2NonConstTpetraRow (RCP< Operator > Op)
static void MyOldScaleMatrix (Matrix &Op, const Teuchos::ArrayRCP< const Scalar > &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, bool)
static RCP< Matrix > Transpose (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, 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 &paramList)
 Extract coordinates from parameter list and return them in a Xpetra::MultiVector.
Static Public Member Functions inherited from MueLu::UtilitiesBase< double, int, int, Xpetra::EpetraNode >
static RCP< Matrix > Crs2Op (RCP< CrsMatrix > Op)
static RCP< CrsMatrixWrap > GetThresholdedMatrix (const RCP< Matrix > &Ain, const Magnitude threshold, const bool keepDiagonal=true, const int expectedNNZperRow=-1)
 Threshold a matrix.
static RCP< Xpetra::CrsGraph< int, int, Xpetra::EpetraNode > > GetThresholdedGraph (const RCP< Matrix > &A, const Magnitude threshold, const int expectedNNZperRow=-1)
 Threshold a graph.
static Teuchos::ArrayRCP< double > GetMatrixDiagonal_arcp (const Matrix &A)
 Extract Matrix Diagonal.
static RCP< Vector > GetMatrixDiagonal (const Matrix &A)
 Extract Matrix Diagonal.
static RCP< Vector > GetMatrixDiagonalInverse (const Matrix &A, Magnitude tol=Teuchos::ScalarTraits< double >::eps() *100, double valReplacement=Teuchos::ScalarTraits< double >::zero(), const bool doLumped=false)
 Extract Matrix Diagonal.
static Teuchos::RCP< Vector > GetLumpedMatrixDiagonal (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::RCP< Vector > GetMatrixMaxMinusOffDiagonal (const Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > &A)
 Return vector containing: max_{i\not=k}(-a_ik), for each for i in the matrix.
static Teuchos::RCP< Vector > GetInverse (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< Vector > GetMatrixOverlappedDiagonal (const Matrix &A)
 Extract Overlapped Matrix Diagonal.
static RCP< Vector > GetMatrixOverlappedDeletedRowsum (const Matrix &A)
 Extract Overlapped Matrix Deleted Rowsum.
static RCP< Xpetra::Vector< Magnitude, int, int, Xpetra::EpetraNode > > GetMatrixOverlappedAbsDeletedRowsum (const Matrix &A)
static Teuchos::Array< MagnitudeResidualNorm (const Xpetra::Operator< double, int, int, Xpetra::EpetraNode > &Op, const MultiVector &X, const MultiVector &RHS)
static RCP< MultiVector > Residual (const Xpetra::Operator< double, int, int, Xpetra::EpetraNode > &Op, const MultiVector &X, const MultiVector &RHS)
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 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::ArrayRCP< const bool > DetectDirichletRows (const Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > &A, const Magnitude &tol=Teuchos::ScalarTraits< Magnitude >::zero(), bool count_twos_as_dirichlet=false)
 Detect Dirichlet rows.
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.
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< double, int, int, Xpetra::EpetraNode > &A, bool &bHasZeroDiagonal, const Magnitude &tol=Teuchos::ScalarTraits< double >::zero())
 Detect Dirichlet rows (extended version).
static void EnforceInitialCondition (const Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > &A, const Xpetra::MultiVector< double, int, int, Xpetra::EpetraNode > &RHS, Xpetra::MultiVector< double, int, int, Xpetra::EpetraNode > &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.
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, Xpetra::EpetraNode > &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, Xpetra::EpetraNode > &A, const Magnitude rowSumTol, Teuchos::ArrayRCP< bool > &dirichletRows)
 Apply Rowsum Criterion.
static void ApplyRowSumCriterionHost (const Matrix &A, const typename Teuchos::ScalarTraits< double >::magnitudeType rowSumTol, Kokkos::View< bool *, Kokkos::HostSpace > &dirichletRows)
static Teuchos::ArrayRCP< const bool > DetectDirichletCols (const Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > &A, const Teuchos::ArrayRCP< const bool > &dirichletRows)
 Detect Dirichlet columns based on Dirichlet rows.
static double Frobenius (const Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > &A, const Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > &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, Xpetra::EpetraNode > > &A, std::vector< int > &dirichletRows, bool count_twos_as_dirichlet=false)
static void ApplyOAZToMatrixRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > > &A, const std::vector< int > &dirichletRows)
static void ZeroDirichletRows (Teuchos::RCP< Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > > &A, const std::vector< int > &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, Xpetra::EpetraNode > > &A, Teuchos::RCP< Xpetra::Vector< int, int, int, Xpetra::EpetraNode > > &isDirichletRow, Teuchos::RCP< Xpetra::Vector< int, int, int, Xpetra::EpetraNode > > &isDirichletCol)
static RCP< Xpetra::Matrix< double, int, int, Xpetra::EpetraNode > > ReplaceNonZerosWithOnes (const RCP< Matrix > &original)
 Creates a copy of a matrix where the non-zero entries are replaced by ones.
static RCP< const Xpetra::BlockedMap< int, int, Xpetra::EpetraNode > > GeneratedBlockedTargetMap (const Xpetra::BlockedMap< int, int, Xpetra::EpetraNode > &sourceBlockedMap, const Xpetra::Import< int, int, Xpetra::EpetraNode > &Importer)
static bool MapsAreNested (const Xpetra::Map< int, int, Xpetra::EpetraNode > &rowMap, const Xpetra::Map< int, int, Xpetra::EpetraNode > &colMap)
static RCP< Xpetra::Vector< int, int, int, Xpetra::EpetraNode > > CuthillMcKee (const Matrix &Op)
static RCP< Xpetra::Vector< int, int, int, Xpetra::EpetraNode > > ReverseCuthillMcKee (const Matrix &Op)

Private Types

using EpetraMap = Xpetra::EpetraMapT<GlobalOrdinal, Node>
using EpetraMultiVector = Xpetra::EpetraMultiVectorT<GlobalOrdinal, Node>

Detailed Description

Definition at line 179 of file MueLu_Utilities_decl.hpp.

Member Typedef Documentation

◆ Scalar

typedef double MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Scalar

Definition at line 181 of file MueLu_Utilities_decl.hpp.

◆ LocalOrdinal

typedef int MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::LocalOrdinal

Definition at line 182 of file MueLu_Utilities_decl.hpp.

◆ GlobalOrdinal

typedef int MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::GlobalOrdinal

Definition at line 183 of file MueLu_Utilities_decl.hpp.

◆ Node

typedef Xpetra::EpetraNode MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Node

Definition at line 184 of file MueLu_Utilities_decl.hpp.

◆ Magnitude

typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Magnitude

Definition at line 185 of file MueLu_Utilities_decl.hpp.

◆ EpetraMap

using MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::EpetraMap = Xpetra::EpetraMapT<GlobalOrdinal, Node>
private

Definition at line 190 of file MueLu_Utilities_decl.hpp.

◆ EpetraMultiVector

using MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::EpetraMultiVector = Xpetra::EpetraMultiVectorT<GlobalOrdinal, Node>
private

Definition at line 191 of file MueLu_Utilities_decl.hpp.

Member Function Documentation

◆ MV2EpetraMV() [1/2]

RCP< const Epetra_MultiVector > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MV2EpetraMV ( RCP< MultiVector > const vec)
inlinestatic

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

Definition at line 196 of file MueLu_Utilities_decl.hpp.

◆ MV2NonConstEpetraMV() [1/2]

RCP< Epetra_MultiVector > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MV2NonConstEpetraMV ( RCP< MultiVector > vec)
inlinestatic

Definition at line 202 of file MueLu_Utilities_decl.hpp.

◆ MV2EpetraMV() [2/2]

const Epetra_MultiVector & MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MV2EpetraMV ( const MultiVector & vec)
inlinestatic

Definition at line 209 of file MueLu_Utilities_decl.hpp.

◆ MV2NonConstEpetraMV() [2/2]

Epetra_MultiVector & MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MV2NonConstEpetraMV ( MultiVector & vec)
inlinestatic

Definition at line 213 of file MueLu_Utilities_decl.hpp.

◆ Op2EpetraCrs() [1/2]

RCP< const Epetra_CrsMatrix > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Op2EpetraCrs ( RCP< const Matrix > Op)
inlinestatic

Definition at line 218 of file MueLu_Utilities_decl.hpp.

◆ Op2NonConstEpetraCrs() [1/2]

RCP< Epetra_CrsMatrix > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Op2NonConstEpetraCrs ( RCP< Matrix > Op)
inlinestatic

Definition at line 227 of file MueLu_Utilities_decl.hpp.

◆ Op2EpetraCrs() [2/2]

const Epetra_CrsMatrix & MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Op2EpetraCrs ( const Matrix & Op)
inlinestatic

Definition at line 237 of file MueLu_Utilities_decl.hpp.

◆ Op2NonConstEpetraCrs() [2/2]

Epetra_CrsMatrix & MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Op2NonConstEpetraCrs ( Matrix & Op)
inlinestatic

Definition at line 250 of file MueLu_Utilities_decl.hpp.

◆ Map2EpetraMap()

const Epetra_Map & MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Map2EpetraMap ( const Map & map)
inlinestatic

Definition at line 264 of file MueLu_Utilities_decl.hpp.

◆ Op2TpetraRow()

RCP< const Tpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Op2TpetraRow ( RCP< const Operator > Op)
inlinestatic

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

Definition at line 273 of file MueLu_Utilities_decl.hpp.

◆ Op2NonConstTpetraRow()

RCP< Tpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::Op2NonConstTpetraRow ( RCP< Operator > Op)
inlinestatic

Definition at line 307 of file MueLu_Utilities_decl.hpp.

◆ MyOldScaleMatrix()

void MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MyOldScaleMatrix ( Matrix & Op,
const Teuchos::ArrayRCP< const Scalar > & scalingVector,
bool doInverse = true,
bool doFillComplete = true,
bool doOptimizeStorage = true )
inlinestatic

Definition at line 341 of file MueLu_Utilities_decl.hpp.

◆ MyOldScaleMatrix_Tpetra()

void MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MyOldScaleMatrix_Tpetra ( Matrix & Op,
const Teuchos::ArrayRCP< Scalar > & scalingVector,
bool doFillComplete,
bool doOptimizeStorage )
inlinestatic

Definition at line 368 of file MueLu_Utilities_decl.hpp.

◆ MyOldScaleMatrix_Epetra()

void MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::MyOldScaleMatrix_Epetra ( Matrix & Op,
const Teuchos::ArrayRCP< Scalar > & scalingVector,
bool ,
bool  )
inlinestatic

Definition at line 448 of file MueLu_Utilities_decl.hpp.

◆ Transpose()

RCP< Matrix > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::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 478 of file MueLu_Utilities_decl.hpp.

◆ RealValuedToScalarMultiVector()

RCP< Xpetra::MultiVector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType, LocalOrdinal, GlobalOrdinal, Node > > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::RealValuedToScalarMultiVector ( RCP< Xpetra::MultiVector< typename Teuchos::ScalarTraits< Scalar >::coordinateType, LocalOrdinal, GlobalOrdinal, Node > > X)
inlinestatic

Definition at line 573 of file MueLu_Utilities_decl.hpp.

◆ ExtractCoordinatesFromParameterList()

RCP< Xpetra::MultiVector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType, LocalOrdinal, GlobalOrdinal, Node > > MueLu::Utilities< double, int, int, Xpetra::EpetraNode >::ExtractCoordinatesFromParameterList ( ParameterList & paramList)
inlinestatic

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

Definition at line 580 of file MueLu_Utilities_decl.hpp.


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