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>
63 #include "MueLu_PFactory.hpp"
106 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
107 class TentativePFactory_kokkos;
109 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class DeviceType>
110 class TentativePFactory_kokkos<Scalar, LocalOrdinal, GlobalOrdinal, Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType> > :
public PFactory {
112 typedef LocalOrdinal local_ordinal_type;
113 typedef GlobalOrdinal global_ordinal_type;
114 typedef typename DeviceType::execution_space execution_space;
116 typedef Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType> node_type;
122 typedef node_type Node;
123 #undef MUELU_TENTATIVEPFACTORY_KOKKOS_SHORT
131 TentativePFactory_kokkos() { }
134 virtual ~TentativePFactory_kokkos() { }
137 RCP<const ParameterList> GetValidParameterList()
const;
142 void DeclareInput(Level& fineLevel, Level& coarseLevel)
const;
149 void Build (Level& fineLevel, Level& coarseLevel)
const;
150 void BuildP(Level& fineLevel, Level& coarseLevel)
const;
162 void BuildPuncoupled(Level& coarseLevel, RCP<Matrix> A, RCP<Aggregates_kokkos> aggregates, RCP<AmalgamationInfo> amalgInfo, RCP<MultiVector> fineNullspace,
163 RCP<const Map> coarseMap, RCP<Matrix>& Ptentative, RCP<MultiVector>& coarseNullspace,
const int levelID)
const;
164 bool isGoodMap(
const Map& rowMap,
const Map& colMap)
const;
168 void BuildPcoupled (RCP<Matrix> A, RCP<Aggregates_kokkos> aggregates, RCP<AmalgamationInfo> amalgInfo, RCP<MultiVector> fineNullspace,
169 RCP<const Map> coarseMap, RCP<Matrix>& Ptentative, RCP<MultiVector>& coarseNullspace)
const;
171 mutable bool bTransferCoordinates_ =
false;
177 #define MUELU_TENTATIVEPFACTORY_KOKKOS_SHORT
178 #endif // HAVE_MUELU_KOKKOS_REFACTOR
179 #endif // MUELU_TENTATIVEPFACTORY_KOKKOS_DECL_HPP