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>
114 typedef typename DeviceType::execution_space execution_space;
116 typedef Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType> node_type;
118 typedef Xpetra::MultiVector<real_type, LocalOrdinal, GlobalOrdinal, node_type> RealValuedMultiVector;
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,
163 RCP<AmalgamationInfo_kokkos> amalgInfo, RCP<MultiVector> fineNullspace,
164 RCP<const Map> coarseMap, RCP<Matrix>& Ptentative,
165 RCP<MultiVector>& coarseNullspace,
const int levelID)
const;
166 bool isGoodMap(
const Map& rowMap,
const Map& colMap)
const;
170 void BuildPcoupled (RCP<Matrix> A, RCP<Aggregates_kokkos> aggregates,
171 RCP<AmalgamationInfo_kokkos> amalgInfo, RCP<MultiVector> fineNullspace,
172 RCP<const Map> coarseMap, RCP<Matrix>& Ptentative,
173 RCP<MultiVector>& coarseNullspace)
const;
175 mutable bool bTransferCoordinates_ =
false;
181 #define MUELU_TENTATIVEPFACTORY_KOKKOS_SHORT
182 #endif // HAVE_MUELU_KOKKOS_REFACTOR
183 #endif // MUELU_TENTATIVEPFACTORY_KOKKOS_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal