Class SymbolicFieldEvaluator

Class Documentation

class SymbolicFieldEvaluator

Parse-once evaluator for scalar expressions involving coordinates, time, constants, and selected reduced-field aliases.

The SymEngine-enabled implementation uses deal.II’s SD::BatchOptimizer. Builds without SymEngine retain this interface and report a clear runtime error when a non-empty expression set is requested. Instances are not thread-safe because BatchOptimizer caches substitutions; use one instance per assembly scratch object when evaluating concurrently.

Public Functions

SymbolicFieldEvaluator()
~SymbolicFieldEvaluator()
SymbolicFieldEvaluator(SymbolicFieldEvaluator&&) noexcept
SymbolicFieldEvaluator &operator=(SymbolicFieldEvaluator&&) noexcept
SymbolicFieldEvaluator(const SymbolicFieldEvaluator&) = delete
SymbolicFieldEvaluator &operator=(const SymbolicFieldEvaluator&) = delete
void initialize(const std::vector<std::string> &expression_strings, const std::vector<std::string> &field_symbols, const std::map<std::string, double> &constants = {})
unsigned int n_outputs() const
std::vector<double> evaluate(const std::vector<double> &coordinates, double time, const std::vector<double> &field_values) const
void evaluate_into(const std::vector<double> &coordinates, double time, const std::vector<double> &field_values, std::vector<double> &output_values) const

Evaluate into caller-owned storage to avoid per-point result allocations.

template<int spacedim>
inline std::vector<double> evaluate(const dealii::Point<spacedim> &point, double time, const std::vector<double> &field_values) const
template<int spacedim>
inline void evaluate_into(const dealii::Point<spacedim> &point, double time, const std::vector<double> &field_values, std::vector<double> &output_values) const
template<int spacedim>
inline void evaluate(const dealii::Point<spacedim> &point, double time, dealii::ArrayView<const double> field_values, dealii::ArrayView<double> output_values) const

Public Static Functions

static bool available()