MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_CoalesceDropFactory_kokkos_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_COALESCEDROPFACTORY_KOKKOS_DECL_HPP
11#define MUELU_COALESCEDROPFACTORY_KOKKOS_DECL_HPP
12
13#include "MueLu_ConfigDefs.hpp"
14
15#include <Tpetra_KokkosCompat_ClassicNodeAPI_Wrapper.hpp>
16
17#include "Xpetra_Matrix_fwd.hpp"
18
20
22#include "MueLu_Level_fwd.hpp"
26
27namespace MueLu {
28
94template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
96 : public SingleLevelFactoryBase {
97 public:
100 using execution_space = typename Node::execution_space;
101 using range_type = Kokkos::RangePolicy<local_ordinal_type, execution_space>;
103
104 private:
106
107 // For compatibility
108#undef MUELU_COALESCEDROPFACTORY_KOKKOS_SHORT
110
111 public:
113
114
117
120
121 RCP<const ParameterList> GetValidParameterList() const;
122
124
126
127
128 void DeclareInput(Level& currentLevel) const;
129
131
132 void Build(Level& currentLevel) const;
133
134 std::tuple<RCP<LocalOrdinalVector>, RCP<LocalOrdinalVector> > GetBlockNumberMVs(Level& currentLevel) const;
135
136 std::tuple<GlobalOrdinal, boundary_nodes_type> BuildScalar(Level& currentLevel) const;
137
138 std::tuple<GlobalOrdinal, boundary_nodes_type> BuildVector(Level& currentLevel) const;
139};
140
141} // namespace MueLu
142
143#define MUELU_COALESCEDROPFACTORY_KOKKOS_SHORT
144#endif // MUELU_COALESCEDROPFACTORY_KOKKOS_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
void DeclareInput(Level &currentLevel) const
Input.
Kokkos::RangePolicy< local_ordinal_type, execution_space > range_type
void Build(Level &currentLevel) const
Build an object with this factory.
typename MueLu::LWGraph_kokkos< LocalOrdinal, GlobalOrdinal, Node >::boundary_nodes_type boundary_nodes_type
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
std::tuple< GlobalOrdinal, boundary_nodes_type > BuildVector(Level &currentLevel) const
std::tuple< GlobalOrdinal, boundary_nodes_type > BuildScalar(Level &currentLevel) const
std::tuple< RCP< LocalOrdinalVector >, RCP< LocalOrdinalVector > > GetBlockNumberMVs(Level &currentLevel) const
Class that holds all level-specific information.
SingleLevelFactoryBase()
Constructor.
Namespace for MueLu classes and methods.