16 #ifndef dealii__function_parser_h 17 #define dealii__function_parser_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/auto_derivative_function.h> 23 #include <deal.II/base/tensor.h> 24 #include <deal.II/base/point.h> 25 #include <deal.II/base/thread_local_storage.h> 34 DEAL_II_NAMESPACE_OPEN
37 template <
typename>
class Vector;
193 const double initial_time = 0.0,
194 const double h = 1e-8);
249 const bool time_dependent =
false);
259 const std::string &expression,
261 const bool time_dependent =
false);
279 const unsigned int component = 0)
const;
296 <<
"Parsing Error at Column " << arg1
297 <<
". The parser said: " << arg2);
301 <<
"The number of components (" << arg1
302 <<
") is not equal to the number of expressions (" 308 #ifdef DEAL_II_WITH_MUPARSER 383 DEAL_II_NAMESPACE_CLOSE
FunctionParser(const unsigned int n_components=1, const double initial_time=0.0, const double h=1e-8)
#define DeclException2(Exception2, type1, type2, outsequence)
A class that provides a separate storage location on each thread that accesses the object...
ConstMap::iterator ConstMapIterator
virtual double value(const Point< dim > &p, const unsigned int component=0) const
Threads::ThreadLocalStorage< std::vector< mu::Parser > > fp
static std::string default_variable_names()
const unsigned int n_components
#define Assert(cond, exc)
Threads::ThreadLocalStorage< std::vector< double > > vars
void init_muparser() const
static ::ExceptionBase & ExcInvalidExpressionSize(int arg1, int arg2)
static ::ExceptionBase & ExcParseError(int arg1, char *arg2)
virtual void vector_value(const Point< dim > &p, Vector< double > &values) const
std::vector< std::string > var_names
void initialize(const std::string &vars, const std::vector< std::string > &expressions, const ConstMap &constants, const bool time_dependent=false)
std::map< std::string, double > ConstMap
static ::ExceptionBase & ExcNotImplemented()
std::vector< std::string > expressions
std::map< std::string, double > constants