aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-05-28 17:02:14 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-05-28 17:02:14 -0700
commit2ddfcb10aeb31b496153658269147e203a362657 (patch)
tree51be1ec179e0912c125ff35fc478e6d3ad1d4fe4 /Source/Particles/PhysicalParticleContainer.cpp
parentb7dbfc6b22fb3d94310cc5f5e4b2f34fccfe49ce (diff)
downloadWarpX-2ddfcb10aeb31b496153658269147e203a362657.tar.gz
WarpX-2ddfcb10aeb31b496153658269147e203a362657.tar.zst
WarpX-2ddfcb10aeb31b496153658269147e203a362657.zip
fix issue for symmetric beam
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index c762bdbb3..2c501985f 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -215,14 +215,16 @@ PhysicalParticleContainer::AddGaussianBeam(Real x_m, Real y_m, Real z_m,
if (plasma_injector->insideBounds(x, y, z)) {
plasma_injector->getMomentum(u, x, y, z);
if (do_symmetrize){
+ std::array<Real, 3> u_tmp;
+ Real x_tmp, y_tmp, z_tmp;
// Add four particles to the beam:
// (x,ux,y,uy) (-x,-ux,y,uy) (x,ux,-y,-uy) (-x,-ux,-y,-uy)
- std::array<Real, 3> u_tmp = u;
for (int ix=0; ix<2; ix++){
for (int iy=0; iy<2; iy++){
- x *= std::pow(-1,ix);
+ u_tmp = u;
+ x_tmp = x*std::pow(-1,ix);
u_tmp[0] *= std::pow(-1,ix);
- y *= std::pow(-1,iy);
+ y_tmp = y*std::pow(-1,iy);
u_tmp[1] *= std::pow(-1,iy);
CheckAndAddParticle(x, y, z, u_tmp, weight/4);
}