aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Yin-YinjianZhao <yinjianzhao@lbl.gov> 2019-10-07 10:22:11 -0700
committerGravatar Yin-YinjianZhao <yinjianzhao@lbl.gov> 2019-10-07 10:22:11 -0700
commit10d22fb4126732b4b088dce568252532da7be39f (patch)
treed2fe3675baf44bd59143836d258020aeb0712978 /Source/Particles/PhysicalParticleContainer.cpp
parent17b067bcaf982ad12f4ac604308391a806e2c1f7 (diff)
downloadWarpX-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.cpp47
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