Class SymbolicFieldEvaluator¶
Defined in File symbolic_field_evaluator.h
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¶
Public Static Functions
-
static bool available()¶
-
SymbolicFieldEvaluator()¶