From 9d67de7fc56b7f1ed076e3b767c87277d7e7c145 Mon Sep 17 00:00:00 2001 From: Remi Lehe Date: Wed, 6 Jul 2022 08:59:35 -0700 Subject: 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 --- Source/Particles/MultiParticleContainer.cpp | 36 +++++++++++++++++++---------- 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'Source/Particles/MultiParticleContainer.cpp') 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 @@ -656,15 +677,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*/, -- cgit v1.2.3