diff options
author | 2019-10-07 10:22:11 -0700 | |
---|---|---|
committer | 2019-10-07 10:22:11 -0700 | |
commit | 10d22fb4126732b4b088dce568252532da7be39f (patch) | |
tree | d2fe3675baf44bd59143836d258020aeb0712978 /Source/Particles/PhysicalParticleContainer.cpp | |
parent | 17b067bcaf982ad12f4ac604308391a806e2c1f7 (diff) | |
download | WarpX-10d22fb4126732b4b088dce568252532da7be39f.tar.gz WarpX-10d22fb4126732b4b088dce568252532da7be39f.tar.zst WarpX-10d22fb4126732b4b088dce568252532da7be39f.zip |
Fix issue: 'AddParticles' is slow on GPU + coding format change.
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.cpp | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp index b06e45b63..7c8c81eed 100644 --- a/Source/Particles/PhysicalParticleContainer.cpp +++ b/Source/Particles/PhysicalParticleContainer.cpp @@ -191,28 +191,27 @@ PhysicalParticleContainer::AddGaussianBeam(Real x_m, Real y_m, Real z_m, u.z *= PhysConst::c; if (do_symmetrize){ // Add four particles to the beam: - CheckAndAddParticle(x, y, z, { u.x, u.y, u.z}, weight/4., - particle_x, particle_y, particle_z, - particle_ux, particle_uy, particle_uz, - particle_w); - CheckAndAddParticle(x, -y, z, { u.x, -u.y, u.z}, weight/4., - particle_x, particle_y, particle_z, - particle_ux, particle_uy, particle_uz, - particle_w); - CheckAndAddParticle(-x, y, z, { -u.x, u.y, u.z}, weight/4., - particle_x, particle_y, particle_z, - particle_ux, particle_uy, particle_uz, - particle_w); - CheckAndAddParticle(-x, -y, z, { -u.x, -u.y, u.z}, weight/4., - particle_x, particle_y, particle_z, - particle_ux, particle_uy, particle_uz, - particle_w); - + CheckAndAddParticle(x, y, z, { u.x, u.y, u.z}, weight/4., + particle_x, particle_y, particle_z, + particle_ux, particle_uy, particle_uz, + particle_w); + CheckAndAddParticle(x, -y, z, { u.x, -u.y, u.z}, weight/4., + particle_x, particle_y, particle_z, + particle_ux, particle_uy, particle_uz, + particle_w); + CheckAndAddParticle(-x, y, z, { -u.x, u.y, u.z}, weight/4., + particle_x, particle_y, particle_z, + particle_ux, particle_uy, particle_uz, + particle_w); + CheckAndAddParticle(-x, -y, z, { -u.x, -u.y, u.z}, weight/4., + particle_x, particle_y, particle_z, + particle_ux, particle_uy, particle_uz, + particle_w); } else { - CheckAndAddParticle(x, y, z, { u.x, u.y, u.z}, weight, - particle_x, particle_y, particle_z, - particle_ux, particle_uy, particle_uz, - particle_w); + CheckAndAddParticle(x, y, z, { u.x, u.y, u.z}, weight, + particle_x, particle_y, particle_z, + particle_ux, particle_uy, particle_uz, + particle_w); } } } @@ -220,9 +219,9 @@ PhysicalParticleContainer::AddGaussianBeam(Real x_m, Real y_m, Real z_m, // Add the temporary CPU vectors to the particle structure np = particle_z.size(); AddNParticles(0,np, - particle_x.dataPtr(), particle_y.dataPtr(), particle_z.dataPtr(), - particle_ux.dataPtr(), particle_uy.dataPtr(), particle_uz.dataPtr(), - 1, particle_w.dataPtr(),1); + particle_x.dataPtr(), particle_y.dataPtr(), particle_z.dataPtr(), + particle_ux.dataPtr(), particle_uy.dataPtr(), particle_uz.dataPtr(), + 1, particle_w.dataPtr(),1); } void |