46 #ifndef MUELU_TENTATIVEPFACTORY_KOKKOS_DECL_HPP 47 #define MUELU_TENTATIVEPFACTORY_KOKKOS_DECL_HPP 50 #ifdef HAVE_MUELU_KOKKOS_REFACTOR 54 #include <KokkosCompat_ClassicNodeAPI_Wrapper.hpp> 61 #include "MueLu_PFactory.hpp" 104 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
105 class TentativePFactory_kokkos;
107 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class DeviceType>
108 class TentativePFactory_kokkos<Scalar, LocalOrdinal, GlobalOrdinal,
Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType> > :
public PFactory {
110 typedef LocalOrdinal local_ordinal_type;
111 typedef GlobalOrdinal global_ordinal_type;
112 typedef typename DeviceType::execution_space execution_space;
114 typedef Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType> node_type;
118 typedef node_type Node;
119 #undef MUELU_TENTATIVEPFACTORY_KOKKOS_SHORT 127 TentativePFactory_kokkos() { }
130 virtual ~TentativePFactory_kokkos() { }
133 RCP<const ParameterList> GetValidParameterList()
const;
138 void DeclareInput(Level& fineLevel, Level& coarseLevel)
const;
145 void Build (Level& fineLevel, Level& coarseLevel)
const;
146 void BuildP(Level& fineLevel, Level& coarseLevel)
const;
158 void BuildPuncoupled(Level& coarseLevel, RCP<Matrix> A, RCP<Aggregates_kokkos> aggregates, RCP<AmalgamationInfo> amalgInfo, RCP<MultiVector> fineNullspace,
159 RCP<const Map> coarseMap, RCP<Matrix>& Ptentative, RCP<MultiVector>& coarseNullspace)
const;
163 void BuildPcoupled (RCP<Matrix> A, RCP<Aggregates_kokkos> aggregates, RCP<AmalgamationInfo> amalgInfo, RCP<MultiVector> fineNullspace,
164 RCP<const Map> coarseMap, RCP<Matrix>& Ptentative, RCP<MultiVector>& coarseNullspace)
const;
165 bool isGoodMap(
const Map& rowMap,
const Map& colMap)
const;
171 #define MUELU_TENTATIVEPFACTORY_KOKKOS_SHORT 172 #endif // HAVE_MUELU_KOKKOS_REFACTOR 173 #endif // MUELU_TENTATIVEPFACTORY_KOKKOS_DECL_HPP
Namespace for MueLu classes and methods.