16#ifndef dealii_mu_parser_internal_h
17#define dealii_mu_parser_internal_h
42 mu_if(
double condition,
double thenvalue,
double elsevalue);
45 mu_or(
double left,
double right);
48 mu_and(
double left,
double right);
72 mu_pow(
double a,
double b);
92 std::vector<std::string>
102 <<
"Parsing Error at Column " << arg1
103 <<
". The parser said: " << arg2);
154 std::vector<std::unique_ptr<muParserBase>>
parsers;
157 template <
int dim,
typename Number>
173 const std::map<std::string, double> &
constants,
174 const bool time_dependent =
false);
189 unsigned int component)
const;
A class that provides a separate storage location on each thread that accesses the object.
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
std::vector< double > vars
Number do_value(const Point< dim > &p, const double time, unsigned int component) const
Threads::ThreadLocalStorage< internal::FunctionParser::ParserData > parser_data
void init_muparser() const
void do_all_values(const Point< dim > &p, const double time, ArrayView< Number > &values) const
std::vector< std::string > expressions
std::vector< std::unique_ptr< muParserBase > > parsers
virtual ~muParserBase()=default
std::map< std::string, double > constants
static ::ExceptionBase & ExcParseError(int arg1, std::string arg2)
#define DeclException2(Exception2, type1, type2, outsequence)
std::vector< std::string > var_names
virtual ~ParserImplementation()=default
ParserData(const ParserData &)=delete
virtual void initialize(const std::string &vars, const std::vector< std::string > &expressions, const std::map< std::string, double > &constants, const bool time_dependent=false)
double mu_if(double condition, double thenvalue, double elsevalue)
double mu_erf(double value)
double mu_sec(double value)
double mu_floor(double value)
double mu_csc(double value)
double mu_pow(double a, double b)
double mu_log(double value)
double mu_rand_seed(double seed)
double mu_ceil(double value)
std::vector< std::string > get_function_names()
double mu_cot(double value)
double mu_int(double value)
double mu_or(double left, double right)
double mu_and(double left, double right)
double mu_erfc(double value)