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
23#include "MueLu_Level_fwd.hpp"
27
28namespace MueLu {
29
95template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
97 : public SingleLevelFactoryBase {
98 public:
101 using execution_space = typename Node::execution_space;
102 using range_type = Kokkos::RangePolicy<local_ordinal_type, execution_space>;
104
105 private:
107
108 // For compatibility
109#undef MUELU_COALESCEDROPFACTORY_KOKKOS_SHORT
111
112 public:
114
115
118
121
122 RCP<const ParameterList> GetValidParameterList() const;
123
125
127
128
129 void DeclareInput(Level& currentLevel) const;
130
132
133 void Build(Level& currentLevel) const;
134
135 Teuchos::RCP<MultiVector> GetMaterial(Level& currentLevel, size_t spatialDim) const;
136
137 std::tuple<GlobalOrdinal, boundary_nodes_type> BuildScalar(Level& currentLevel) const;
138
139 std::tuple<GlobalOrdinal, boundary_nodes_type> BuildVector(Level& currentLevel) const;
140};
141
142} // namespace MueLu
143
144#define MUELU_COALESCEDROPFACTORY_KOKKOS_SHORT
145#endif // MUELU_COALESCEDROPFACTORY_KOKKOS_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
Factory for creating a graph based on a given matrix.
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
Teuchos::RCP< MultiVector > GetMaterial(Level &currentLevel, size_t spatialDim) const
Class that holds all level-specific information.
Base class for factories that use one level (currentLevel).
Namespace for MueLu classes and methods.