![]() |
OGS
|
|
Symbol table storage and compiled expressions for one OpenMP thread. Each thread receives its own instance so that concurrent evaluations do not race on the exprtk symbol table variables.
Definition at line 68 of file FunctionEvaluation.h.
Public Member Functions | |
| PerThreadData (std::vector< std::string > const &variables, bool spatial_position_is_required, std::vector< std::string > const &used_curve_names, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves, std::vector< std::string > const &expression_strings) | |
| PerThreadData (PerThreadData &&other) | |
| PerThreadData & | operator= (PerThreadData &&other) noexcept=delete |
| PerThreadData (PerThreadData const &)=delete | |
| PerThreadData & | operator= (PerThreadData const &)=delete |
Public Attributes | |
| std::map< std::string, CurveWrapper > | curve_wrappers |
| Curve wrappers owned by this thread; must outlive symbol_table. | |
| SymbolTable | symbol_table |
| std::vector< Expression > | value_expressions |
| Compiled value expressions. Must be destroyed before symbol_table. | |
| SymbolTableCache | symbol_table_cache |
| Cached pointers to t, x, y, z inside symbol_table. | |
| ParameterLib::FunctionEvaluation::PerThreadData::PerThreadData | ( | std::vector< std::string > const & | variables, |
| bool | spatial_position_is_required, | ||
| std::vector< std::string > const & | used_curve_names, | ||
| std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & | curves, | ||
| std::vector< std::string > const & | expression_strings ) |
Definition at line 67 of file FunctionEvaluation.cpp.
References ParameterLib::compileExpressions(), ParameterLib::createSymbolTable(), curve_wrappers, symbol_table, symbol_table_cache, and value_expressions.
Referenced by PerThreadData(), PerThreadData(), operator=(), and operator=().
| ParameterLib::FunctionEvaluation::PerThreadData::PerThreadData | ( | PerThreadData && | other | ) |
Definition at line 82 of file FunctionEvaluation.cpp.
References PerThreadData(), and OGS_FATAL.
|
delete |
References PerThreadData().
|
deletenoexcept |
References PerThreadData().
|
delete |
References PerThreadData().
| std::map<std::string, CurveWrapper> ParameterLib::FunctionEvaluation::PerThreadData::curve_wrappers |
Curve wrappers owned by this thread; must outlive symbol_table.
Definition at line 86 of file FunctionEvaluation.h.
Referenced by PerThreadData().
| SymbolTable ParameterLib::FunctionEvaluation::PerThreadData::symbol_table |
Symbol table holding variable storage. Must be destroyed after value_expressions (exprtk requirement) and after curve_wrappers.
Definition at line 89 of file FunctionEvaluation.h.
Referenced by PerThreadData().
| SymbolTableCache ParameterLib::FunctionEvaluation::PerThreadData::symbol_table_cache |
Cached pointers to t, x, y, z inside symbol_table.
Definition at line 93 of file FunctionEvaluation.h.
Referenced by PerThreadData().
| std::vector<Expression> ParameterLib::FunctionEvaluation::PerThreadData::value_expressions |
Compiled value expressions. Must be destroyed before symbol_table.
Definition at line 91 of file FunctionEvaluation.h.
Referenced by PerThreadData().