aboutsummaryrefslogtreecommitdiff
path: root/Source/Initialization/PlasmaInjector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Initialization/PlasmaInjector.cpp')
-rw-r--r--Source/Initialization/PlasmaInjector.cpp14
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));