aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-12-11 05:56:02 -0800
committerGravatar GitHub <noreply@github.com> 2019-12-11 05:56:02 -0800
commit84892de1590e0d856cbe19b9e269db8cae8ac9a2 (patch)
tree559f09566ccc5d84d03759bb17210dd6f0d3a9c4 /Source/Particles/PhysicalParticleContainer.cpp
parentc1515f593af5469dd419af5b6168f8f680de066a (diff)
parent8a7cd073a469487d7c8e88a3c13c7ae0e2aed588 (diff)
downloadWarpX-84892de1590e0d856cbe19b9e269db8cae8ac9a2.tar.gz
WarpX-84892de1590e0d856cbe19b9e269db8cae8ac9a2.tar.zst
WarpX-84892de1590e0d856cbe19b9e269db8cae8ac9a2.zip
Merge pull request #553 from dpgrote/generalize_gather
Updated field gather for generalized centering
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp33
1 files changed, 12 insertions, 21 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index 3128868e4..95e8ce4fe 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -2169,8 +2169,6 @@ PhysicalParticleContainer::FieldGather (WarpXParIter& pti,
if (np_to_gather == 0) return;
// Get cell size on gather_lev
const std::array<Real,3>& dx = WarpX::CellSize(std::max(gather_lev,0));
- // Set staggering shift depending on e_is_nodal
- const Real stagger_shift = e_is_nodal ? 0.0 : 0.5;
// Get box from which field is gathered.
// If not gathering from the finest level, the box is coarsened.
@@ -2185,13 +2183,6 @@ PhysicalParticleContainer::FieldGather (WarpXParIter& pti,
// Add guard cells to the box.
box.grow(ngE);
- const Array4<const Real>& ex_arr = exfab->array();
- const Array4<const Real>& ey_arr = eyfab->array();
- const Array4<const Real>& ez_arr = ezfab->array();
- const Array4<const Real>& bx_arr = bxfab->array();
- const Array4<const Real>& by_arr = byfab->array();
- const Array4<const Real>& bz_arr = bzfab->array();
-
const ParticleReal * const AMREX_RESTRICT xp = m_xp[thread_num].dataPtr() + offset;
const ParticleReal * const AMREX_RESTRICT zp = m_zp[thread_num].dataPtr() + offset;
const ParticleReal * const AMREX_RESTRICT yp = m_yp[thread_num].dataPtr() + offset;
@@ -2209,25 +2200,25 @@ PhysicalParticleContainer::FieldGather (WarpXParIter& pti,
Exp.dataPtr() + offset, Eyp.dataPtr() + offset,
Ezp.dataPtr() + offset, Bxp.dataPtr() + offset,
Byp.dataPtr() + offset, Bzp.dataPtr() + offset,
- ex_arr, ey_arr, ez_arr, bx_arr, by_arr, bz_arr,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
np_to_gather, dx,
- xyzmin, lo, stagger_shift, WarpX::n_rz_azimuthal_modes);
+ xyzmin, lo, WarpX::n_rz_azimuthal_modes);
} else if (WarpX::nox == 2){
doGatherShapeN<2,1>(xp, yp, zp,
Exp.dataPtr() + offset, Eyp.dataPtr() + offset,
Ezp.dataPtr() + offset, Bxp.dataPtr() + offset,
Byp.dataPtr() + offset, Bzp.dataPtr() + offset,
- ex_arr, ey_arr, ez_arr, bx_arr, by_arr, bz_arr,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
np_to_gather, dx,
- xyzmin, lo, stagger_shift, WarpX::n_rz_azimuthal_modes);
+ xyzmin, lo, WarpX::n_rz_azimuthal_modes);
} else if (WarpX::nox == 3){
doGatherShapeN<3,1>(xp, yp, zp,
Exp.dataPtr() + offset, Eyp.dataPtr() + offset,
Ezp.dataPtr() + offset, Bxp.dataPtr() + offset,
Byp.dataPtr() + offset, Bzp.dataPtr() + offset,
- ex_arr, ey_arr, ez_arr, bx_arr, by_arr, bz_arr,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
np_to_gather, dx,
- xyzmin, lo, stagger_shift, WarpX::n_rz_azimuthal_modes);
+ xyzmin, lo, WarpX::n_rz_azimuthal_modes);
}
} else {
if (WarpX::nox == 1){
@@ -2235,25 +2226,25 @@ PhysicalParticleContainer::FieldGather (WarpXParIter& pti,
Exp.dataPtr() + offset, Eyp.dataPtr() + offset,
Ezp.dataPtr() + offset, Bxp.dataPtr() + offset,
Byp.dataPtr() + offset, Bzp.dataPtr() + offset,
- ex_arr, ey_arr, ez_arr, bx_arr, by_arr, bz_arr,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
np_to_gather, dx,
- xyzmin, lo, stagger_shift, WarpX::n_rz_azimuthal_modes);
+ xyzmin, lo, WarpX::n_rz_azimuthal_modes);
} else if (WarpX::nox == 2){
doGatherShapeN<2,0>(xp, yp, zp,
Exp.dataPtr() + offset, Eyp.dataPtr() + offset,
Ezp.dataPtr() + offset, Bxp.dataPtr() + offset,
Byp.dataPtr() + offset, Bzp.dataPtr() + offset,
- ex_arr, ey_arr, ez_arr, bx_arr, by_arr, bz_arr,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
np_to_gather, dx,
- xyzmin, lo, stagger_shift, WarpX::n_rz_azimuthal_modes);
+ xyzmin, lo, WarpX::n_rz_azimuthal_modes);
} else if (WarpX::nox == 3){
doGatherShapeN<3,0>(xp, yp, zp,
Exp.dataPtr() + offset, Eyp.dataPtr() + offset,
Ezp.dataPtr() + offset, Bxp.dataPtr() + offset,
Byp.dataPtr() + offset, Bzp.dataPtr() + offset,
- ex_arr, ey_arr, ez_arr, bx_arr, by_arr, bz_arr,
+ exfab, eyfab, ezfab, bxfab, byfab, bzfab,
np_to_gather, dx,
- xyzmin, lo, stagger_shift, WarpX::n_rz_azimuthal_modes);
+ xyzmin, lo, WarpX::n_rz_azimuthal_modes);
}
}
}