aboutsummaryrefslogtreecommitdiff
path: root/Source/Initialization/PlasmaInjector.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2019-08-09 11:23:19 -0700
committerGravatar GitHub <noreply@github.com> 2019-08-09 11:23:19 -0700
commitce359c59f35b707d8e40da1d6051d703525b9c07 (patch)
tree2de617be7a6b229b51bbb6899af3913c161a5a1d /Source/Initialization/PlasmaInjector.cpp
parent5edd0eeb43ffd1e5cd63be1d154f42bec193ff33 (diff)
parentc711ef06b5d7616c24cec1b6d3c160d016e51db7 (diff)
downloadWarpX-ce359c59f35b707d8e40da1d6051d703525b9c07.tar.gz
WarpX-ce359c59f35b707d8e40da1d6051d703525b9c07.tar.zst
WarpX-ce359c59f35b707d8e40da1d6051d703525b9c07.zip
Merge pull request #265 from ECP-WarpX/parmparse_string
Parser Function String
Diffstat (limited to 'Source/Initialization/PlasmaInjector.cpp')
-rw-r--r--Source/Initialization/PlasmaInjector.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/Source/Initialization/PlasmaInjector.cpp b/Source/Initialization/PlasmaInjector.cpp
index 280f9e58a..541999789 100644
--- a/Source/Initialization/PlasmaInjector.cpp
+++ b/Source/Initialization/PlasmaInjector.cpp
@@ -213,7 +213,11 @@ void PlasmaInjector::parseDensity (ParmParse& pp)
// Construct InjectorDensity with InjectorDensityPredefined.
inj_rho.reset(new InjectorDensity((InjectorDensityPredefined*)nullptr,species_name));
} else if (rho_prof_s == "parse_density_function") {
- pp.get("density_function(x,y,z)", str_density_function);
+ std::vector<std::string> f;
+ pp.getarr("density_function(x,y,z)", f);
+ for (auto const& s : f) {
+ str_density_function += s;
+ }
// Construct InjectorDensity with InjectorDensityParser.
inj_rho.reset(new InjectorDensity((InjectorDensityParser*)nullptr,
makeParser(str_density_function)));
@@ -269,9 +273,21 @@ void PlasmaInjector::parseMomentum (ParmParse& pp)
inj_mom.reset(new InjectorMomentum
((InjectorMomentumRadialExpansion*)nullptr, u_over_r));
} else if (mom_dist_s == "parse_momentum_function") {
- pp.get("momentum_function_ux(x,y,z)", str_momentum_function_ux);
- pp.get("momentum_function_uy(x,y,z)", str_momentum_function_uy);
- pp.get("momentum_function_uz(x,y,z)", str_momentum_function_uz);
+ std::vector<std::string> f;
+ pp.getarr("momentum_function_ux(x,y,z)", f);
+ for (auto const& s : f) {
+ str_momentum_function_ux += s;
+ }
+ f.clear();
+ pp.getarr("momentum_function_uy(x,y,z)", f);
+ for (auto const& s : f) {
+ str_momentum_function_uy += s;
+ }
+ f.clear();
+ pp.getarr("momentum_function_uz(x,y,z)", f);
+ for (auto const& s : f) {
+ str_momentum_function_uz += s;
+ }
// Construct InjectorMomentum with InjectorMomentumParser.
inj_mom.reset(new InjectorMomentum((InjectorMomentumParser*)nullptr,
makeParser(str_momentum_function_ux),