69 &nx_arr(ixv[0], ixv[1], ixv[2], 0), 1);
71 &ny_arr(iyv[0], iyv[1], iyv[2], 0), 1);
73 &nz_arr(izv[0], izv[1], izv[2], 0), 1);
77 &wx_arr(ixv[0], ixv[1], ixv[2], 0), wpx_var);
79 &wy_arr(iyv[0], iyv[1], iyv[2], 0), wpy_var);
81 &wz_arr(izv[0], izv[1], izv[2], 0), wpz_var);
85 &vxbar_arr(ixv[0], ixv[1], ixv[2], 0), wpx_var*vxr);
87 &vybar_arr(iyv[0], iyv[1], iyv[2], 0), wpy_var*vyr);
89 &vzbar_arr(izv[0], izv[1], izv[2], 0), wpz_var*vzr);
104 if (nx_arr(ixv[0], ixv[1], ixv[2], 0) > 0) {
105 vxb = vxbar_arr(ixv[0], ixv[1], ixv[2], 0)/wx_arr(ixv[0], ixv[1], ixv[2], 0);
107 if (ny_arr(iyv[0], iyv[1], iyv[2], 0) > 0) {
108 vyb = vybar_arr(iyv[0], iyv[1], iyv[2], 0)/wy_arr(iyv[0], iyv[1], iyv[2], 0);
110 if (nz_arr(izv[0], izv[1], izv[2], 0) > 0) {
111 vzb = vzbar_arr(izv[0], izv[1], izv[2], 0)/wz_arr(izv[0], izv[1], izv[2], 0);
122 &w2x_arr(ixv[0], ixv[1], ixv[2], 0), wpx_var*vxd*vxd);
124 &w2y_arr(iyv[0], iyv[1], iyv[2], 0), wpy_var*vyd*vyd);
126 &w2z_arr(izv[0], izv[1], izv[2], 0), wpz_var*vzd*vzd);
183 [[maybe_unused]]
const int n_rz_azimuthal_modes)
192#if !defined(WARPX_DIM_1D_Z)
197#if defined(WARPX_DIM_RZ) || defined(WARPX_DIM_RCYLINDER)
202 const amrex::Real rpmid = std::sqrt(xpmid*xpmid + ypmid*ypmid);
204 const double xmid = (rpmid - xyzmin.
x)*dinv.
x;
205#elif defined(WARPX_DIM_RSPHERE)
210 const amrex::Real rpmid = std::sqrt(xpmid*xpmid + ypmid*ypmid + zpmid*zpmid);
212 const double xmid = (rpmid - xyzmin.
x)*dinv.
x;
214 const double xmid = ((xp - xyzmin.
x) + relative_time*vx)*dinv.
x;
222 double sx_node[depos_order + 1] = {0.};
223 double sx_cell[depos_order + 1] = {0.};
226 if (varx_type[0] == NODE || vary_type[0] == NODE || varz_type[0] == NODE) {
227 j_node = compute_shape_factor(sx_node, xmid);
229 if (varx_type[0] == CELL || vary_type[0] == CELL || varz_type[0] == CELL) {
230 j_cell = compute_shape_factor(sx_cell, xmid - 0.5);
236 for (
int ix=0; ix<=depos_order; ix++)
243 int const j_jx = ((varx_type[0] == NODE) ? j_node : j_cell);
244 int const j_jy = ((vary_type[0] == NODE) ? j_node : j_cell);
245 int const j_jz = ((varz_type[0] == NODE) ? j_node : j_cell);
248#if defined(WARPX_DIM_3D)
251 const double ymid = ((yp - xyzmin.
y) + relative_time*vy)*dinv.
y;
252 double sy_node[depos_order + 1] = {0.};
253 double sy_cell[depos_order + 1] = {0.};
256 if (varx_type[1] == NODE || vary_type[1] == NODE || varz_type[1] == NODE) {
257 k_node = compute_shape_factor(sy_node, ymid);
259 if (varx_type[1] == CELL || vary_type[1] == CELL || varz_type[1] == CELL) {
260 k_cell = compute_shape_factor(sy_cell, ymid - 0.5);
265 for (
int iy=0; iy<=depos_order; iy++)
271 int const k_jx = ((varx_type[1] == NODE) ? k_node : k_cell);
272 int const k_jy = ((vary_type[1] == NODE) ? k_node : k_cell);
273 int const k_jz = ((varz_type[1] == NODE) ? k_node : k_cell);
276#if !defined(WARPX_DIM_RCYLINDER) && !defined(WARPX_DIM_RSPHERE)
279 constexpr int zdir = WARPX_ZINDEX;
280 const double zmid = ((zp - xyzmin.
z) + relative_time*
vz)*dinv.
z;
281 double sz_node[depos_order + 1] = {0.};
282 double sz_cell[depos_order + 1] = {0.};
285 if (varx_type[zdir] == NODE || vary_type[zdir] == NODE || varz_type[zdir] == NODE) {
286 l_node = compute_shape_factor(sz_node, zmid);
288 if (varx_type[zdir] == CELL || vary_type[zdir] == CELL || varz_type[zdir] == CELL) {
289 l_cell = compute_shape_factor(sz_cell, zmid - 0.5);
294 for (
int iz=0; iz<=depos_order; iz++)
300 int const l_jx = ((varx_type[zdir] == NODE) ? l_node : l_cell);
301 int const l_jy = ((vary_type[zdir] == NODE) ? l_node : l_cell);
302 int const l_jz = ((varz_type[zdir] == NODE) ? l_node : l_cell);
305#if defined(WARPX_DIM_1D_Z)
306 for (
int iz=0; iz<=depos_order; iz++){
318 wpx_var, wpy_var, wpz_var,
319 nx_arr, ny_arr, nz_arr,
320 wx_arr, wy_arr, wz_arr,
321 w2x_arr, w2y_arr, w2z_arr,
322 vxbar_arr, vybar_arr, vzbar_arr,
326#elif defined(WARPX_DIM_RCYLINDER) || defined(WARPX_DIM_RSPHERE)
327 for (
int ix=0; ix<=depos_order; ix++){
339 wpx_var, wpy_var, wpz_var,
340 nx_arr, ny_arr, nz_arr,
341 wx_arr, wy_arr, wz_arr,
342 w2x_arr, w2y_arr, w2z_arr,
343 vxbar_arr, vybar_arr, vzbar_arr,
347#elif defined(WARPX_DIM_XZ) || defined(WARPX_DIM_RZ)
348 for (
int iz=0; iz<=depos_order; iz++){
349 for (
int ix=0; ix<=depos_order; ix++){
350 const amrex::Real wpx_var = wp*sx_jx[ix]*sz_jx[iz];
351 const amrex::Real wpy_var = wp*sx_jy[ix]*sz_jy[iz];
352 const amrex::Real wpz_var = wp*sx_jz[ix]*sz_jz[iz];
361 wpx_var, wpy_var, wpz_var,
362 nx_arr, ny_arr, nz_arr,
363 wx_arr, wy_arr, wz_arr,
364 w2x_arr, w2y_arr, w2z_arr,
365 vxbar_arr, vybar_arr, vzbar_arr,
370#elif defined(WARPX_DIM_3D)
371 for (
int iz=0; iz<=depos_order; iz++){
372 for (
int iy=0; iy<=depos_order; iy++){
373 for (
int ix=0; ix<=depos_order; ix++){
374 const amrex::Real wpx_var = wp*sx_jx[ix]*sy_jx[iy]*sz_jx[iz];
375 const amrex::Real wpy_var = wp*sx_jy[ix]*sy_jy[iy]*sz_jy[iz];
376 const amrex::Real wpz_var = wp*sx_jz[ix]*sy_jz[iy]*sz_jz[iz];
385 wpx_var, wpy_var, wpz_var,
386 nx_arr, ny_arr, nz_arr,
387 wx_arr, wy_arr, wz_arr,
388 w2x_arr, w2y_arr, w2z_arr,
389 vxbar_arr, vybar_arr, vzbar_arr,