aboutsummaryrefslogtreecommitdiff
path: root/Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp
diff options
context:
space:
mode:
authorGravatar Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> 2022-11-10 20:39:09 +0100
committerGravatar GitHub <noreply@github.com> 2022-11-10 19:39:09 +0000
commitd2ea078debfda27483fedcec9454e0b87b24861d (patch)
tree2070bf5a314fa8558f8ee6127446459a706cd88f /Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp
parent3dfe843bb74b64a6fb3a3ec893cf7c058f062b65 (diff)
downloadWarpX-d2ea078debfda27483fedcec9454e0b87b24861d.tar.gz
WarpX-d2ea078debfda27483fedcec9454e0b87b24861d.tar.zst
WarpX-d2ea078debfda27483fedcec9454e0b87b24861d.zip
Use makeParser function for laser field parsing option (#3517)
Diffstat (limited to 'Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp')
-rw-r--r--Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp27
1 files changed, 3 insertions, 24 deletions
diff --git a/Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp b/Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp
index bc0b4381d..876a56d53 100644
--- a/Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp
+++ b/Source/Laser/LaserProfilesImpl/LaserProfileFieldFunction.cpp
@@ -27,33 +27,12 @@ using namespace amrex;
void
WarpXLaserProfiles::FieldFunctionLaserProfile::init (
const amrex::ParmParse& ppl,
- const amrex::ParmParse& ppc,
CommonLaserParameters /*params*/)
{
// Parse the properties of the parse_field_function profile
- ppl.get("field_function(X,Y,t)", m_params.field_function);
- m_parser.define(m_params.field_function);
- m_parser.registerVariables({"X","Y","t"});
-
- std::set<std::string> symbols = m_parser.symbols();
- symbols.erase("X");
- symbols.erase("Y");
- symbols.erase("t"); // after removing variables, we are left with constants
- for (auto it = symbols.begin(); it != symbols.end(); ) {
- Real v;
- if (utils::parser::queryWithParser(ppc, it->c_str(), v)) {
- m_parser.setConstant(*it, v);
- it = symbols.erase(it);
- } else {
- ++it;
- }
- }
-
- std::stringstream ss;
- for (auto const& s : symbols) ss << " " << s;
- WARPX_ALWAYS_ASSERT_WITH_MESSAGE(symbols.empty(),
- "Laser Profile: Unknown symbols " + ss.str());
-
+ utils::parser::Store_parserString(
+ ppl, "field_function(X,Y,t)", m_params.field_function);
+ m_parser = utils::parser::makeParser(m_params.field_function,{"X","Y","t"});
}
void