46#ifndef MUELU_MATRIXFREETENTATIVEP_KOKKOS_DECL_HPP
47#define MUELU_MATRIXFREETENTATIVEP_KOKKOS_DECL_HPP
53#include <KokkosCompat_ClassicNodeAPI_Wrapper.hpp>
55#include "Teuchos_ScalarTraits.hpp"
59#include "Xpetra_Operator.hpp"
71 template <
class Scalar,
class LocalOrdinal,
class GlobalOrdinal,
class DeviceType>
77 typedef Kokkos::RangePolicy<local_ordinal_type, execution_space>
range_type;
78 typedef Kokkos::MDRangePolicy<local_ordinal_type, execution_space, Kokkos::Rank<2>>
md_range_type;
79 typedef Kokkos::Compat::KokkosDeviceWrapperNode<DeviceType>
node_type;
80 typedef typename Teuchos::ScalarTraits<Scalar>::coordinateType
real_type;
85#undef MUELU_MATRIXFREETENTATIVEP_KOKKOS_SHORT
93 MatrixFreeTentativeP_kokkos(Teuchos::RCP<const Map> coarse_map, Teuchos::RCP<const Map> fine_map, Teuchos::RCP<const Aggregates_kokkos> aggregates)
94 : fine_map_(fine_map),
95 coarse_map_(coarse_map),
96 aggregates_(aggregates)
104 void apply(
const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS,
Scalar alpha=Teuchos::ScalarTraits<Scalar>::one(),
Scalar beta=Teuchos::ScalarTraits<Scalar>::zero())
const override;
107 void residual (
const MultiVector &X,
const MultiVector &B, MultiVector &R)
const override;
138#define MUELU_MATRIXFREETENTATIVEP_KOKKOS_SHORT
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
Teuchos::ScalarTraits< Scalar >::coordinateType real_type
LocalOrdinal local_ordinal_type
Kokkos::RangePolicy< local_ordinal_type, execution_space > range_type
Teuchos::RCP< const Map > getRangeMap() const override
const Teuchos::RCP< const Aggregates_kokkos > aggregates_
GlobalOrdinal global_ordinal_type
Kokkos::MDRangePolicy< local_ordinal_type, execution_space, Kokkos::Rank< 2 > > md_range_type
Kokkos::Compat::KokkosDeviceWrapperNode< DeviceType > node_type
~MatrixFreeTentativeP_kokkos()=default
Destructor.
Teuchos::RCP< const Aggregates_kokkos > getAggregates() const
const Teuchos::RCP< const Map > fine_map_
const Teuchos::RCP< const Map > coarse_map_
Teuchos::RCP< const Map > getDomainMap() const override
DeviceType::execution_space execution_space
MatrixFreeTentativeP_kokkos(Teuchos::RCP< const Map > coarse_map, Teuchos::RCP< const Map > fine_map, Teuchos::RCP< const Aggregates_kokkos > aggregates)
Constructor.
Namespace for MueLu classes and methods.