aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
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,