aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/PhysicalParticleContainer.cpp8
-rw-r--r--Source/PlasmaInjector.cpp29
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) {