diff options
author | 2019-08-09 11:23:19 -0700 | |
---|---|---|
committer | 2019-08-09 11:23:19 -0700 | |
commit | ce359c59f35b707d8e40da1d6051d703525b9c07 (patch) | |
tree | 2de617be7a6b229b51bbb6899af3913c161a5a1d /Source/Initialization/PlasmaInjector.cpp | |
parent | 5edd0eeb43ffd1e5cd63be1d154f42bec193ff33 (diff) | |
parent | c711ef06b5d7616c24cec1b6d3c160d016e51db7 (diff) | |
download | WarpX-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.cpp | 24 |
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), |