diff options
author | 2020-02-10 11:20:10 -0800 | |
---|---|---|
committer | 2020-02-10 11:20:10 -0800 | |
commit | f9e92c4e2a774100eccbe516b9608944fdb160ff (patch) | |
tree | ea7e0649d5b9a18b7974a1ee4a3d3c75ec42375e /Source/Utils/WarpXUtil.cpp | |
parent | f65189fec6394faf798e29193cc20be07e56dfe6 (diff) | |
download | WarpX-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.cpp | 9 |
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)) { |