diff options
author | 2019-05-28 17:02:14 -0700 | |
---|---|---|
committer | 2019-05-28 17:02:14 -0700 | |
commit | 2ddfcb10aeb31b496153658269147e203a362657 (patch) | |
tree | 51be1ec179e0912c125ff35fc478e6d3ad1d4fe4 /Source/Particles/PhysicalParticleContainer.cpp | |
parent | b7dbfc6b22fb3d94310cc5f5e4b2f34fccfe49ce (diff) | |
download | WarpX-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.cpp | 8 |
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); } |