1 #ifndef GRID_WEIGHTS_HPP
2 #define GRID_WEIGHTS_HPP
17 template<PhiWtUsage PWU>
19 KOKKOS_INLINE_FUNCTION
void set(
const Simd<double>& phi_in,
double inv_delta_phi,
int nplanes){}
35 KOKKOS_INLINE_FUNCTION
void set(
const Simd<double>& phi_in,
double inv_delta_phi,
int nplanes){
36 for (
int i_simd = 0; i_simd<SIMD_SIZE; i_simd++){
37 phi[i_simd].set(phi_in[i_simd], inv_delta_phi, nplanes);
42 for (
int i_simd = 0; i_simd<SIMD_SIZE; i_simd++){
43 phi[i_simd].w[0] = 0.5;
44 phi[i_simd].w[1] = 0.5;
50 template<Order OT, PhiInterpType PIT>
55 template<PhiInterpType PIT>
60 KOKKOS_INLINE_FUNCTION
bool is_valid(
int i_simd)
const{
61 return (node[i_simd]>=0);
65 KOKKOS_INLINE_FUNCTION
bool is_invalid(
int i_simd)
const{
66 return (node[i_simd]<0);
76 template<PhiInterpType PIT>
88 KOKKOS_INLINE_FUNCTION
bool is_valid(
int i_simd)
const{
89 return (itr[i_simd]>0);
92 KOKKOS_INLINE_FUNCTION
bool is_invalid(
int i_simd)
const{
93 return (itr[i_simd]<=0);
97 for (
int i_simd = 0; i_simd<SIMD_SIZE; i_simd++){
98 is_not_valid[i_simd] = is_invalid(i_simd);
113 itr[i_simd] = grid_wts.
itr[i_simd];
Definition: grid_weights.hpp:12
KOKKOS_INLINE_FUNCTION SimdGridWeights()
Definition: grid_weights.hpp:83
Simd< LinearWeights > phi
Definition: grid_weights.hpp:33
Simd< int > itr
Definition: grid_weights.hpp:78
Definition: grid_weights.hpp:77
Simd< int > node
Definition: grid_weights.hpp:57
Definition: grid_weights.hpp:51
KOKKOS_INLINE_FUNCTION bool is_invalid(int i_simd) const
Definition: grid_weights.hpp:92
KOKKOS_INLINE_FUNCTION bool is_invalid(int i_simd) const
Definition: grid_weights.hpp:65
KOKKOS_INLINE_FUNCTION void is_not_in_grid(Simd< bool > &is_not_valid) const
Definition: grid_weights.hpp:96
KOKKOS_INLINE_FUNCTION void set(const Simd< double > &phi_in, double inv_delta_phi, int nplanes)
Definition: grid_weights.hpp:19
KOKKOS_INLINE_FUNCTION void set(const Simd< double > &phi_in, double inv_delta_phi, int nplanes)
Definition: grid_weights.hpp:35
constexpr KOKKOS_INLINE_FUNCTION PhiWtUsage get_phi_wt_usage(PhiInterpType PIT)
Definition: grid_weights.hpp:15
Definition: grid_weights.hpp:18
Simd< int > i_phi
Definition: grid_weights.hpp:26
PhiInterpType
Definition: globals.hpp:95
Order
Definition: globals.hpp:77
KOKKOS_INLINE_FUNCTION void mark_as_invalid(int i_simd)
Definition: grid_weights.hpp:69
Definition: grid_structs.hpp:7
KOKKOS_INLINE_FUNCTION void set_to_midplane()
Definition: grid_weights.hpp:21
KOKKOS_INLINE_FUNCTION void add_hint(const SimdGridWeights< Order::One, PIT > &grid_wts)
Definition: grid_weights.hpp:107
KOKKOS_INLINE_FUNCTION void set_to_midplane()
Definition: grid_weights.hpp:41
Definition: grid_weights.hpp:11
SimdGridVec p
Definition: grid_weights.hpp:79
KOKKOS_INLINE_FUNCTION void add_hint(const SimdGridWeights< Order::One, PIT > &grid_wts, int i_simd)
Definition: grid_weights.hpp:112
KOKKOS_INLINE_FUNCTION bool is_valid(int i_simd) const
Definition: grid_weights.hpp:88
KOKKOS_INLINE_FUNCTION bool is_valid(int i_simd) const
Definition: grid_weights.hpp:60
PhiWtUsage
Definition: grid_weights.hpp:9
Definition: grid_weights.hpp:10
KOKKOS_INLINE_FUNCTION void mark_as_invalid()
Definition: grid_weights.hpp:102