46 #ifndef MUELU_GEOMETRICINTERPOLATIONPFACTORY_KOKKOS_DECL_HPP
47 #define MUELU_GEOMETRICINTERPOLATIONPFACTORY_KOKKOS_DECL_HPP
56 #include "MueLu_PFactory.hpp"
62 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class Node>
64 #undef MUELU_GEOMETRICINTERPOLATIONPFACTORY_KOKKOS_SHORT
119 KOKKOS_INLINE_FUNCTION
143 #define MUELU_GEOMETRICINTERPOLATIONPFACTORY_KOKKOS_SHORT
144 #endif // MUELU_GEOMETRICINTERPOLATIONPFACTORY_KOKKOS_DECL_HPP
IndexManager_kokkos geoData_
typename Kokkos::Details::ArithTraits< real_type >::val_type impl_scalar_type
coarseCoordinatesBuilderFunctor(RCP< IndexManager_kokkos > geoData, coord_view_type fineCoordView, coord_view_type coarseCoordView)
typename Kokkos::View< impl_scalar_type **, Kokkos::LayoutLeft, execution_space > coord_view_type
coord_view_type coarseCoordView_
virtual ~GeometricInterpolationPFactory_kokkos()
Destructor.
void GetInterpolationFunctions(const LO numDimensions, const Teuchos::SerialDenseVector< LO, real_type > parametricCoordinates, real_type functions[4][8]) const
void Build(Level &fineLevel, Level &coarseLevel) const
Build an object with this factory.
typename Teuchos::ScalarTraits< SC >::coordinateType real_type
typename Node::device_type device_type
GeometricInterpolationPFactory_kokkos()
Constructor.
coord_view_type fineCoordView_
Class that holds all level-specific information.
void ComputeLinearInterpolationStencil(const int numDimensions, const int numInterpolationPoints, const Array< Array< real_type > > coord, Array< real_type > &stencil) const
void BuildConstantP(RCP< Matrix > &P, RCP< const CrsGraph > &prolongatorGraph, RCP< Matrix > &A) const
void BuildP(Level &fineLevel, Level &coarseLevel) const
Abstract Build method.
void BuildLinearP(RCP< Matrix > &A, RCP< const CrsGraph > &prolongatorGraph, RCP< realvaluedmultivector_type > &fineCoordinates, RCP< realvaluedmultivector_type > &ghostCoordinates, const int numDimensions, RCP< Matrix > &P) const
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
Factory that provides an interface for a concrete implementation of a prolongation operator...
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Input.
typename Node::execution_space execution_space
KOKKOS_INLINE_FUNCTION void operator()(const LO nodeIdx) const