diff options
Diffstat (limited to 'Source/Initialization/PlasmaInjector.cpp')
-rw-r--r-- | Source/Initialization/PlasmaInjector.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/Initialization/PlasmaInjector.cpp b/Source/Initialization/PlasmaInjector.cpp index 0da9318de..f9642d1b6 100644 --- a/Source/Initialization/PlasmaInjector.cpp +++ b/Source/Initialization/PlasmaInjector.cpp @@ -70,6 +70,17 @@ CustomDensityProfile::CustomDensityProfile(const std::string& species_name) pp.getarr("custom_profile_params", params); } +PredefinedDensityProfile::PredefinedDensityProfile(const std::string& species_name) +{ + ParmParse pp(species_name); + std::string which_profile_s; + pp.getarr("predefined_profile_params", params); + pp.query("predefined_profile_name", which_profile_s); + if (which_profile_s == "parabolic_channel"){ + which_profile = predefined_profile_flag::parabolic_channel; + } +} + ParseDensityProfile::ParseDensityProfile(std::string parse_density_function) : _parse_density_function(parse_density_function) { @@ -275,6 +286,7 @@ PlasmaInjector::PlasmaInjector(int ispecies, const std::string& name) pp.get("z_rms", z_rms); pp.get("q_tot", q_tot); pp.get("npart", npart); + pp.query("do_symmetrize", do_symmetrize); gaussian_beam = true; parseMomentum(pp); } @@ -333,6 +345,8 @@ void PlasmaInjector::parseDensity(ParmParse pp){ rho_prof.reset(new ConstantDensityProfile(density)); } else if (rho_prof_s == "custom") { rho_prof.reset(new CustomDensityProfile(species_name)); + } else if (rho_prof_s == "predefined") { + rho_prof.reset(new PredefinedDensityProfile(species_name)); } else if (rho_prof_s == "parse_density_function") { pp.get("density_function(x,y,z)", str_density_function); rho_prof.reset(new ParseDensityProfile(str_density_function)); |