diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/PhysicalParticleContainer.cpp | 8 | ||||
-rw-r--r-- | Source/PlasmaInjector.cpp | 29 |
2 files changed, 17 insertions, 20 deletions
diff --git a/Source/PhysicalParticleContainer.cpp b/Source/PhysicalParticleContainer.cpp index d499f7dfb..007fe06ed 100644 --- a/Source/PhysicalParticleContainer.cpp +++ b/Source/PhysicalParticleContainer.cpp @@ -13,6 +13,8 @@ PhysicalParticleContainer::PhysicalParticleContainer (AmrCore* amr_core, int isp species_name(name) { plasma_injector.reset(new PlasmaInjector(species_id, species_name)); + charge = plasma_injector->getCharge(); + mass = plasma_injector->getMass(); } void PhysicalParticleContainer::InitData() { @@ -32,9 +34,6 @@ void PhysicalParticleContainer::AddNRandomUniformPerCell (int lev, Box part_box) { BL_PROFILE("PhysicalParticleContainer::AddNRandomPerCell()"); - charge = plasma_injector->getCharge(); - mass = plasma_injector->getMass(); - const Geometry& geom = Geom(lev); const Real* dx = geom.CellSize(); @@ -112,9 +111,6 @@ void PhysicalParticleContainer::AddNDiagPerCell (int lev, Box part_box) { BL_PROFILE("PhysicalParticleContainer::AddNDiagPerCell()"); - charge = plasma_injector->getCharge(); - mass = plasma_injector->getMass(); - const Geometry& geom = Geom(lev); const Real* dx = geom.CellSize(); diff --git a/Source/PlasmaInjector.cpp b/Source/PlasmaInjector.cpp index 027bb5b57..82837730c 100644 --- a/Source/PlasmaInjector.cpp +++ b/Source/PlasmaInjector.cpp @@ -127,6 +127,21 @@ PlasmaInjector::PlasmaInjector(int ispecies, const std::string& name) pp.query("ymax", ymax); pp.query("zmax", zmax); + // get injection style + pp.get("injection_style", injection_style); + std::transform(injection_style.begin(), + injection_style.end(), + injection_style.begin(), + ::tolower); + if (injection_style == "python") { + return; + } + else if (not (injection_style == "nrandomnormal" or + injection_style == "nrandomuniformpercell" or + injection_style == "ndiagpercell")) { + StringParseAbortMessage("Injection style", injection_style); + } + // parse density information std::string rho_prof_s; pp.get("profile", rho_prof_s); @@ -173,20 +188,6 @@ PlasmaInjector::PlasmaInjector(int ispecies, const std::string& name) } else { StringParseAbortMessage("Momentum distribution type", mom_dist_s); } - - // get injection style - pp.get("injection_style", injection_style); - std::transform(injection_style.begin(), - injection_style.end(), - injection_style.begin(), - ::tolower); - if (injection_style == "nrandomnormal" or - injection_style == "nrandomuniformpercell" or - injection_style == "ndiagpercell") { - return; - } else { - StringParseAbortMessage("Injection style", injection_style); - } } void PlasmaInjector::getMomentum(vec3& u) { |