diff options
author | 2020-01-06 11:28:50 -0800 | |
---|---|---|
committer | 2020-01-06 11:28:50 -0800 | |
commit | c23edfd29a92a4744ff3fb6e89f0e799ee550c84 (patch) | |
tree | 1643b3f7c0709249e095ca91c64d458dc68abf23 /Source/Utils/WarpXUtil.cpp | |
parent | e81253f49be97c84e52b8970ce0313ea4663ef71 (diff) | |
download | WarpX-c23edfd29a92a4744ff3fb6e89f0e799ee550c84.tar.gz WarpX-c23edfd29a92a4744ff3fb6e89f0e799ee550c84.tar.zst WarpX-c23edfd29a92a4744ff3fb6e89f0e799ee550c84.zip |
merging all makeParser () functions in WarpXUtil.H
Diffstat (limited to 'Source/Utils/WarpXUtil.cpp')
-rw-r--r-- | Source/Utils/WarpXUtil.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Source/Utils/WarpXUtil.cpp b/Source/Utils/WarpXUtil.cpp index db5a646f9..152eaba07 100644 --- a/Source/Utils/WarpXUtil.cpp +++ b/Source/Utils/WarpXUtil.cpp @@ -181,3 +181,30 @@ void Store_parserString(std::string query_string, f.clear(); } + + +//namespace { +WarpXParser makeParser (std::string const& parse_function) +{ + WarpXParser parser(parse_function); + parser.registerVariables({"x","y","z"}); + ParmParse pp("my_constants"); + std::set<std::string> symbols = parser.symbols(); + symbols.erase("x"); + symbols.erase("y"); + symbols.erase("z"); + for (auto it = symbols.begin(); it != symbols.end(); ) { + Real v; + if (pp.query(it->c_str(), v)) { + parser.setConstant(*it, v); + it = symbols.erase(it); + } else { + ++it; + } + } + for (auto const& s : symbols) { + amrex::Abort("makeParser::Unknown symbol "+s); + } + return parser; +} +//} |