29template <
int rank,
int dim,
typename Number>
30const std::vector<std::string> &
38template <
int rank,
int dim,
typename Number>
40 const double initial_time)
46template <
int rank,
int dim,
typename Number>
48 const std::string &expression,
50 const std::string &variable_names)
71template <
int rank,
int dim,
typename Number>
74 const std::string &variables,
76 const std::map<std::string, double> &
constants,
77 const bool time_dependent)
87template <
int rank,
int dim,
typename Number>
90 const std::string &vars,
91 const std::string &expression,
92 const std::map<std::string, double> &
constants,
93 const bool time_dependent)
103template <
int rank,
int dim,
typename Number>
107 std::array<Number, Tensor<rank, dim, Number>::n_independent_components>
118template <
int rank,
int dim,
typename Number>
124 Assert(p.size() == values.size(),
127 for (
unsigned int i = 0; i < p.size(); ++i)
129 values[i] =
value(p[i]);
134#include "tensor_function_parser.inst"
ArrayView< std::remove_reference_t< typename std::iterator_traits< Iterator >::reference >, MemorySpaceType > make_array_view(const Iterator begin, const Iterator end)
numbers::NumberTraits< double >::real_type get_time() const
static const unsigned int max_int_value
TensorFunctionParser(const double initial_time=0.0)
virtual Tensor< rank, dim, Number > value(const Point< dim > &p) const override
unsigned int n_components
virtual void value_list(const std::vector< Point< dim > > &p, std::vector< Tensor< rank, dim, Number > > &values) const override
virtual void initialize(const std::string &vars, const std::vector< std::string > &expressions, const ConstMap &constants, const bool time_dependent=false) override
const std::vector< std::string > & get_expressions() const
TensorFunction(const time_type initial_time=time_type(0.0))
void do_all_values(const Point< dim > &p, const double time, ArrayView< double > &values) const
std::vector< std::string > expressions
std::map< std::string, double > constants
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)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define Assert(cond, exc)
static ::ExceptionBase & ExcInvalidExpressionSize(int arg1, int arg2)
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
#define AssertThrow(cond, exc)
const bool IsBlockVector< VectorType >::value
std::vector< std::string > split_string_list(const std::string &s, const std::string &delimiter=",")