diff options
Diffstat (limited to 'Source/Initialization/PlasmaInjector.cpp')
-rw-r--r-- | Source/Initialization/PlasmaInjector.cpp | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/Source/Initialization/PlasmaInjector.cpp b/Source/Initialization/PlasmaInjector.cpp index 3c120a7c1..01d122ac6 100644 --- a/Source/Initialization/PlasmaInjector.cpp +++ b/Source/Initialization/PlasmaInjector.cpp @@ -74,17 +74,13 @@ ParseDensityProfile::ParseDensityProfile(std::string parse_density_function) { my_constants.ReadParameters(); parse_density_function = my_constants.replaceStringValue(parse_density_function); - const std::string s_var = "x,y,z"; - parser_instance_number = parser_initialize_function(parse_density_function.c_str(), - parse_density_function.length(), - s_var.c_str(), - s_var.length()); + parser_density.define(parse_density_function); + parser_density.registerVariables({"x","y","z"}); } Real ParseDensityProfile::getDensity(Real x, Real y, Real z) const { - std::array<amrex::Real, 3> list_var = {x,y,z}; - return parser_evaluate_function(list_var.data(), 3, parser_instance_number); + return parser_density.eval(x,y,z); } ConstantMomentumDistribution::ConstantMomentumDistribution(Real ux, @@ -141,31 +137,23 @@ ParseMomentumFunction::ParseMomentumFunction(std::string parse_momentum_function _parse_momentum_function_uy(parse_momentum_function_uy), _parse_momentum_function_uz(parse_momentum_function_uz) { - const std::string s_var = "x,y,z"; my_constants.ReadParameters(); parse_momentum_function_ux = my_constants.replaceStringValue(parse_momentum_function_ux); parse_momentum_function_uy = my_constants.replaceStringValue(parse_momentum_function_uy); parse_momentum_function_uz = my_constants.replaceStringValue(parse_momentum_function_uz); - parser_instance_number_ux = parser_initialize_function(parse_momentum_function_ux.c_str(), - parse_momentum_function_ux.length(), - s_var.c_str(), - s_var.length()); - parser_instance_number_uy = parser_initialize_function(parse_momentum_function_uy.c_str(), - parse_momentum_function_uy.length(), - s_var.c_str(), - s_var.length()); - parser_instance_number_uz = parser_initialize_function(parse_momentum_function_uz.c_str(), - parse_momentum_function_uz.length(), - s_var.c_str(), - s_var.length()); + parser_ux.define(parse_momentum_function_ux); + parser_uy.define(parse_momentum_function_uy); + parser_uz.define(parse_momentum_function_uz); + parser_ux.registerVariables({"x","y","z"}); + parser_uy.registerVariables({"x","y","z"}); + parser_uz.registerVariables({"x","y","z"}); } void ParseMomentumFunction::getMomentum(vec3& u, Real x, Real y, Real z) { - std::array<amrex::Real, 3> list_var = {x,y,z}; - u[0] = parser_evaluate_function(list_var.data(), 3, parser_instance_number_ux); - u[1] = parser_evaluate_function(list_var.data(), 3, parser_instance_number_uy); - u[2] = parser_evaluate_function(list_var.data(), 3, parser_instance_number_uz); + u[0] = parser_ux.eval(x,y,z); + u[1] = parser_uy.eval(x,y,z); + u[2] = parser_uz.eval(x,y,z); } RandomPosition::RandomPosition(int num_particles_per_cell): |