8 #ifndef MUELU_ALGEBRAICPERMUTATIONSTRATEGY_DECL_HPP_ 9 #define MUELU_ALGEBRAICPERMUTATIONSTRATEGY_DECL_HPP_ 11 #include <Xpetra_MultiVector_fwd.hpp> 12 #include <Xpetra_Matrix_fwd.hpp> 13 #include <Xpetra_CrsGraph_fwd.hpp> 14 #include <Xpetra_Vector_fwd.hpp> 15 #include <Xpetra_VectorFactory_fwd.hpp> 16 #include <Xpetra_CrsMatrixWrap_fwd.hpp> 17 #include <Xpetra_Export_fwd.hpp> 18 #include <Xpetra_ExportFactory_fwd.hpp> 19 #include <Xpetra_Import_fwd.hpp> 20 #include <Xpetra_ImportFactory_fwd.hpp> 29 template<
class Scalar =
double,
class LocalOrdinal =
int>
35 return Teuchos::ScalarTraits<Scalar>::magnitude(vinternal_[a]) > Teuchos::ScalarTraits<Scalar>::magnitude(vinternal_[b]);
40 template<
class Scalar,
class LocalOrdinal>
46 template<
class Scalar,
class LocalOrdinal>
48 size_t size = values.size();
49 v.clear(); v.reserve(size);
50 for(
size_t i=0; i<size; ++i)
53 std::sort(v.begin(),v.end(), MueLu::CreateCmpPairs<Scalar,LocalOrdinal>(values));
63 template<
class Scalar = double,
64 class LocalOrdinal = int,
65 class GlobalOrdinal = LocalOrdinal,
66 class Node = KokkosClassic::DefaultNode::DefaultNodeType>
68 #undef MUELU_ALGEBRAICPERMUTATIONSTRATEGY_SHORT 94 void BuildPermutation(
const Teuchos::RCP<Matrix> & A,
const Teuchos::RCP<const Map> permRowMap,
Level & currentLevel,
const FactoryBase* genFactory)
const;
104 #define MUELU_ALGEBRAICPERMUTATIONSTRATEGY_SHORT
std::vector< Scalar > vinternal_
void sortingPermutation(const std::vector< Scalar > &values, std::vector< LocalOrdinal > &v)
Namespace for MueLu classes and methods.
bool operator()(LocalOrdinal a, LocalOrdinal b)
Base class for factories (e.g., R, P, and A_coarse).
Class that holds all level-specific information.
Algebraic permutation strategy.
CompPairs(const std::vector< Scalar > &v)
CompPairs< Scalar, LocalOrdinal > CreateCmpPairs(const std::vector< Scalar > &v)
Base class for MueLu classes.