7 #ifndef WARPX_PARSER_H_ 8 #define WARPX_PARSER_H_ 15 #include <AMReX_REAL.H> 32 void define (std::string
const& func_body);
42 inline amrex::Real
eval ()
const noexcept;
50 template <
typename T,
typename... Ts>
inline 51 amrex::Real
eval (T
x, Ts... yz)
const noexcept;
57 std::string
const&
expr ()
const;
59 std::set<std::string>
symbols ()
const;
66 template <
typename T>
inline 67 void unpack (amrex::Real* p, T x)
const noexcept;
69 template <
typename T,
typename... Ts>
inline 70 void unpack (amrex::Real* p, T x, Ts... yz)
const noexcept;
74 std::vector<struct wp_parser*>
m_parser;
75 mutable std::vector<std::array<amrex::Real,16> >
m_variables;
76 mutable std::vector<std::vector<std::string> >
m_varnames;
89 return wp_ast_eval<0>(
m_parser[omp_get_thread_num()]->
ast,
nullptr);
95 template <
typename T,
typename... Ts>
108 template <
typename T>
116 template <
typename T,
typename... Ts>
~WarpXParser()
Definition: WarpXParser.cpp:48
data
Definition: run_alltests_1node.py:320
void unpack(amrex::Real *p, T x) const noexcept
Definition: WarpXParser.H:111
def x
Definition: read_lab_particles.py:25
struct wp_parser * m_parser
Definition: WarpXParser.H:78
std::array< amrex::Real, 16 > m_variables
Definition: WarpXParser.H:79
void define(std::string const &func_body)
Definition: WarpXParser.cpp:17
void setConstant(std::string const &name, amrex::Real c)
Definition: WarpXParser.cpp:120
Definition: wp_parser_y.h:145
void registerVariables(std::vector< std::string > const &names)
Definition: WarpXParser.cpp:93
struct wp_node * ast
Definition: wp_parser_y.h:148
name
Definition: run_automated.py:204
Definition: WarpXParser.H:26
void print() const
Definition: WarpXParser.cpp:139
std::vector< std::string > m_varnames
Definition: WarpXParser.H:80
int depth() const
Definition: WarpXParser.cpp:150
names
Definition: plot_results.py:41
std::string const & expr() const
Definition: WarpXParser.cpp:162
std::set< std::string > symbols() const
Definition: WarpXParser.cpp:168
amrex::Real eval() const noexcept
Definition: WarpXParser.H:86
void clear()
Definition: WarpXParser.cpp:54
void registerVariable(std::string const &name, amrex::Real &var)
Definition: WarpXParser.cpp:80
std::string m_expression
Definition: WarpXParser.H:72
Definition: GpuParser.H:23