aboutsummaryrefslogtreecommitdiff
path: root/Source/Initialization
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Initialization')
-rw-r--r--Source/Initialization/CustomDensityProb.H5
-rw-r--r--Source/Initialization/InjectorDensity.cpp5
-rw-r--r--Source/Initialization/PlasmaInjector.cpp168
-rw-r--r--Source/Initialization/TemperatureProperties.H2
-rw-r--r--Source/Initialization/TemperatureProperties.cpp9
-rw-r--r--Source/Initialization/VelocityProperties.H2
-rw-r--r--Source/Initialization/VelocityProperties.cpp8
-rw-r--r--Source/Initialization/WarpXInitData.cpp42
8 files changed, 132 insertions, 109 deletions
diff --git a/Source/Initialization/CustomDensityProb.H b/Source/Initialization/CustomDensityProb.H
index fef514d95..bcd379707 100644
--- a/Source/Initialization/CustomDensityProb.H
+++ b/Source/Initialization/CustomDensityProb.H
@@ -8,7 +8,7 @@
#define CUSTOM_DENSITY_PROB_H_
#include "Utils/TextMsg.H"
-#include "Utils/WarpXUtil.H"
+#include "Utils/Parser/ParserUtils.H"
#include <AMReX_Arena.H>
#include <AMReX_Dim3.H>
@@ -28,7 +28,8 @@ struct InjectorDensityCustom
std::vector<amrex::Real> v;
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(v.size() <= 6,
"Too many parameters for InjectorDensityCustom");
- getArrWithParser(pp_species_name, "custom_profile_params", v);
+ utils::parser::getArrWithParser(
+ pp_species_name, "custom_profile_params", v);
for (int i = 0; i < static_cast<int>(v.size()); ++i) {
p[i] = v[i];
}
diff --git a/Source/Initialization/InjectorDensity.cpp b/Source/Initialization/InjectorDensity.cpp
index e277ad1d5..e4b3523ec 100644
--- a/Source/Initialization/InjectorDensity.cpp
+++ b/Source/Initialization/InjectorDensity.cpp
@@ -8,8 +8,8 @@
#include "InjectorDensity.H"
#include "Initialization/CustomDensityProb.H"
+#include "Utils/Parser/ParserUtils.H"
#include "Utils/TextMsg.H"
-#include "Utils/WarpXUtil.H"
#include <AMReX_BLassert.H>
#include <AMReX_ParmParse.H>
@@ -51,7 +51,8 @@ InjectorDensityPredefined::InjectorDensityPredefined (
std::vector<amrex::Real> v;
// Read parameters for the predefined plasma profile.
- getArrWithParser(pp_species_name, "predefined_profile_params", v);
+ utils::parser::getArrWithParser(
+ pp_species_name, "predefined_profile_params", v);
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(v.size() <= 6,
"Too many parameters for InjectorDensityPredefined");
for (int i = 0; i < static_cast<int>(v.size()); ++i) {
diff --git a/Source/Initialization/PlasmaInjector.cpp b/Source/Initialization/PlasmaInjector.cpp
index 07526340f..b6f9ae9ad 100644
--- a/Source/Initialization/PlasmaInjector.cpp
+++ b/Source/Initialization/PlasmaInjector.cpp
@@ -15,9 +15,9 @@
#include "Initialization/InjectorMomentum.H"
#include "Initialization/InjectorPosition.H"
#include "Particles/SpeciesPhysicalProperties.H"
+#include "Utils/Parser/ParserUtils.H"
#include "Utils/TextMsg.H"
#include "Utils/WarpXConst.H"
-#include "Utils/WarpXUtil.H"
#include "WarpX.H"
#include <ablastr/warn_manager/WarnManager.H>
@@ -112,15 +112,15 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
}
# endif
- queryWithParser(pp_species_name, "xmin", xmin);
- queryWithParser(pp_species_name, "ymin", ymin);
- queryWithParser(pp_species_name, "zmin", zmin);
- queryWithParser(pp_species_name, "xmax", xmax);
- queryWithParser(pp_species_name, "ymax", ymax);
- queryWithParser(pp_species_name, "zmax", zmax);
+ utils::parser::queryWithParser(pp_species_name, "xmin", xmin);
+ utils::parser::queryWithParser(pp_species_name, "ymin", ymin);
+ utils::parser::queryWithParser(pp_species_name, "zmin", zmin);
+ utils::parser::queryWithParser(pp_species_name, "xmax", xmax);
+ utils::parser::queryWithParser(pp_species_name, "ymax", ymax);
+ utils::parser::queryWithParser(pp_species_name, "zmax", zmax);
- queryWithParser(pp_species_name, "density_min", density_min);
- queryWithParser(pp_species_name, "density_max", density_max);
+ utils::parser::queryWithParser(pp_species_name, "density_min", density_min);
+ utils::parser::queryWithParser(pp_species_name, "density_max", density_max);
std::string physical_species_s;
bool species_is_specified = pp_species_name.query("species_type", physical_species_s);
@@ -142,8 +142,10 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
::tolower);
// parse charge and mass
- bool charge_is_specified = queryWithParser(pp_species_name, "charge", charge);
- bool mass_is_specified = queryWithParser(pp_species_name, "mass", mass);
+ const bool charge_is_specified =
+ utils::parser::queryWithParser(pp_species_name, "charge", charge);
+ const bool mass_is_specified =
+ utils::parser::queryWithParser(pp_species_name, "mass", mass);
if ( charge_is_specified && species_is_specified ){
ablastr::warn_manager::WMRecordWarning("Species",
@@ -180,22 +182,32 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
if (injection_style == "none") {
return;
} else if (injection_style == "singleparticle") {
- getArrWithParser(pp_species_name, "single_particle_pos", single_particle_pos, 0, 3);
- getArrWithParser(pp_species_name, "single_particle_vel", single_particle_vel, 0, 3);
+ utils::parser::getArrWithParser(
+ pp_species_name, "single_particle_pos", single_particle_pos, 0, 3);
+ utils::parser::getArrWithParser(
+ pp_species_name, "single_particle_vel", single_particle_vel, 0, 3);
for (auto& x : single_particle_vel) {
x *= PhysConst::c;
}
- getWithParser(pp_species_name, "single_particle_weight", single_particle_weight);
+ utils::parser::getWithParser(
+ pp_species_name, "single_particle_weight", single_particle_weight);
add_single_particle = true;
return;
} else if (injection_style == "multipleparticles") {
- getArrWithParser(pp_species_name, "multiple_particles_pos_x", multiple_particles_pos_x);
- getArrWithParser(pp_species_name, "multiple_particles_pos_y", multiple_particles_pos_y);
- getArrWithParser(pp_species_name, "multiple_particles_pos_z", multiple_particles_pos_z);
- getArrWithParser(pp_species_name, "multiple_particles_vel_x", multiple_particles_vel_x);
- getArrWithParser(pp_species_name, "multiple_particles_vel_y", multiple_particles_vel_y);
- getArrWithParser(pp_species_name, "multiple_particles_vel_z", multiple_particles_vel_z);
- getArrWithParser(pp_species_name, "multiple_particles_weight", multiple_particles_weight);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_pos_x", multiple_particles_pos_x);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_pos_y", multiple_particles_pos_y);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_pos_z", multiple_particles_pos_z);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_vel_x", multiple_particles_vel_x);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_vel_y", multiple_particles_vel_y);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_vel_z", multiple_particles_vel_z);
+ utils::parser::getArrWithParser(
+ pp_species_name, "multiple_particles_weight", multiple_particles_weight);
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
((multiple_particles_pos_x.size() == multiple_particles_pos_y.size()) &&
(multiple_particles_pos_x.size() == multiple_particles_pos_z.size()) &&
@@ -210,17 +222,18 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
add_multiple_particles = true;
return;
} else if (injection_style == "gaussian_beam") {
- getWithParser(pp_species_name, "x_m", x_m);
- getWithParser(pp_species_name, "y_m", y_m);
- getWithParser(pp_species_name, "z_m", z_m);
- getWithParser(pp_species_name, "x_rms", x_rms);
- getWithParser(pp_species_name, "y_rms", y_rms);
- getWithParser(pp_species_name, "z_rms", z_rms);
- queryWithParser(pp_species_name, "x_cut", x_cut);
- queryWithParser(pp_species_name, "y_cut", y_cut);
- queryWithParser(pp_species_name, "z_cut", z_cut);
- getWithParser(pp_species_name, "q_tot", q_tot);
- getWithParser(pp_species_name, "npart", npart);
+
+ utils::parser::getWithParser(pp_species_name, "x_m", x_m);
+ utils::parser::getWithParser(pp_species_name, "y_m", y_m);
+ utils::parser::getWithParser(pp_species_name, "z_m", z_m);
+ utils::parser::getWithParser(pp_species_name, "x_rms", x_rms);
+ utils::parser::getWithParser(pp_species_name, "y_rms", y_rms);
+ utils::parser::getWithParser(pp_species_name, "z_rms", z_rms);
+ utils::parser::queryWithParser(pp_species_name, "x_cut", x_cut);
+ utils::parser::queryWithParser(pp_species_name, "y_cut", y_cut);
+ utils::parser::queryWithParser(pp_species_name, "z_cut", z_cut);
+ utils::parser::getWithParser(pp_species_name, "q_tot", q_tot);
+ utils::parser::getWithParser(pp_species_name, "npart", npart);
pp_species_name.query("do_symmetrize", do_symmetrize);
gaussian_beam = true;
parseMomentum(pp_species_name);
@@ -242,7 +255,8 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
// so that inj_pos->getPositionUnitBox calls
// InjectorPosition[Random or Regular].getPositionUnitBox.
else if (injection_style == "nrandompercell") {
- getWithParser(pp_species_name, "num_particles_per_cell", num_particles_per_cell);
+ utils::parser::getWithParser(
+ pp_species_name, "num_particles_per_cell", num_particles_per_cell);
#if WARPX_DIM_RZ
if (WarpX::n_rz_azimuthal_modes > 1) {
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
@@ -260,7 +274,8 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
parseMomentum(pp_species_name);
} else if (injection_style == "nfluxpercell") {
surface_flux = true;
- getWithParser(pp_species_name, "num_particles_per_cell", num_particles_per_cell_real);
+ utils::parser::getWithParser(
+ pp_species_name, "num_particles_per_cell", num_particles_per_cell_real);
#ifdef WARPX_DIM_RZ
if (WarpX::n_rz_azimuthal_modes > 1) {
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
@@ -270,9 +285,12 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
"(Please visit PR#765 for more information.)");
}
#endif
- getWithParser(pp_species_name, "surface_flux_pos", surface_flux_pos);
- queryWithParser(pp_species_name, "flux_tmin", flux_tmin);
- queryWithParser(pp_species_name, "flux_tmax", flux_tmax);
+ utils::parser::getWithParser(
+ pp_species_name, "surface_flux_pos", surface_flux_pos);
+ utils::parser::queryWithParser(
+ pp_species_name, "flux_tmin", flux_tmin);
+ utils::parser::queryWithParser(
+ pp_species_name, "flux_tmax", flux_tmax);
std::string flux_normal_axis_string;
pp_species_name.get("flux_normal_axis", flux_normal_axis_string);
flux_normal_axis = -1;
@@ -332,8 +350,9 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
#else
constexpr int num_required_ppc_each_dim = 3;
#endif
- getArrWithParser(pp_species_name, "num_particles_per_cell_each_dim",
- num_particles_per_cell_each_dim, 0, num_required_ppc_each_dim);
+ utils::parser::getArrWithParser(
+ pp_species_name, "num_particles_per_cell_each_dim",
+ num_particles_per_cell_each_dim, 0, num_required_ppc_each_dim);
#if WARPX_DIM_XZ
num_particles_per_cell_each_dim.push_back(1);
#endif
@@ -372,8 +391,8 @@ PlasmaInjector::PlasmaInjector (int ispecies, const std::string& name)
std::string str_injection_file;
pp_species_name.get("injection_file", str_injection_file);
// optional parameters
- queryWithParser(pp_species_name, "q_tot", q_tot);
- queryWithParser(pp_species_name, "z_shift",z_shift);
+ utils::parser::queryWithParser(pp_species_name, "q_tot", q_tot);
+ utils::parser::queryWithParser(pp_species_name, "z_shift",z_shift);
#ifdef WARPX_USE_OPENPMD
if (amrex::ParallelDescriptor::IOProcessor()) {
@@ -519,7 +538,7 @@ void PlasmaInjector::parseDensity (amrex::ParmParse& pp)
std::transform(rho_prof_s.begin(), rho_prof_s.end(),
rho_prof_s.begin(), ::tolower);
if (rho_prof_s == "constant") {
- getWithParser(pp, "density", density);
+ utils::parser::getWithParser(pp, "density", density);
// Construct InjectorDensity with InjectorDensityConstant.
h_inj_rho.reset(new InjectorDensity((InjectorDensityConstant*)nullptr, density));
} else if (rho_prof_s == "custom") {
@@ -529,12 +548,13 @@ void PlasmaInjector::parseDensity (amrex::ParmParse& pp)
// Construct InjectorDensity with InjectorDensityPredefined.
h_inj_rho.reset(new InjectorDensity((InjectorDensityPredefined*)nullptr,species_name));
} else if (rho_prof_s == "parse_density_function") {
- Store_parserString(pp, "density_function(x,y,z)", str_density_function);
+ utils::parser::Store_parserString(
+ pp, "density_function(x,y,z)", str_density_function);
// Construct InjectorDensity with InjectorDensityParser.
- density_parser = std::make_unique<amrex::Parser>(makeParser(
- str_density_function,{"x","y","z"}));
+ density_parser = std::make_unique<amrex::Parser>(
+ utils::parser::makeParser(str_density_function,{"x","y","z"}));
h_inj_rho.reset(new InjectorDensity((InjectorDensityParser*)nullptr,
- density_parser->compile<3>()));
+ density_parser->compile<3>()));
} else {
//No need for profile definition if external file is used
std::string injection_style = "none";
@@ -569,9 +589,9 @@ void PlasmaInjector::parseMomentum (amrex::ParmParse& pp)
amrex::Real ux = 0._rt;
amrex::Real uy = 0._rt;
amrex::Real uz = 0._rt;
- queryWithParser(pp, "ux", ux);
- queryWithParser(pp, "uy", uy);
- queryWithParser(pp, "uz", uz);
+ utils::parser::queryWithParser(pp, "ux", ux);
+ utils::parser::queryWithParser(pp, "uy", uy);
+ utils::parser::queryWithParser(pp, "uz", uz);
// Construct InjectorMomentum with InjectorMomentumConstant.
h_inj_mom.reset(new InjectorMomentum((InjectorMomentumConstant*)nullptr, ux, uy, uz));
} else if (mom_dist_s == "custom") {
@@ -584,12 +604,12 @@ void PlasmaInjector::parseMomentum (amrex::ParmParse& pp)
amrex::Real ux_th = 0._rt;
amrex::Real uy_th = 0._rt;
amrex::Real uz_th = 0._rt;
- queryWithParser(pp, "ux_m", ux_m);
- queryWithParser(pp, "uy_m", uy_m);
- queryWithParser(pp, "uz_m", uz_m);
- queryWithParser(pp, "ux_th", ux_th);
- queryWithParser(pp, "uy_th", uy_th);
- queryWithParser(pp, "uz_th", uz_th);
+ utils::parser::queryWithParser(pp, "ux_m", ux_m);
+ utils::parser::queryWithParser(pp, "uy_m", uy_m);
+ utils::parser::queryWithParser(pp, "uz_m", uz_m);
+ utils::parser::queryWithParser(pp, "ux_th", ux_th);
+ utils::parser::queryWithParser(pp, "uy_th", uy_th);
+ utils::parser::queryWithParser(pp, "uz_th", uz_th);
// Construct InjectorMomentum with InjectorMomentumGaussian.
h_inj_mom.reset(new InjectorMomentum((InjectorMomentumGaussian*)nullptr,
ux_m, uy_m, uz_m, ux_th, uy_th, uz_th));
@@ -602,12 +622,12 @@ void PlasmaInjector::parseMomentum (amrex::ParmParse& pp)
amrex::Real ux_th = 0._rt;
amrex::Real uy_th = 0._rt;
amrex::Real uz_th = 0._rt;
- queryWithParser(pp, "ux_m", ux_m);
- queryWithParser(pp, "uy_m", uy_m);
- queryWithParser(pp, "uz_m", uz_m);
- queryWithParser(pp, "ux_th", ux_th);
- queryWithParser(pp, "uy_th", uy_th);
- queryWithParser(pp, "uz_th", uz_th);
+ utils::parser::queryWithParser(pp, "ux_m", ux_m);
+ utils::parser::queryWithParser(pp, "uy_m", uy_m);
+ utils::parser::queryWithParser(pp, "uz_m", uz_m);
+ utils::parser::queryWithParser(pp, "ux_th", ux_th);
+ utils::parser::queryWithParser(pp, "uy_th", uy_th);
+ utils::parser::queryWithParser(pp, "uz_th", uz_th);
// Construct InjectorMomentum with InjectorMomentumGaussianFlux.
h_inj_mom.reset(new InjectorMomentum((InjectorMomentumGaussianFlux*)nullptr,
ux_m, uy_m, uz_m, ux_th, uy_th, uz_th,
@@ -628,24 +648,24 @@ void PlasmaInjector::parseMomentum (amrex::ParmParse& pp)
h_inj_mom.reset(new InjectorMomentum((InjectorMomentumJuttner*)nullptr, getTemp, getVel));
} else if (mom_dist_s == "radial_expansion") {
amrex::Real u_over_r = 0._rt;
- queryWithParser(pp, "u_over_r", u_over_r);
+ utils::parser::queryWithParser(pp, "u_over_r", u_over_r);
// Construct InjectorMomentum with InjectorMomentumRadialExpansion.
h_inj_mom.reset(new InjectorMomentum
((InjectorMomentumRadialExpansion*)nullptr, u_over_r));
} else if (mom_dist_s == "parse_momentum_function") {
- Store_parserString(pp, "momentum_function_ux(x,y,z)",
- str_momentum_function_ux);
- Store_parserString(pp, "momentum_function_uy(x,y,z)",
- str_momentum_function_uy);
- Store_parserString(pp, "momentum_function_uz(x,y,z)",
- str_momentum_function_uz);
+ utils::parser::Store_parserString(pp, "momentum_function_ux(x,y,z)",
+ str_momentum_function_ux);
+ utils::parser::Store_parserString(pp, "momentum_function_uy(x,y,z)",
+ str_momentum_function_uy);
+ utils::parser::Store_parserString(pp, "momentum_function_uz(x,y,z)",
+ str_momentum_function_uz);
// Construct InjectorMomentum with InjectorMomentumParser.
- ux_parser = std::make_unique<amrex::Parser>(makeParser(str_momentum_function_ux,
- {"x","y","z"}));
- uy_parser = std::make_unique<amrex::Parser>(makeParser(str_momentum_function_uy,
- {"x","y","z"}));
- uz_parser = std::make_unique<amrex::Parser>(makeParser(str_momentum_function_uz,
- {"x","y","z"}));
+ ux_parser = std::make_unique<amrex::Parser>(
+ utils::parser::makeParser(str_momentum_function_ux, {"x","y","z"}));
+ uy_parser = std::make_unique<amrex::Parser>(
+ utils::parser::makeParser(str_momentum_function_uy, {"x","y","z"}));
+ uz_parser = std::make_unique<amrex::Parser>(
+ utils::parser::makeParser(str_momentum_function_uz, {"x","y","z"}));
h_inj_mom.reset(new InjectorMomentum((InjectorMomentumParser*)nullptr,
ux_parser->compile<3>(),
uy_parser->compile<3>(),
diff --git a/Source/Initialization/TemperatureProperties.H b/Source/Initialization/TemperatureProperties.H
index 18e75be60..c62aec83e 100644
--- a/Source/Initialization/TemperatureProperties.H
+++ b/Source/Initialization/TemperatureProperties.H
@@ -9,8 +9,6 @@
#ifndef TEMPERATURE_PROPERTIES_H_
#define TEMPERATURE_PROPERTIES_H_
-#include <Utils/WarpXUtil.H>
-
#include <AMReX_ParmParse.H>
#include <AMReX_Parser.H>
#include <AMReX_REAL.H>
diff --git a/Source/Initialization/TemperatureProperties.cpp b/Source/Initialization/TemperatureProperties.cpp
index 901275b04..6414fd118 100644
--- a/Source/Initialization/TemperatureProperties.cpp
+++ b/Source/Initialization/TemperatureProperties.cpp
@@ -7,6 +7,7 @@
*/
#include "TemperatureProperties.H"
+#include "Utils/Parser/ParserUtils.H"
#include "Utils/TextMsg.H"
#include <ablastr/warn_manager/WarnManager.H>
@@ -25,7 +26,8 @@ TemperatureProperties::TemperatureProperties (amrex::ParmParse& pp) {
pp.query("theta_distribution_type", temp_dist_s);
pp.query("momentum_distribution_type", mom_dist_s);
if (temp_dist_s == "constant") {
- WARPX_ALWAYS_ASSERT_WITH_MESSAGE(queryWithParser(pp, "theta", theta),
+ WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
+ utils::parser::queryWithParser(pp, "theta", theta),
"Temperature parameter theta not specified");
// Do validation on theta value
@@ -56,9 +58,10 @@ TemperatureProperties::TemperatureProperties (amrex::ParmParse& pp) {
}
else if (temp_dist_s == "parser") {
std::string str_theta_function;
- Store_parserString(pp, "theta_function(x,y,z)", str_theta_function);
+ utils::parser::Store_parserString(pp, "theta_function(x,y,z)", str_theta_function);
m_ptr_temperature_parser =
- std::make_unique<amrex::Parser>(makeParser(str_theta_function,{"x","y","z"}));
+ std::make_unique<amrex::Parser>(
+ utils::parser::makeParser(str_theta_function,{"x","y","z"}));
m_type = TempParserFunction;
}
else {
diff --git a/Source/Initialization/VelocityProperties.H b/Source/Initialization/VelocityProperties.H
index e9e6362bf..c8744fcfb 100644
--- a/Source/Initialization/VelocityProperties.H
+++ b/Source/Initialization/VelocityProperties.H
@@ -8,8 +8,6 @@
#ifndef VELOCITY_PROPERTIES_H_
#define VELOCITY_PROPERTIES_H_
-#include <Utils/WarpXUtil.H>
-
#include <AMReX_ParmParse.H>
#include <AMReX_Parser.H>
#include <AMReX_REAL.H>
diff --git a/Source/Initialization/VelocityProperties.cpp b/Source/Initialization/VelocityProperties.cpp
index 59788fc7e..95f41d403 100644
--- a/Source/Initialization/VelocityProperties.cpp
+++ b/Source/Initialization/VelocityProperties.cpp
@@ -8,6 +8,7 @@
#include "VelocityProperties.H"
+#include "Utils/Parser/ParserUtils.H"
#include "Utils/TextMsg.H"
VelocityProperties::VelocityProperties (amrex::ParmParse& pp) {
@@ -45,7 +46,7 @@ VelocityProperties::VelocityProperties (amrex::ParmParse& pp) {
pp.query("beta_distribution_type", vel_dist_s);
if (vel_dist_s == "constant") {
- queryWithParser(pp, "beta", m_velocity);
+ utils::parser::queryWithParser(pp, "beta", m_velocity);
m_type = VelConstantValue;
WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
m_velocity > -1 && m_velocity < 1,
@@ -55,9 +56,10 @@ VelocityProperties::VelocityProperties (amrex::ParmParse& pp) {
}
else if (vel_dist_s == "parser") {
std::string str_beta_function;
- Store_parserString(pp, "beta_function(x,y,z)", str_beta_function);
+ utils::parser::Store_parserString(pp, "beta_function(x,y,z)", str_beta_function);
m_ptr_velocity_parser =
- std::make_unique<amrex::Parser>(makeParser(str_beta_function,{"x","y","z"}));
+ std::make_unique<amrex::Parser>(
+ utils::parser::makeParser(str_beta_function,{"x","y","z"}));
m_type = VelParserFunction;
}
else {
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp
index b28c9bd59..a6d959caf 100644
--- a/Source/Initialization/WarpXInitData.cpp
+++ b/Source/Initialization/WarpXInitData.cpp
@@ -23,11 +23,11 @@
#include "Particles/MultiParticleContainer.H"
#include "Utils/Logo/GetLogo.H"
#include "Utils/MPIInitHelpers.H"
+#include "Utils/Parser/ParserUtils.H"
#include "Utils/TextMsg.H"
#include "Utils/WarpXAlgorithmSelection.H"
#include "Utils/WarpXConst.H"
#include "Utils/WarpXProfilerWrapper.H"
-#include "Utils/WarpXUtil.H"
#include <ablastr/utils/Communication.H>
#include <ablastr/utils/UsedInputsFile.H>
@@ -699,12 +699,12 @@ WarpX::InitLevelData (int lev, Real /*time*/)
// if the input string is "constant", the values for the
// external grid must be provided in the input.
if (B_ext_grid_s == "constant")
- getArrWithParser(pp_warpx, "B_external_grid", B_external_grid);
+ utils::parser::getArrWithParser(pp_warpx, "B_external_grid", B_external_grid);
// if the input string is "constant", the values for the
// external grid must be provided in the input.
if (E_ext_grid_s == "constant")
- getArrWithParser(pp_warpx, "E_external_grid", E_external_grid);
+ utils::parser::getArrWithParser(pp_warpx, "E_external_grid", E_external_grid);
// initialize the averaged fields only if the averaged algorithm
// is activated ('psatd.do_time_averaging=1')
@@ -775,18 +775,18 @@ WarpX::InitLevelData (int lev, Real /*time*/)
amrex::Abort(Utils::TextMsg::Err(
"E and B parser for external fields does not work with RZ -- TO DO"));
#endif
- Store_parserString(pp_warpx, "Bx_external_grid_function(x,y,z)",
- str_Bx_ext_grid_function);
- Store_parserString(pp_warpx, "By_external_grid_function(x,y,z)",
- str_By_ext_grid_function);
- Store_parserString(pp_warpx, "Bz_external_grid_function(x,y,z)",
- str_Bz_ext_grid_function);
+ utils::parser::Store_parserString(pp_warpx, "Bx_external_grid_function(x,y,z)",
+ str_Bx_ext_grid_function);
+ utils::parser::Store_parserString(pp_warpx, "By_external_grid_function(x,y,z)",
+ str_By_ext_grid_function);
+ utils::parser::Store_parserString(pp_warpx, "Bz_external_grid_function(x,y,z)",
+ str_Bz_ext_grid_function);
Bxfield_parser = std::make_unique<amrex::Parser>(
- makeParser(str_Bx_ext_grid_function,{"x","y","z"}));
+ utils::parser::makeParser(str_Bx_ext_grid_function,{"x","y","z"}));
Byfield_parser = std::make_unique<amrex::Parser>(
- makeParser(str_By_ext_grid_function,{"x","y","z"}));
+ utils::parser::makeParser(str_By_ext_grid_function,{"x","y","z"}));
Bzfield_parser = std::make_unique<amrex::Parser>(
- makeParser(str_Bz_ext_grid_function,{"x","y","z"}));
+ utils::parser::makeParser(str_Bz_ext_grid_function,{"x","y","z"}));
// Initialize Bfield_fp with external function
InitializeExternalFieldsOnGridUsingParser(Bfield_fp[lev][0].get(),
@@ -833,19 +833,19 @@ WarpX::InitLevelData (int lev, Real /*time*/)
amrex::Abort(Utils::TextMsg::Err(
"E and B parser for external fields does not work with RZ -- TO DO"));
#endif
- Store_parserString(pp_warpx, "Ex_external_grid_function(x,y,z)",
- str_Ex_ext_grid_function);
- Store_parserString(pp_warpx, "Ey_external_grid_function(x,y,z)",
- str_Ey_ext_grid_function);
- Store_parserString(pp_warpx, "Ez_external_grid_function(x,y,z)",
- str_Ez_ext_grid_function);
+ utils::parser::Store_parserString(pp_warpx, "Ex_external_grid_function(x,y,z)",
+ str_Ex_ext_grid_function);
+ utils::parser::Store_parserString(pp_warpx, "Ey_external_grid_function(x,y,z)",
+ str_Ey_ext_grid_function);
+ utils::parser::Store_parserString(pp_warpx, "Ez_external_grid_function(x,y,z)",
+ str_Ez_ext_grid_function);
Exfield_parser = std::make_unique<amrex::Parser>(
- makeParser(str_Ex_ext_grid_function,{"x","y","z"}));
+ utils::parser::makeParser(str_Ex_ext_grid_function,{"x","y","z"}));
Eyfield_parser = std::make_unique<amrex::Parser>(
- makeParser(str_Ey_ext_grid_function,{"x","y","z"}));
+ utils::parser::makeParser(str_Ey_ext_grid_function,{"x","y","z"}));
Ezfield_parser = std::make_unique<amrex::Parser>(
- makeParser(str_Ez_ext_grid_function,{"x","y","z"}));
+ utils::parser::makeParser(str_Ez_ext_grid_function,{"x","y","z"}));
// Initialize Efield_fp with external function
InitializeExternalFieldsOnGridUsingParser(Efield_fp[lev][0].get(),