Xpetra
Version of the Day
|
Xpetra utility class for common matrix-related routines. More...
#include <Xpetra_MatrixUtils_fwd.hpp>
Static Public Member Functions | |
static Teuchos::RCP < Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > | xpetraGidNumbering2ThyraGidNumbering (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &input) |
static Teuchos::RCP < Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > | findColumnSubMap (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &input, const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > &domainMap) |
static Teuchos::RCP < Xpetra::BlockedCrsMatrix < Scalar, LocalOrdinal, GlobalOrdinal, Node > > | SplitMatrix (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &input, Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > > rangeMapExtractor, Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > > domainMapExtractor, Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > > columnMapExtractor=Teuchos::null, bool bThyraMode=false) |
static void | CheckRepairMainDiagonal (RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >> &Ac, bool const &repairZeroDiagonals, Teuchos::FancyOStream &fos, const typename Teuchos::ScalarTraits< Scalar >::magnitudeType threshold=Teuchos::ScalarTraits< typename Teuchos::ScalarTraits< Scalar >::magnitudeType >::zero()) |
static void | RelativeDiagonalBoost (RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > &A, const Teuchos::ArrayView< const double > &relativeThreshold, Teuchos::FancyOStream &fos) |
static void | extractBlockDiagonal (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &diagonal) |
static void | inverseScaleBlockDiagonal (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &blockDiagonal, bool doTranspose, Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &toBeScaled) |
static void | checkLocalRowMapMatchesColMap (const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A) |
Xpetra utility class for common matrix-related routines.
The routines should be independent from Epetra/Tpetra and be purely implemented in Xpetra. Other matrix-related routines are out-sourced into other helper classes (e.g. MatrixMatrix for MM multiplication and addition).
Definition at line 51 of file Xpetra_MatrixUtils_fwd.hpp.
|
inlinestatic |
Definition at line 94 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Definition at line 108 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Given a matrix A split it into a nxm blocked matrix using the map extractors.
input | Input matrix, must already have had 'FillComplete()' called. |
rangeMapExtractor | MapExtractor object describing the splitting of rows of the output block matrix |
domainMapExtractor | MapExtractor object describing the splitting of columns of the output block matrix |
columnMapExtractor | (not fully clear whether we need that. is always Teuchos::null) |
bThyraMode | If true, build a n x n blocked operator using Thyra GIDs |
Definition at line 196 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Given a matrix A, detect too small diagonals and replace any found with ones.
Definition at line 441 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Given a matrix A, boost the diagonal to a relative floor. Multiple PDEs will be scaled differently. Each PDE can be given its own relative threshold, or a single threshold can be used for all PDEs NOTE: This is not Kokkos-ized Precondition: A->GetFixedBlockSize() == relativeThreshold.size() OR relativeThreshold.size() == 1
Definition at line 542 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Definition at line 599 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Definition at line 617 of file Xpetra_MatrixUtils.hpp.
|
inlinestatic |
Definition at line 636 of file Xpetra_MatrixUtils.hpp.