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>
56#include "Teuchos_ScalarTraits.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;
117 typedef typename Teuchos::ScalarTraits<Scalar>::coordinateType real_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
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Namespace for MueLu classes and methods.