aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Luca Fedeli <luca.fedeli@cea.fr> 2019-10-29 12:09:18 +0100
committerGravatar Luca Fedeli <luca.fedeli@cea.fr> 2019-10-29 12:09:18 +0100
commitc98c94d8bd87d653bd76fb4e6fda47f70d596c8f (patch)
tree2426b140b2b2e82c2f71060316c551f98ad648e5 /Source/Particles/PhysicalParticleContainer.cpp
parent905295431bbcd2a8824ffe97e340bb1910589062 (diff)
downloadWarpX-c98c94d8bd87d653bd76fb4e6fda47f70d596c8f.tar.gz
WarpX-c98c94d8bd87d653bd76fb4e6fda47f70d596c8f.tar.zst
WarpX-c98c94d8bd87d653bd76fb4e6fda47f70d596c8f.zip
simplification
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp110
1 files changed, 52 insertions, 58 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index bc8c8c3c4..410476da5 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -1724,26 +1724,20 @@ void PhysicalParticleContainer::PushPX_QedQuantumSynchrotron(
amrex::ParallelFor(
num_particles,
[=] AMREX_GPU_DEVICE (long i) {
- const ParticleReal ux_old = ux[i];
- const ParticleReal uy_old = uy[i];
- const ParticleReal uz_old = uz[i];
-
- UpdateMomentumBoris( ux[i], uy[i], uz[i],
- Ex[i], Ey[i], Ez[i], Bx[i],
- By[i], Bz[i], q, m, dt);
-
- const ParticleReal half_mass = 0.5*m;
-
- const ParticleReal px_n = half_mass * (ux[i]+ux_old);
- const ParticleReal py_n = half_mass * (uy[i]+uy_old);
- const ParticleReal pz_n = half_mass * (uz[i]+uz_old);
+ const ParticleReal px = m * ux[i];
+ const ParticleReal py = m * uy[i];
+ const ParticleReal pz = m * uz[i];
bool has_event_happened = evolve_opt(
- px_n, py_n, pz_n,
+ px, py, pz,
Ex[i], Ey[i], Ez[i],
Bx[i], By[i], Bz[i],
dt, tau[i]);
+ UpdateMomentumBoris( ux[i], uy[i], uz[i],
+ Ex[i], Ey[i], Ez[i], Bx[i],
+ By[i], Bz[i], q, m, dt);
+
UpdatePosition( x[i], y[i], z[i],
ux[i], uy[i], uz[i], dt );
}
@@ -1752,26 +1746,20 @@ void PhysicalParticleContainer::PushPX_QedQuantumSynchrotron(
amrex::ParallelFor(
num_particles,
[=] AMREX_GPU_DEVICE (long i) {
- const ParticleReal ux_old = ux[i];
- const ParticleReal uy_old = uy[i];
- const ParticleReal uz_old = uz[i];
-
- UpdateMomentumVay( ux[i], uy[i], uz[i],
- Ex[i], Ey[i], Ez[i], Bx[i],
- By[i], Bz[i], q, m, dt);
-
- const ParticleReal half_mass = 0.5*m;
-
- const ParticleReal px_n = half_mass * (ux[i]+ux_old);
- const ParticleReal py_n = half_mass * (uy[i]+uy_old);
- const ParticleReal pz_n = half_mass * (uz[i]+uz_old);
+ const ParticleReal px = m * ux[i];
+ const ParticleReal py = m * uy[i];
+ const ParticleReal pz = m * uz[i];
bool has_event_happened = evolve_opt(
- px_n, py_n, pz_n,
+ px, py, pz,
Ex[i], Ey[i], Ez[i],
Bx[i], By[i], Bz[i],
dt, tau[i]);
+ UpdateMomentumVay( ux[i], uy[i], uz[i],
+ Ex[i], Ey[i], Ez[i], Bx[i],
+ By[i], Bz[i], q, m, dt);
+
UpdatePosition( x[i], y[i], z[i],
ux[i], uy[i], uz[i], dt );
}
@@ -1780,27 +1768,20 @@ void PhysicalParticleContainer::PushPX_QedQuantumSynchrotron(
amrex::ParallelFor(
num_particles,
[=] AMREX_GPU_DEVICE (long i) {
-
- const ParticleReal ux_old = ux[i];
- const ParticleReal uy_old = uy[i];
- const ParticleReal uz_old = uz[i];
-
- UpdateMomentumHigueraCary( ux[i], uy[i], uz[i],
- Ex[i], Ey[i], Ez[i], Bx[i],
- By[i], Bz[i], q, m, dt);
-
- const ParticleReal half_mass = 0.5*m;
-
- const ParticleReal px_n = half_mass * (ux[i]+ux_old);
- const ParticleReal py_n = half_mass * (uy[i]+uy_old);
- const ParticleReal pz_n = half_mass * (uz[i]+uz_old);
+ const ParticleReal px = m * ux[i];
+ const ParticleReal py = m * uy[i];
+ const ParticleReal pz = m * uz[i];
bool has_event_happened = evolve_opt(
- px_n, py_n, pz_n,
+ px, py, pz,
Ex[i], Ey[i], Ez[i],
Bx[i], By[i], Bz[i],
dt, tau[i]);
+ UpdateMomentumHigueraCary( ux[i], uy[i], uz[i],
+ Ex[i], Ey[i], Ez[i], Bx[i],
+ By[i], Bz[i], q, m, dt);
+
UpdatePosition( x[i], y[i], z[i],
ux[i], uy[i], uz[i], dt );
}
@@ -2006,33 +1987,36 @@ void PhysicalParticleContainer::PushP_QedQuantumSynchrotron(
} else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Boris){
amrex::ParallelFor(num_particles,
[=] AMREX_GPU_DEVICE (long i) {
- const ParticleReal ux_old = ux[i];
- const ParticleReal uy_old = uy[i];
- const ParticleReal uz_old = uz[i];
+ const ParticleReal px = m * ux[i];
+ const ParticleReal py = m * uy[i];
+ const ParticleReal pz = m * uz[i];
+
+ bool has_event_happened = evolve_opt(
+ px, py, pz,
+ Expp[i], Eypp[i], Ezpp[i],
+ Bxpp[i], Bypp[i], Bzpp[i],
+ dt, tau[i]);
UpdateMomentumBoris(
ux[i], uy[i], uz[i],
Expp[i], Eypp[i], Ezpp[i],
Bxpp[i], Bypp[i], Bzpp[i],
q, m, dt);
-
- const ParticleReal half_mass = 0.5*m;
-
- const ParticleReal px_n = half_mass * (ux[i]+ux_old);
- const ParticleReal py_n = half_mass * (uy[i]+uy_old);
- const ParticleReal pz_n = half_mass * (uz[i]+uz_old);
+ }
+ );
+ } else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Vay){
+ amrex::ParallelFor(num_particles,
+ [=] AMREX_GPU_DEVICE (long i) {
+ const ParticleReal px = m * ux[i];
+ const ParticleReal py = m * uy[i];
+ const ParticleReal pz = m * uz[i];
bool has_event_happened = evolve_opt(
- px_n, py_n, pz_n,
+ px, py, pz,
Expp[i], Eypp[i], Ezpp[i],
Bxpp[i], Bypp[i], Bzpp[i],
dt, tau[i]);
- }
- );
- } else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::Vay){
- amrex::ParallelFor(num_particles,
- [=] AMREX_GPU_DEVICE (long i) {
UpdateMomentumVay(
ux[i], uy[i], uz[i],
Expp[i], Eypp[i], Ezpp[i],
@@ -2043,6 +2027,16 @@ void PhysicalParticleContainer::PushP_QedQuantumSynchrotron(
} else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::HigueraCary){
amrex::ParallelFor(num_particles,
[=] AMREX_GPU_DEVICE (long i) {
+ const ParticleReal px = m * ux[i];
+ const ParticleReal py = m * uy[i];
+ const ParticleReal pz = m * uz[i];
+
+ bool has_event_happened = evolve_opt(
+ px, py, pz,
+ Expp[i], Eypp[i], Ezpp[i],
+ Bxpp[i], Bypp[i], Bzpp[i],
+ dt, tau[i]);
+
UpdateMomentumHigueraCary( ux[i], uy[i], uz[i],
Expp[i], Eypp[i], Ezpp[i], Bxpp[i], Bypp[i], Bzpp[i], q, m, dt);
}