aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Luca Fedeli <luca.fedeli@cea.fr> 2019-09-17 11:45:40 +0200
committerGravatar Luca Fedeli <luca.fedeli@cea.fr> 2019-09-17 11:45:40 +0200
commit045f22b541752b9940aae91b5b6031870c13e7c3 (patch)
tree16cefc6ffa50b95aaf8603c34e23c84a3b7485f0 /Source/Particles/PhysicalParticleContainer.cpp
parent34164a8e1a2e32e08e8b38d04d2aade3e4811a6c (diff)
downloadWarpX-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.cpp14
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");
};