17#ifndef MUELU_ALGEBRAICPERMUTATIONSTRATEGY_DECL_HPP_
18#define MUELU_ALGEBRAICPERMUTATIONSTRATEGY_DECL_HPP_
20#include <Xpetra_Matrix_fwd.hpp>
21#include <Xpetra_Vector_fwd.hpp>
22#include <Xpetra_VectorFactory_fwd.hpp>
23#include <Xpetra_CrsMatrixWrap_fwd.hpp>
24#include <Xpetra_Export_fwd.hpp>
25#include <Xpetra_ExportFactory_fwd.hpp>
26#include <Xpetra_Import_fwd.hpp>
35template <
class Scalar = DefaultScalar,
class LocalOrdinal = DefaultGlobalOrdinal>
42 return Teuchos::ScalarTraits<Scalar>::magnitude(
vinternal_[a]) > Teuchos::ScalarTraits<Scalar>::magnitude(
vinternal_[b]);
47template <
class Scalar,
class LocalOrdinal>
53template <
class Scalar,
class LocalOrdinal>
55 size_t size = values.size();
58 for (
size_t i = 0; i < size; ++i)
61 std::sort(v.begin(), v.end(), MueLu::CreateCmpPairs<Scalar, LocalOrdinal>(values));
76#undef MUELU_ALGEBRAICPERMUTATIONSTRATEGY_SHORT
103 void BuildPermutation(
const Teuchos::RCP<Matrix>& A,
const Teuchos::RCP<const Map>& permRowMap,
113#define MUELU_ALGEBRAICPERMUTATIONSTRATEGY_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Algebraic permutation strategy.
void BuildPermutation(const Teuchos::RCP< Matrix > &A, const Teuchos::RCP< const Map > &permRowMap, Level ¤tLevel, const FactoryBase *genFactory) const
build permutation operators
Base class for MueLu classes.
Base class for factories (e.g., R, P, and A_coarse).
Class that holds all level-specific information.
Namespace for MueLu classes and methods.
void sortingPermutation(const std::vector< Scalar > &values, std::vector< LocalOrdinal > &v)
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar
CompPairs< Scalar, LocalOrdinal > CreateCmpPairs(const std::vector< Scalar > &v)
CompPairs(const std::vector< Scalar > &v)
std::vector< Scalar > vinternal_
bool operator()(LocalOrdinal a, LocalOrdinal b)