|
| 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(), const Scalar replacementValue=Teuchos::ScalarTraits< Scalar >::one()) |
| |
| 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 (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) |
| |
| static void | convertMatrixToStridedMaps (Teuchos::RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node >> matrix, std::vector< size_t > &rangeStridingInfo, std::vector< size_t > &domainStridingInfo) |
| |
template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
class Xpetra::MatrixUtils< Scalar, LocalOrdinal, GlobalOrdinal, Node >
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.
template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
| static void Xpetra::MatrixUtils< Scalar, LocalOrdinal, GlobalOrdinal, Node >::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(), |
|
|
const Scalar |
replacementValue = Teuchos::ScalarTraits<Scalar>::one() |
|
) |
| |
|
inlinestatic |
Given a matrix A, detect too small diagonals and replace any found with ones.
Definition at line 443 of file Xpetra_MatrixUtils.hpp.
template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
| static void Xpetra::MatrixUtils< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RelativeDiagonalBoost |
( |
RCP< Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > > & |
A, |
|
|
const Teuchos::ArrayView< const double > & |
relativeThreshold, |
|
|
Teuchos::FancyOStream & |
fos |
|
) |
| |
|
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 645 of file Xpetra_MatrixUtils.hpp.