46#ifndef MUELU_SEMICOARSENPFACTORY_KOKKOS_DECL_HPP
47#define MUELU_SEMICOARSENPFACTORY_KOKKOS_DECL_HPP
49#include <Xpetra_Matrix_fwd.hpp>
53#include "MueLu_PFactory.hpp"
96template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
103 Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType>> :
public PFactory {
108 typedef Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType>
node_type;
114#undef MUELU_SEMICOARSENPFACTORY_KOKKOS_SHORT
128 RCP<const ParameterList> GetValidParameterList()
const;
133 void DeclareInput(
Level &fineLevel,
Level &coarseLevel)
const;
140 void Build(
Level &fineLevel,
Level &coarseLevel)
const;
141 void BuildP(
Level &fineLevel,
Level &coarseLevel)
const;
145 void BuildSemiCoarsenP(
Level &coarseLevel,
const LO NFRows,
const LO NFNodes,
146 const LO DofsPerNode,
const LO NFLayers,
147 const LO NCLayers,
const ArrayRCP<LO> LayerId,
148 const ArrayRCP<LO> VertLineId,
const RCP<Matrix> &Amat,
149 const RCP<MultiVector> fineNullspace, RCP<Matrix> &P,
150 RCP<MultiVector> &coarseNullspace)
const;
159#define MUELU_SEMICOARSENPFACTORY_KOKKOS_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Class that holds all level-specific information.
Factory that provides an interface for a concrete implementation of a prolongation operator.
DeviceType::execution_space execution_space
GlobalOrdinal global_ordinal_type
bool bTransferCoordinates_
LocalOrdinal local_ordinal_type
Kokkos::Compat::KokkosDeviceWrapperNode< DeviceType > node_type
SemiCoarsenPFactory_kokkos()
Constructor.
virtual ~SemiCoarsenPFactory_kokkos()=default
Destructor.
Prolongator factory performing semi-coarsening.
Namespace for MueLu classes and methods.