aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2022-07-06 08:59:35 -0700
committerGravatar GitHub <noreply@github.com> 2022-07-06 08:59:35 -0700
commit9d67de7fc56b7f1ed076e3b767c87277d7e7c145 (patch)
treebcde29887029021212e0587e30a414d380d27623 /Source/Particles/MultiParticleContainer.cpp
parent5d5f1183aae1fcb973e8651e902e5b83deaa3660 (diff)
downloadWarpX-9d67de7fc56b7f1ed076e3b767c87277d7e7c145.tar.gz
WarpX-9d67de7fc56b7f1ed076e3b767c87277d7e7c145.tar.zst
WarpX-9d67de7fc56b7f1ed076e3b767c87277d7e7c145.zip
Initialize multi-physics module (ionization, QED) when restarting simulations from checkpoints (#3194)
* Move the initialization of multi-physics module earlier * Fix syntax error * Initialize multi-physics modules also when restarting the simulation
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp36
1 files changed, 24 insertions, 12 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index 2e69cd085..67039d8a3 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -397,21 +397,42 @@ MultiParticleContainer::AllocData ()
void
MultiParticleContainer::InitData ()
{
+ InitMultiPhysicsModules();
+
for (auto& pc : allcontainers) {
pc->InitData();
}
pc_tmp->InitData();
+
+}
+
+void
+MultiParticleContainer::PostRestart ()
+{
+ InitMultiPhysicsModules();
+
+ for (auto& pc : allcontainers) {
+ pc->PostRestart();
+ }
+ pc_tmp->PostRestart();
+}
+
+void
+MultiParticleContainer::InitMultiPhysicsModules ()
+{
+ // Init ionization module here instead of in the MultiParticleContainer
+ // constructor because dt is required to compute ionization rate pre-factors
+ for (auto& pc : allcontainers) {
+ pc->InitIonizationModule();
+ }
// For each species, get the ID of its product species.
// This is used for ionization and pair creation processes.
mapSpeciesProduct();
-
CheckIonizationProductSpecies();
-
#ifdef WARPX_QED
CheckQEDProductSpecies();
InitQED();
#endif
-
}
void
@@ -657,15 +678,6 @@ MultiParticleContainer::SetParticleDistributionMap (int lev, DistributionMapping
}
void
-MultiParticleContainer::PostRestart ()
-{
- for (auto& pc : allcontainers) {
- pc->PostRestart();
- }
- pc_tmp->PostRestart();
-}
-
-void
MultiParticleContainer
::GetLabFrameData (const std::string& /*snapshot_name*/,
const int /*i_lab*/, const int direction,