71 &nx_arr(ixv[0], ixv[1], ixv[2], 0), 1);
73 &ny_arr(iyv[0], iyv[1], iyv[2], 0), 1);
75 &nz_arr(izv[0], izv[1], izv[2], 0), 1);
79 &wx_arr(ixv[0], ixv[1], ixv[2], 0), wpx_var);
81 &wy_arr(iyv[0], iyv[1], iyv[2], 0), wpy_var);
83 &wz_arr(izv[0], izv[1], izv[2], 0), wpz_var);
87 &vxbar_arr(ixv[0], ixv[1], ixv[2], 0), wpx_var*vxr);
89 &vybar_arr(iyv[0], iyv[1], iyv[2], 0), wpy_var*vyr);
91 &vzbar_arr(izv[0], izv[1], izv[2], 0), wpz_var*vzr);
106 if (nx_arr(ixv[0], ixv[1], ixv[2], 0) > 0) {
107 vxb = vxbar_arr(ixv[0], ixv[1], ixv[2], 0)/wx_arr(ixv[0], ixv[1], ixv[2], 0);
109 if (ny_arr(iyv[0], iyv[1], iyv[2], 0) > 0) {
110 vyb = vybar_arr(iyv[0], iyv[1], iyv[2], 0)/wy_arr(iyv[0], iyv[1], iyv[2], 0);
112 if (nz_arr(izv[0], izv[1], izv[2], 0) > 0) {
113 vzb = vzbar_arr(izv[0], izv[1], izv[2], 0)/wz_arr(izv[0], izv[1], izv[2], 0);
124 &w2x_arr(ixv[0], ixv[1], ixv[2], 0), wpx_var*vxd*vxd);
126 &w2y_arr(iyv[0], iyv[1], iyv[2], 0), wpy_var*vyd*vyd);
128 &w2z_arr(izv[0], izv[1], izv[2], 0), wpz_var*vzd*vzd);
185 [[maybe_unused]]
const int n_rz_azimuthal_modes)
194#if !defined(WARPX_DIM_1D_Z)
199#if defined(WARPX_DIM_RZ) || defined(WARPX_DIM_RCYLINDER)
204 const amrex::Real rpmid = std::sqrt(xpmid*xpmid + ypmid*ypmid);
206 const double xmid = (rpmid - xyzmin.
x)*dinv.
x;
207#elif defined(WARPX_DIM_RSPHERE)
212 const amrex::Real rpmid = std::sqrt(xpmid*xpmid + ypmid*ypmid + zpmid*zpmid);
214 const double xmid = (rpmid - xyzmin.
x)*dinv.
x;
216 const double xmid = ((xp - xyzmin.
x) + relative_time*vx)*dinv.
x;
224 double sx_node[depos_order + 1] = {0.};
225 double sx_cell[depos_order + 1] = {0.};
228 if (varx_type[0] == NODE || vary_type[0] == NODE || varz_type[0] == NODE) {
229 j_node = compute_shape_factor(sx_node, xmid);
231 if (varx_type[0] == CELL || vary_type[0] == CELL || varz_type[0] == CELL) {
232 j_cell = compute_shape_factor(sx_cell, xmid - 0.5);
238 for (
int ix=0; ix<=depos_order; ix++)
245 int const j_jx = ((varx_type[0] == NODE) ? j_node : j_cell);
246 int const j_jy = ((vary_type[0] == NODE) ? j_node : j_cell);
247 int const j_jz = ((varz_type[0] == NODE) ? j_node : j_cell);
250#if defined(WARPX_DIM_3D)
253 const double ymid = ((yp - xyzmin.
y) + relative_time*vy)*dinv.
y;
254 double sy_node[depos_order + 1] = {0.};
255 double sy_cell[depos_order + 1] = {0.};
258 if (varx_type[1] == NODE || vary_type[1] == NODE || varz_type[1] == NODE) {
259 k_node = compute_shape_factor(sy_node, ymid);
261 if (varx_type[1] == CELL || vary_type[1] == CELL || varz_type[1] == CELL) {
262 k_cell = compute_shape_factor(sy_cell, ymid - 0.5);
267 for (
int iy=0; iy<=depos_order; iy++)
273 int const k_jx = ((varx_type[1] == NODE) ? k_node : k_cell);
274 int const k_jy = ((vary_type[1] == NODE) ? k_node : k_cell);
275 int const k_jz = ((varz_type[1] == NODE) ? k_node : k_cell);
278#if !defined(WARPX_DIM_RCYLINDER) && !defined(WARPX_DIM_RSPHERE)
281 constexpr int zdir = WARPX_ZINDEX;
282 const double zmid = ((zp - xyzmin.
z) + relative_time*
vz)*dinv.
z;
283 double sz_node[depos_order + 1] = {0.};
284 double sz_cell[depos_order + 1] = {0.};
287 if (varx_type[zdir] == NODE || vary_type[zdir] == NODE || varz_type[zdir] == NODE) {
288 l_node = compute_shape_factor(sz_node, zmid);
290 if (varx_type[zdir] == CELL || vary_type[zdir] == CELL || varz_type[zdir] == CELL) {
291 l_cell = compute_shape_factor(sz_cell, zmid - 0.5);
296 for (
int iz=0; iz<=depos_order; iz++)
302 int const l_jx = ((varx_type[zdir] == NODE) ? l_node : l_cell);
303 int const l_jy = ((vary_type[zdir] == NODE) ? l_node : l_cell);
304 int const l_jz = ((varz_type[zdir] == NODE) ? l_node : l_cell);
307#if defined(WARPX_DIM_1D_Z)
308 for (
int iz=0; iz<=depos_order; iz++){
320 wpx_var, wpy_var, wpz_var,
321 nx_arr, ny_arr, nz_arr,
322 wx_arr, wy_arr, wz_arr,
323 w2x_arr, w2y_arr, w2z_arr,
324 vxbar_arr, vybar_arr, vzbar_arr,
328#elif defined(WARPX_DIM_RCYLINDER) || defined(WARPX_DIM_RSPHERE)
329 for (
int ix=0; ix<=depos_order; ix++){
341 wpx_var, wpy_var, wpz_var,
342 nx_arr, ny_arr, nz_arr,
343 wx_arr, wy_arr, wz_arr,
344 w2x_arr, w2y_arr, w2z_arr,
345 vxbar_arr, vybar_arr, vzbar_arr,
349#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
350 for (
int iz=0; iz<=depos_order; iz++){
351 for (
int ix=0; ix<=depos_order; ix++){
352 const amrex::Real wpx_var = wp*sx_jx[ix]*sz_jx[iz];
353 const amrex::Real wpy_var = wp*sx_jy[ix]*sz_jy[iz];
354 const amrex::Real wpz_var = wp*sx_jz[ix]*sz_jz[iz];
363 wpx_var, wpy_var, wpz_var,
364 nx_arr, ny_arr, nz_arr,
365 wx_arr, wy_arr, wz_arr,
366 w2x_arr, w2y_arr, w2z_arr,
367 vxbar_arr, vybar_arr, vzbar_arr,
372#elif defined(WARPX_DIM_3D)
373 for (
int iz=0; iz<=depos_order; iz++){
374 for (
int iy=0; iy<=depos_order; iy++){
375 for (
int ix=0; ix<=depos_order; ix++){
376 const amrex::Real wpx_var = wp*sx_jx[ix]*sy_jx[iy]*sz_jx[iz];
377 const amrex::Real wpy_var = wp*sx_jy[ix]*sy_jy[iy]*sz_jy[iz];
378 const amrex::Real wpz_var = wp*sx_jz[ix]*sy_jz[iy]*sz_jz[iz];
387 wpx_var, wpy_var, wpz_var,
388 nx_arr, ny_arr, nz_arr,
389 wx_arr, wy_arr, wz_arr,
390 w2x_arr, w2y_arr, w2z_arr,
391 vxbar_arr, vybar_arr, vzbar_arr,