16 #ifndef parsed_tools__symbolic_function_h
17 #define parsed_tools__symbolic_function_h
21 #ifdef DEAL_II_WITH_SYMENGINE
49 static std::unique_ptr<dealii::Patterns::PatternBase>
60 const dealii::Patterns::PatternBase &pattern = *to_pattern())
65 pattern.match(ss.str()),
67 "The expression does not satisfy the requirements of the "
77 const dealii::Patterns::PatternBase &pattern = *to_pattern())
89 std::unique_ptr<dealii::Functions::SymbolicFunction<dim>>>
91 static constexpr
int list_rank = 1;
92 static constexpr
int map_rank = 0;
101 struct Convert<
std::unique_ptr<dealii::Functions::SymbolicFunction<dim>>>
106 using T = std::unique_ptr<dealii::Functions::SymbolicFunction<dim>>;
111 static std::unique_ptr<dealii::Patterns::PatternBase>
116 dealii::Patterns::List::max_int_value,
130 const dealii::Patterns::PatternBase &pattern =
131 *Convert<T>::to_pattern())
133 auto expr = t->get_symbolic_function_expressions();
134 return Convert<decltype(expr)>::to_string(expr, pattern);
146 const dealii::Patterns::PatternBase &pattern =
147 *Convert<T>::to_pattern())
150 return std::make_unique<dealii::Functions::SymbolicFunction<dim>>(s);
189 const std::string &expression =
"",
190 const std::string &function_description =
"Function expression");
197 operator dealii::Functions::SymbolicFunction<dim> &()
205 dealii::Functions::SymbolicFunction<dim> &
const std::string section_name
virtual std::unique_ptr< PatternBase > clone() const override
virtual std::unique_ptr< PatternBase > clone() const override
static ::ExceptionBase & ExcMessage(std::string arg1)
#define AssertThrow(cond, exc)