OGS
MaterialPropertyLib::Function::Implementation< D > Struct Template Reference

Detailed Description

template<int D>
struct MaterialPropertyLib::Function::Implementation< D >

Definition at line 356 of file Function.cpp.

Public Types

using Expression = exprtk::expression<double>

Public Member Functions

 Implementation (int num_threads, std::vector< std::string > const &expression_symbol_names, std::vector< Variable > const &variables_enum, std::vector< std::string > const &value_string_expressions, std::vector< std::pair< std::string, std::vector< std::string > > > const &dvalue_string_expressions, std::vector< D2ValueConfig > const &d2value_string_expressions, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)

Public Attributes

std::vector< PerThreadDataper_thread_data
 Per-thread data; indexed by omp_get_thread_num().
std::vector< Variablenon_scalar_variables
bool spatial_position_is_required = false

Member Typedef Documentation

◆ Expression

template<int D>
using MaterialPropertyLib::Function::Implementation< D >::Expression = exprtk::expression<double>

Definition at line 358 of file Function.cpp.

Constructor & Destructor Documentation

◆ Implementation()

template<int D>
MaterialPropertyLib::Function::Implementation< D >::Implementation ( int num_threads,
std::vector< std::string > const & expression_symbol_names,
std::vector< Variable > const & variables_enum,
std::vector< std::string > const & value_string_expressions,
std::vector< std::pair< std::string, std::vector< std::string > > > const & dvalue_string_expressions,
std::vector< D2ValueConfig > const & d2value_string_expressions,
std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const & curves )

Definition at line 383 of file Function.cpp.

394{
397
398 // Determine which curves are actually referenced in the expressions.
399 // The expression symbol names list (from exprtk::collect_variables)
400 // contains both VariableArray field names and curve names as plain
401 // identifiers.
402 auto const used_curve_names =
404
406 for (int thread_id = 0; thread_id < num_threads; ++thread_id)
407 {
408 per_thread_data.emplace_back(
414 }
415}
std::vector< std::string > collectUsedCurveNames(std::vector< std::string > const &expression_symbol_names, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
Returns the subset of expression_symbol_names that are keys in curves.
bool hasSpatialVariables(std::vector< std::string > const &variables)
std::vector< PerThreadData > per_thread_data
Per-thread data; indexed by omp_get_thread_num().
Definition Function.cpp:373

References ParameterLib::collectUsedCurveNames(), ParameterLib::hasSpatialVariables(), non_scalar_variables, per_thread_data, and spatial_position_is_required.

Member Data Documentation

◆ non_scalar_variables

template<int D>
std::vector<Variable> MaterialPropertyLib::Function::Implementation< D >::non_scalar_variables

Non-scalar variables (KelvinVector / DeformationGradient); shared read-only across all threads.

Definition at line 377 of file Function.cpp.

Referenced by Implementation().

◆ per_thread_data

template<int D>
std::vector<PerThreadData> MaterialPropertyLib::Function::Implementation< D >::per_thread_data

Per-thread data; indexed by omp_get_thread_num().

Definition at line 373 of file Function.cpp.

Referenced by Implementation().

◆ spatial_position_is_required

template<int D>
bool MaterialPropertyLib::Function::Implementation< D >::spatial_position_is_required = false

Definition at line 379 of file Function.cpp.

Referenced by Implementation().


The documentation for this struct was generated from the following file: