diff options
author | 2019-09-17 11:45:40 +0200 | |
---|---|---|
committer | 2019-09-17 11:45:40 +0200 | |
commit | 045f22b541752b9940aae91b5b6031870c13e7c3 (patch) | |
tree | 16cefc6ffa50b95aaf8603c34e23c84a3b7485f0 /Source/Particles/PhysicalParticleContainer.cpp | |
parent | 34164a8e1a2e32e08e8b38d04d2aade3e4811a6c (diff) | |
download | WarpX-045f22b541752b9940aae91b5b6031870c13e7c3.tar.gz WarpX-045f22b541752b9940aae91b5b6031870c13e7c3.tar.zst WarpX-045f22b541752b9940aae91b5b6031870c13e7c3.zip |
Enabled selection of Boris+RR, bugfixing
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r-- | Source/Particles/PhysicalParticleContainer.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp index 4bc0ee16e..95f2243b3 100644 --- a/Source/Particles/PhysicalParticleContainer.cpp +++ b/Source/Particles/PhysicalParticleContainer.cpp @@ -15,6 +15,7 @@ #include <UpdatePosition.H> #include <UpdateMomentumBoris.H> #include <UpdateMomentumVay.H> +#include <UpdateMomentumBorisWithRadiationReaction.H> using namespace amrex; @@ -1584,6 +1585,19 @@ PhysicalParticleContainer::PushPX(WarpXParIter& pti, ux[i], uy[i], uz[i], dt ); } ); + } else if (WarpX::particle_pusher_algo == ParticlePusherAlgo::BorisRR) { + amrex::ParallelFor( + pti.numParticles(), + [=] AMREX_GPU_DEVICE (long i) { + Real qp = q; + if (ion_lev){ qp *= ion_lev[i]; } + UpdateMomentumBorisWithRadiationReaction( ux[i], uy[i], uz[i], + Ex[i], Ey[i], Ez[i], Bx[i], + By[i], Bz[i], qp, m, dt); + UpdatePosition( x[i], y[i], z[i], + ux[i], uy[i], uz[i], dt ); + } + ); } else { amrex::Abort("Unknown particle pusher"); }; |