diff options
author | 2019-10-29 12:09:18 +0100 | |
---|---|---|
committer | 2019-10-29 12:09:18 +0100 | |
commit | c98c94d8bd87d653bd76fb4e6fda47f70d596c8f (patch) | |
tree | 2426b140b2b2e82c2f71060316c551f98ad648e5 /Source/Particles/PhysicalParticleContainer.cpp | |
parent | 905295431bbcd2a8824ffe97e340bb1910589062 (diff) | |
download | WarpX-c98c94d8bd87d653bd76fb4e6fda47f70d596c8f.tar.gz WarpX-c98c94d8bd87d653bd76fb4e6fda47f70d596c8f.tar.zst WarpX-c98c94d8bd87d653bd76fb4e6fda47f70d596c8f.zip |
simplification
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.cpp | 110 |
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); } |