Class SymbolicExpressionKernel

Class Documentation

class SymbolicExpressionKernel

Parse-once pointwise evaluator for one scalar symbolic expression.

The independent symbols are ordinary scalar variables. The evaluator operates at points supplied by the caller; any finite-element or field association is supplied by that caller. The reserved coordinate symbols are x, y, z, and t, with the same convention as SymbolicFieldEvaluator.

When deal.II is built without SymEngine, the interface remains available but initialization of a non-empty expression reports a clear runtime error. Instances are not thread-safe because BatchOptimizer caches substitutions.

Public Functions

SymbolicExpressionKernel()
~SymbolicExpressionKernel()
SymbolicExpressionKernel(SymbolicExpressionKernel&&) noexcept
SymbolicExpressionKernel &operator=(SymbolicExpressionKernel&&) noexcept
SymbolicExpressionKernel(const SymbolicExpressionKernel&) = delete
SymbolicExpressionKernel &operator=(const SymbolicExpressionKernel&) = delete
void initialize(const std::string &expression, const std::vector<std::string> &independent_symbols, const std::map<std::string, double> &constants = {})

Initialize from an expression and an ordered list of independent symbols.

Evaluation evaluate(const std::vector<double> &coordinates, double time, const std::vector<double> &independent_values) const

Evaluate the value and all partial derivatives at one point.

template<int spacedim>
inline Evaluation evaluate(const dealii::Point<spacedim> &point, double time, const std::vector<double> &independent_values) const
unsigned int n_independent_symbols() const

Public Static Functions

static bool available()