diff options
author | 2022-07-06 08:59:35 -0700 | |
---|---|---|
committer | 2022-07-06 08:59:35 -0700 | |
commit | 9d67de7fc56b7f1ed076e3b767c87277d7e7c145 (patch) | |
tree | bcde29887029021212e0587e30a414d380d27623 /Source/Particles/MultiParticleContainer.cpp | |
parent | 5d5f1183aae1fcb973e8651e902e5b83deaa3660 (diff) | |
download | WarpX-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.cpp | 36 |
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, |