aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils/WarpXUtil.cpp
diff options
context:
space:
mode:
authorGravatar RevathiJambunathan <revanathan@gmail.com> 2020-01-06 11:28:50 -0800
committerGravatar RevathiJambunathan <revanathan@gmail.com> 2020-01-06 11:28:50 -0800
commitc23edfd29a92a4744ff3fb6e89f0e799ee550c84 (patch)
tree1643b3f7c0709249e095ca91c64d458dc68abf23 /Source/Utils/WarpXUtil.cpp
parente81253f49be97c84e52b8970ce0313ea4663ef71 (diff)
downloadWarpX-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.cpp27
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;
+}
+//}