16#ifndef dealii_tensor_function_parser_h
17#define dealii_tensor_function_parser_h
110template <
int rank,
int dim,
typename Number =
double>
131 const std::string &expression,
211 const bool time_dependent =
false);
222 const std::string &expression,
224 const bool time_dependent =
false);
251 const std::vector<std::string> &
261 <<
"Parsing Error at Column " << arg1
262 <<
". The parser said: " << arg2);
267 <<
"The number of components (" << arg1
268 <<
") is not equal to the number of expressions (" << arg2
274#ifdef DEAL_II_WITH_MUPARSER
338template <
int rank,
int dim,
typename Number>
TensorFunctionParser & operator=(const TensorFunctionParser &)=delete
TensorFunctionParser(const double initial_time=0.0)
virtual Tensor< rank, dim, Number > value(const Point< dim > &p) const override
TensorFunctionParser(const TensorFunctionParser &)=delete
TensorFunctionParser(TensorFunctionParser &&)=delete
void initialize(const std::string &vars, const std::vector< std::string > &expressions, const ConstMap &constants, const bool time_dependent=false)
TensorFunctionParser & operator=(TensorFunctionParser &&)=delete
virtual void value_list(const std::vector< Point< dim > > &p, std::vector< Tensor< rank, dim, Number > > &values) const override
static std::string default_variable_names()
std::map< std::string, double > ConstMap
virtual ~TensorFunctionParser() override
const std::vector< std::string > & get_expressions() 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
static ::ExceptionBase & ExcParseError(int arg1, std::string arg2)
Threads::ThreadLocalStorage< std::vector< double > > vars
Threads::ThreadLocalStorage< std::vector< std::unique_ptr< mu::Parser > > > tfp
static ::ExceptionBase & ExcNotImplemented()
unsigned int n_components
std::map< std::string, double > constants
#define Assert(cond, exc)
static ::ExceptionBase & ExcInvalidExpressionSize(int arg1, int arg2)
#define DeclException2(Exception2, type1, type2, outsequence)
std::vector< std::string > var_names
std::vector< std::string > expressions
void init_muparser() const