5#ifndef IPPL_PARTICLE_BC_H
6#define IPPL_PARTICLE_BC_H
20 template <
typename T,
unsigned Dim,
class ViewType>
22 using value_type =
typename ViewType::value_type::value_type;
41 KOKKOS_DEFAULTED_FUNCTION
45 const unsigned& dim,
const bool&
isUpper)
55 KOKKOS_DEFAULTED_FUNCTION
59 template <
typename T,
unsigned Dim,
class ViewType>
66 KOKKOS_DEFAULTED_FUNCTION
70 const unsigned& dim,
const bool&
isUpper)
73 KOKKOS_INLINE_FUNCTION
void operator()(
const size_t& i)
const {
78 KOKKOS_DEFAULTED_FUNCTION
82 template <
typename T,
unsigned Dim,
class ViewType>
90 KOKKOS_DEFAULTED_FUNCTION
94 const unsigned& dim,
const bool&
isUpper)
97 KOKKOS_INLINE_FUNCTION
void operator()(
const size_t& i)
const {
106 KOKKOS_DEFAULTED_FUNCTION
110 template <
typename T,
unsigned Dim,
class ViewType>
118 KOKKOS_DEFAULTED_FUNCTION
122 const unsigned& dim,
const bool&
isUpper)
125 KOKKOS_INLINE_FUNCTION
void operator()(
const size_t& i)
const {
133 KOKKOS_DEFAULTED_FUNCTION
KOKKOS_INLINE_FUNCTION Vector< T, Dim > min(const Vector< T, Dim > &a, const Vector< T, Dim > &b)
bool isUpper(unsigned int face)
size_t dim_m
The dimension along which this boundary condition.
KOKKOS_INLINE_FUNCTION ParticleBC(const ViewType &view, const NDRegion< T, Dim > &nr, const unsigned &dim, const bool &isUpper)
double middle_m
The coordinate of the midpoint of the domain along the given dimension.
KOKKOS_DEFAULTED_FUNCTION ~ParticleBC()=default
bool isUpper_m
Whether the boundary conditions are being applied for an upper.
ViewType view_m
Kokkos view containing the field data.
typename ViewType::value_type::value_type value_type
double extent_m
The length of the domain along the given dimension.
KOKKOS_DEFAULTED_FUNCTION ParticleBC()=default
double minval_m
Minimum and maximum coordinates of the domain along the given dimension.
KOKKOS_INLINE_FUNCTION void operator()(const size_t &i) const
KOKKOS_DEFAULTED_FUNCTION ~PeriodicBC()=default
KOKKOS_DEFAULTED_FUNCTION PeriodicBC()=default
KOKKOS_INLINE_FUNCTION PeriodicBC(const ViewType &view, const NDRegion< T, Dim > &nr, const unsigned &dim, const bool &isUpper)
typename ParticleBC< T, Dim, ViewType >::value_type value_type
KOKKOS_INLINE_FUNCTION void operator()(const size_t &i) const
KOKKOS_DEFAULTED_FUNCTION ~ReflectiveBC()=default
KOKKOS_DEFAULTED_FUNCTION ReflectiveBC()=default
KOKKOS_INLINE_FUNCTION ReflectiveBC(const ViewType &view, const NDRegion< T, Dim > &nr, const unsigned &dim, const bool &isUpper)
typename ParticleBC< T, Dim, ViewType >::value_type value_type
KOKKOS_INLINE_FUNCTION SinkBC(const ViewType &view, const NDRegion< T, Dim > &nr, const unsigned &dim, const bool &isUpper)
KOKKOS_DEFAULTED_FUNCTION ~SinkBC()=default
KOKKOS_DEFAULTED_FUNCTION SinkBC()=default
KOKKOS_INLINE_FUNCTION void operator()(const size_t &i) const
typename ParticleBC< T, Dim, ViewType >::value_type value_type