MueLu
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
MueLu_VectorDroppingClassical_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_VECTORDROPPINGCLASSICAL_DECL_HPP
11
#define MUELU_VECTORDROPPINGCLASSICAL_DECL_HPP
12
13
#include "
MueLu_VectorDroppingBase.hpp
"
14
#include "
MueLu_BoundaryDetection.hpp
"
15
#include "
MueLu_ClassicalDropping.hpp
"
16
#include "
MueLu_CutDrop.hpp
"
17
#include "
MueLu_DroppingCommon.hpp
"
18
#include "
MueLu_DistanceLaplacianDropping.hpp
"
19
#include "
MueLu_MatrixConstruction.hpp
"
20
#include "MueLu_Utilities.hpp"
21
22
namespace
MueLu
{
23
24
template
<
class
Scalar,
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node, Misc::StrengthMeasure SoC>
25
class
VectorDroppingClassical
:
public
VectorDroppingBase
<Scalar, LocalOrdinal, GlobalOrdinal, Node> {
26
public
:
27
using
matrix_type
= Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>;
28
using
crs_matrix_type
= Xpetra::CrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>;
29
using
GraphType
= Xpetra::CrsGraph<LocalOrdinal, GlobalOrdinal, Node>;
30
using
local_matrix_type
=
typename
crs_matrix_type::local_matrix_device_type;
31
using
local_graph_type
=
typename
GraphType::local_graph_device_type;
32
using
rowptr_type
=
typename
local_graph_type::row_map_type::non_const_type;
33
using
device_type
=
typename
Node::device_type;
34
using
memory_space
=
typename
device_type::memory_space;
35
using
results_view
= Kokkos::View<DecisionType*, memory_space>;
36
using
magnitudeType
=
typename
Teuchos::ScalarTraits<Scalar>::magnitudeType;
37
using
boundary_nodes_type
=
typename
MueLu::LWGraph_kokkos<LocalOrdinal, GlobalOrdinal, Node>::boundary_nodes_type
;
38
using
Level
=
MueLu::Level
;
39
using
nnz_count_type
= Kokkos::pair<LocalOrdinal, LocalOrdinal>;
40
using
block_indices_view_type
=
typename
Kokkos::View<LocalOrdinal*, typename Node::device_type>;
41
42
static
void
runDroppingFunctors_on_A
(
matrix_type
& A,
43
matrix_type
& mergedA,
44
LocalOrdinal
blkPartSize,
45
block_indices_view_type
& rowTranslation,
46
block_indices_view_type
& colTranslation,
47
results_view
& results,
48
rowptr_type
& filtered_rowptr,
49
rowptr_type
& graph_rowptr,
50
nnz_count_type
& nnz,
51
boundary_nodes_type
& boundaryNodes,
52
const
std::string& droppingMethod,
53
const
magnitudeType
threshold,
54
const
bool
aggregationMayCreateDirichlet,
55
const
bool
symmetrizeDroppedGraph,
56
const
bool
useBlocking,
57
Level
& level,
58
const
Factory
& factory);
59
};
60
61
}
// namespace MueLu
62
#endif
MueLu_BoundaryDetection.hpp
MueLu_ClassicalDropping.hpp
MueLu_CutDrop.hpp
MueLu_DistanceLaplacianDropping.hpp
MueLu_DroppingCommon.hpp
MueLu_MatrixConstruction.hpp
LocalOrdinal
MueLu::DefaultLocalOrdinal LocalOrdinal
Definition
MueLu_UseDefaultTypes.hpp:13
MueLu_VectorDroppingBase.hpp
MueLu::Factory
Definition
MueLu_Factory.hpp:33
MueLu::LWGraphBase< LocalOrdinal, GlobalOrdinal, Node, false >::boundary_nodes_type
Kokkos::View< bool *, memory_space > boundary_nodes_type
Definition
MueLu_LWGraphBase.hpp:95
MueLu::Level
Class that holds all level-specific information.
Definition
MueLu_Level.hpp:63
MueLu::VectorDroppingBase
Definition
MueLu_VectorDroppingBase.hpp:22
MueLu::VectorDroppingClassical
Definition
MueLu_VectorDroppingClassical_decl.hpp:25
MueLu::VectorDroppingClassical::magnitudeType
typename Teuchos::ScalarTraits< Scalar >::magnitudeType magnitudeType
Definition
MueLu_VectorDroppingClassical_decl.hpp:36
MueLu::VectorDroppingClassical::boundary_nodes_type
typename MueLu::LWGraph_kokkos< LocalOrdinal, GlobalOrdinal, Node >::boundary_nodes_type boundary_nodes_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:37
MueLu::VectorDroppingClassical::memory_space
typename device_type::memory_space memory_space
Definition
MueLu_VectorDroppingClassical_decl.hpp:34
MueLu::VectorDroppingClassical::runDroppingFunctors_on_A
static void runDroppingFunctors_on_A(matrix_type &A, matrix_type &mergedA, LocalOrdinal blkPartSize, block_indices_view_type &rowTranslation, block_indices_view_type &colTranslation, results_view &results, rowptr_type &filtered_rowptr, rowptr_type &graph_rowptr, nnz_count_type &nnz, 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)
Definition
MueLu_VectorDroppingClassical_def.hpp:17
MueLu::VectorDroppingClassical::Level
MueLu::Level Level
Definition
MueLu_VectorDroppingClassical_decl.hpp:38
MueLu::VectorDroppingClassical::nnz_count_type
Kokkos::pair< LocalOrdinal, LocalOrdinal > nnz_count_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:39
MueLu::VectorDroppingClassical::crs_matrix_type
Xpetra::CrsMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > crs_matrix_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:28
MueLu::VectorDroppingClassical::block_indices_view_type
typename Kokkos::View< LocalOrdinal *, typename Node::device_type > block_indices_view_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:40
MueLu::VectorDroppingClassical::local_matrix_type
typename crs_matrix_type::local_matrix_device_type local_matrix_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:30
MueLu::VectorDroppingClassical::matrix_type
Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > matrix_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:27
MueLu::VectorDroppingClassical::GraphType
Xpetra::CrsGraph< LocalOrdinal, GlobalOrdinal, Node > GraphType
Definition
MueLu_VectorDroppingClassical_decl.hpp:29
MueLu::VectorDroppingClassical::device_type
typename Node::device_type device_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:33
MueLu::VectorDroppingClassical::rowptr_type
typename local_graph_type::row_map_type::non_const_type rowptr_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:32
MueLu::VectorDroppingClassical::results_view
Kokkos::View< DecisionType *, memory_space > results_view
Definition
MueLu_VectorDroppingClassical_decl.hpp:35
MueLu::VectorDroppingClassical::local_graph_type
typename GraphType::local_graph_device_type local_graph_type
Definition
MueLu_VectorDroppingClassical_decl.hpp:31
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
src
Graph
MatrixTransformation
MueLu_VectorDroppingClassical_decl.hpp
Generated by
1.17.0