33 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
43 DBUG(
"Create Function property {:s}.", property_name);
48 auto const value_expressions = parseExpressionList(
50 value_config.getConfigSubtreeList(
"expression"));
53 std::vector<std::pair<std::string, std::vector<std::string>>>
60 dvalue_config.getConfigParameter<std::string>(
"variable_name");
62 auto expressions = parseExpressionList(
64 dvalue_config.getConfigSubtreeList(
"expression"));
66 dvalue_expressions.emplace_back(std::move(variable_name),
67 std::move(expressions));
71 std::vector<D2ValueConfig> d2value_expressions;
75 auto variable_names_range =
77 d2value_config.getConfigParameterList<std::string>(
"variable_name");
79 std::vector<std::string> variable_names(variable_names_range.begin(),
80 variable_names_range.end());
82 if (variable_names.size() != 2)
85 "Function property '{}': each <d2value> block must contain "
86 "exactly two <variable_name> entries, but {:d} were given.",
87 property_name, variable_names.size());
90 auto expressions = parseExpressionList(
92 d2value_config.getConfigSubtreeList(
"expression"));
94 d2value_expressions.emplace_back(std::move(variable_names[0]),
95 std::move(variable_names[1]),
96 std::move(expressions));
99 return std::make_unique<MaterialPropertyLib::Function>(
100 std::move(property_name),