aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils/WarpXUtil.cpp
diff options
context:
space:
mode:
authorGravatar Weiqun Zhang <weiqunzhang@lbl.gov> 2020-02-10 11:20:10 -0800
committerGravatar Weiqun Zhang <weiqunzhang@lbl.gov> 2020-02-10 11:20:10 -0800
commitf9e92c4e2a774100eccbe516b9608944fdb160ff (patch)
treeea7e0649d5b9a18b7974a1ee4a3d3c75ec42375e /Source/Utils/WarpXUtil.cpp
parentf65189fec6394faf798e29193cc20be07e56dfe6 (diff)
downloadWarpX-f9e92c4e2a774100eccbe516b9608944fdb160ff.tar.gz
WarpX-f9e92c4e2a774100eccbe516b9608944fdb160ff.tar.zst
WarpX-f9e92c4e2a774100eccbe516b9608944fdb160ff.zip
template Parser so that it works for any number of variables
Diffstat (limited to 'Source/Utils/WarpXUtil.cpp')
-rw-r--r--Source/Utils/WarpXUtil.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/Source/Utils/WarpXUtil.cpp b/Source/Utils/WarpXUtil.cpp
index 983654aed..65aa0edb2 100644
--- a/Source/Utils/WarpXUtil.cpp
+++ b/Source/Utils/WarpXUtil.cpp
@@ -190,16 +190,13 @@ void Store_parserString(amrex::ParmParse& pp, std::string query_string,
}
-WarpXParser makeParser (std::string const& parse_function)
+WarpXParser makeParser (std::string const& parse_function, std::vector<std::string> const& varnames)
{
WarpXParser parser(parse_function);
- parser.registerVariables({"x","y","z","t"});
+ parser.registerVariables(varnames);
ParmParse pp("my_constants");
std::set<std::string> symbols = parser.symbols();
- symbols.erase("x");
- symbols.erase("y");
- symbols.erase("z");
- symbols.erase("t");
+ for (auto const& v : varnames) symbols.erase(v.c_str());
for (auto it = symbols.begin(); it != symbols.end(); ) {
Real v;
if (pp.query(it->c_str(), v)) {