7 #ifndef DISTANCETOEB_H_
8 #define DISTANCETOEB_H_
19 namespace DistanceToEB
25 return AMREX_D_TERM(a[0]*b[0], + a[1]*b[1], + a[2]*b[2]);
31 amrex::Real inv_norm = 1.0/std::sqrt(dot_product(a,a));
38 amrex::RealVect interp_normal (
int i,
int j,
int k,
const amrex::Real W[AMREX_SPACEDIM][2],
42 #if (defined WARPX_DIM_3D)
45 normal[0] -= phi(
i, j , k ) * dxi[0] * W[1][0] * W[2][0];
46 normal[0] += phi(
i+1, j , k ) * dxi[0] * W[1][0] * W[2][0];
47 normal[0] -= phi(
i, j+1, k ) * dxi[0] * W[1][1] * W[2][0];
48 normal[0] += phi(
i+1, j+1, k ) * dxi[0] * W[1][1] * W[2][0];
49 normal[0] -= phi(
i, j , k+1) * dxi[0] * W[1][0] * W[2][1];
50 normal[0] += phi(
i+1, j , k+1) * dxi[0] * W[1][0] * W[2][1];
51 normal[0] -= phi(
i , j+1, k+1) * dxi[0] * W[1][1] * W[2][1];
52 normal[0] += phi(
i+1, j+1, k+1) * dxi[0] * W[1][1] * W[2][1];
54 normal[1] -= phi(
i, j , k ) * dxi[1] * W[0][0] * W[2][0];
55 normal[1] += phi(
i , j+1, k ) * dxi[1] * W[0][0] * W[2][0];
56 normal[1] -= phi(
i+1, j , k ) * dxi[1] * W[0][1] * W[2][0];
57 normal[1] += phi(
i+1, j+1, k ) * dxi[1] * W[0][1] * W[2][0];
58 normal[1] -= phi(
i, j , k+1) * dxi[1] * W[0][0] * W[2][1];
59 normal[1] += phi(
i , j+1, k+1) * dxi[1] * W[0][0] * W[2][1];
60 normal[1] -= phi(
i+1, j , k+1) * dxi[1] * W[0][1] * W[2][1];
61 normal[1] += phi(
i+1, j+1, k+1) * dxi[1] * W[0][1] * W[2][1];
63 normal[2] -= phi(
i , j , k ) * dxi[2] * W[0][0] * W[1][0];
64 normal[2] += phi(
i , j , k+1) * dxi[2] * W[0][0] * W[1][0];
65 normal[2] -= phi(
i+1, j , k ) * dxi[2] * W[0][1] * W[1][0];
66 normal[2] += phi(
i+1, j , k+1) * dxi[2] * W[0][1] * W[1][0];
67 normal[2] -= phi(
i, j+1, k ) * dxi[2] * W[0][0] * W[1][1];
68 normal[2] += phi(
i , j+1, k+1) * dxi[2] * W[0][0] * W[1][1];
69 normal[2] -= phi(
i+1, j+1, k ) * dxi[2] * W[0][1] * W[1][1];
70 normal[2] += phi(
i+1, j+1, k+1) * dxi[2] * W[0][1] * W[1][1];
71 #elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
74 normal[0] -= phi(
i, j , k) * dxi[0] * W[1][0];
75 normal[0] += phi(
i+1, j , k) * dxi[0] * W[1][0];
76 normal[0] -= phi(
i, j+1, k) * dxi[0] * W[1][1];
77 normal[0] += phi(
i+1, j+1, k) * dxi[0] * W[1][1];
79 normal[1] -= phi(
i, j , k) * dxi[1] * W[0][0];
80 normal[1] += phi(
i , j+1, k) * dxi[1] * W[0][0];
81 normal[1] -= phi(
i+1, j , k) * dxi[1] * W[0][1];
82 normal[1] += phi(
i+1, j+1, k) * dxi[1] * W[0][1];
#define AMREX_GPU_HOST_DEVICE
#define AMREX_D_TERM(a, b, c)
#define AMREX_D_DECL(a, b, c)
#define WARPX_ABORT_WITH_MESSAGE(MSG)
Definition: TextMsg.H:15
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void ignore_unused(const Ts &...)
i
Definition: check_interp_points_and_weights.py:174