MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_ScalarDroppingClassical_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// MueLu: A package for multigrid based preconditioning
4//
5// Copyright 2012 NTESS and the MueLu contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef MUELU_SCALARDROPPINGCLASSICAL_DECL_HPP
11#define MUELU_SCALARDROPPINGCLASSICAL_DECL_HPP
12
15#include "MueLu_CutDrop.hpp"
18#include "MueLu_Utilities.hpp"
19#include "MueLu_LWGraph_kokkos.hpp"
20
21namespace MueLu {
22
23template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node, Misc::StrengthMeasure SoC>
24class ScalarDroppingClassical : private ScalarDroppingBase<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
25 public:
26 using matrix_type = Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>;
27 using crs_matrix_type = Xpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>;
28 using GraphType = Xpetra::CrsGraph<LocalOrdinal, GlobalOrdinal, Node>;
29 using local_matrix_type = typename crs_matrix_type::local_matrix_device_type;
30 using local_graph_type = typename GraphType::local_graph_device_type;
31 using rowptr_type = typename local_graph_type::row_map_type::non_const_type;
32 using device_type = typename Node::device_type;
33 using memory_space = typename device_type::memory_space;
34 using results_view = Kokkos::View<DecisionType*, memory_space>;
35 using magnitudeType = typename Teuchos::ScalarTraits<Scalar>::magnitudeType;
38
40 results_view& results,
41 rowptr_type& filtered_rowptr,
42 LocalOrdinal& nnz_filtered,
43 boundary_nodes_type& boundaryNodes,
44 const std::string& droppingMethod,
45 const magnitudeType threshold,
46 const bool aggregationMayCreateDirichlet,
47 const bool symmetrizeDroppedGraph,
48 const bool useBlocking,
49 Level& level,
50 const Factory& factory);
51};
52
53} // namespace MueLu
54#endif
MueLu::DefaultLocalOrdinal LocalOrdinal
Lightweight MueLu representation of a compressed row storage graph.
Class that holds all level-specific information.
Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > matrix_type
typename Teuchos::ScalarTraits< Scalar >::magnitudeType magnitudeType
typename MueLu::LWGraph_kokkos< LocalOrdinal, GlobalOrdinal, Node >::boundary_nodes_type boundary_nodes_type
typename device_type::memory_space memory_space
Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > crs_matrix_type
typename GraphType::local_graph_device_type local_graph_type
static void runDroppingFunctors_on_A(matrix_type &A, results_view &results, rowptr_type &filtered_rowptr, LocalOrdinal &nnz_filtered, boundary_nodes_type &boundaryNodes, const std::string &droppingMethod, const magnitudeType threshold, const bool aggregationMayCreateDirichlet, const bool symmetrizeDroppedGraph, const bool useBlocking, Level &level, const Factory &factory)
typename crs_matrix_type::local_matrix_device_type local_matrix_type
typename local_graph_type::row_map_type::non_const_type rowptr_type
Kokkos::View< DecisionType *, memory_space > results_view
Xpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > GraphType
Namespace for MueLu classes and methods.