aboutsummaryrefslogtreecommitdiff
path: root/Source/Evolve/WarpXEvolve.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Evolve/WarpXEvolve.cpp')
-rw-r--r--Source/Evolve/WarpXEvolve.cpp45
1 files changed, 39 insertions, 6 deletions
diff --git a/Source/Evolve/WarpXEvolve.cpp b/Source/Evolve/WarpXEvolve.cpp
index 87d39ffc5..72621e52c 100644
--- a/Source/Evolve/WarpXEvolve.cpp
+++ b/Source/Evolve/WarpXEvolve.cpp
@@ -267,7 +267,8 @@ WarpX::OneStep_nosub (Real cur_time)
// Loop over species. For each ionizable species, create particles in
// product species.
- mypc->doFieldIonization();
+ doFieldIonization();
+
mypc->doCoulombCollisions();
#ifdef WARPX_QED
mypc->doQEDSchwinger();
@@ -298,8 +299,7 @@ WarpX::OneStep_nosub (Real cur_time)
#endif
#ifdef WARPX_QED
- //Do QED processes
- mypc->doQedEvents();
+ doQEDEvents();
#endif
// Synchronize J and rho
@@ -408,11 +408,10 @@ WarpX::OneStep_sub1 (Real curtime)
// TODO: we could save some charge depositions
// Loop over species. For each ionizable species, create particles in
// product species.
- mypc->doFieldIonization();
+ doFieldIonization();
#ifdef WARPX_QED
- //Do QED processes
- mypc->doQedEvents();
+ doQEDEvents();
#endif
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(finest_level == 1, "Must have exactly two levels");
@@ -550,6 +549,40 @@ WarpX::OneStep_sub1 (Real curtime)
}
void
+WarpX::doFieldIonization ()
+{
+ for (int lev = 0; lev <= finest_level; ++lev) {
+ doFieldIonization(lev);
+ }
+}
+
+void
+WarpX::doFieldIonization (int lev)
+{
+ mypc->doFieldIonization(lev,
+ *Efield_aux[lev][0],*Efield_aux[lev][1],*Efield_aux[lev][2],
+ *Bfield_aux[lev][0],*Bfield_aux[lev][1],*Bfield_aux[lev][2]);
+}
+
+#ifdef WARPX_QED
+void
+WarpX::doQEDEvents ()
+{
+ for (int lev = 0; lev <= finest_level; ++lev) {
+ doQEDEvents(lev);
+ }
+}
+
+void
+WarpX::doQEDEvents (int lev)
+{
+ mypc->doQedEvents(lev,
+ *Efield_aux[lev][0],*Efield_aux[lev][1],*Efield_aux[lev][2],
+ *Bfield_aux[lev][0],*Bfield_aux[lev][1],*Bfield_aux[lev][2]);
+}
+#endif
+
+void
WarpX::PushParticlesandDepose (amrex::Real cur_time)
{
// Evolve particles to p^{n+1/2} and x^{n+1}