6#include <similie/misc/clamp_to_domain.hpp>
7#include <similie/misc/domain_contains.hpp>
9#include <Kokkos_Core.hpp>
17struct IdentityStencilEvaluator
19 KOKKOS_FUNCTION
double operator()(
auto,
auto)
const
24 KOKKOS_FUNCTION
double value(
auto sampler,
auto sampled_elem,
auto cochain_elem)
const
26 return sampler(sampled_elem, cochain_elem);
30template <
class TensorType>
31struct ClampedTensorEvaluator
35 KOKKOS_FUNCTION
double operator()(
auto sampled_elem,
auto cochain_elem)
const
38 return tensor.mem(clamped_elem, cochain_elem);
41 KOKKOS_FUNCTION
double value(
auto sampler,
auto sampled_elem,
auto cochain_elem)
const
44 return sampler(clamped_elem, cochain_elem);
48template <
class TensorType>
49struct ZeroOutsideTensorEvaluator
53 KOKKOS_FUNCTION
double operator()(
auto sampled_elem,
auto cochain_elem)
const
58 return tensor.mem(sampled_elem, cochain_elem);
61 KOKKOS_FUNCTION
double value(
auto sampler,
auto sampled_elem,
auto cochain_elem)
const
66 return sampler(sampled_elem, cochain_elem);
KOKKOS_FUNCTION Elem clamp_to_domain(BatchDomain const &batch_domain, Elem const &elem)
KOKKOS_FUNCTION bool domain_contains(ddc::DiscreteDomain< DDim... > dom, ddc::DiscreteElement< ODDim... > elem)
The top-level namespace of SimiLie.