21 : exponent_data_(v), offset_(offset)
26 value_ = std::get<double>(property_reference_value) * std::exp(-f * v0);
31 double const t,
double const )
const
37 v = std::get<double>(variable_array[*variable]);
43 else if (*str_ptr ==
"x")
45 else if (*str_ptr ==
"y")
47 else if (*str_ptr ==
"z")
51 "Unknown independent_variable {:s} for exponential property.",
57 "Could not convert independent_variable neither to a Variable nor "
70 Variable const*
const independent_variable =
72 if (independent_variable ==
nullptr)
76 if (*independent_variable != variable)
82 auto const v = std::get<double>(variable_array[*independent_variable]);
84 return std::get<double>(
value_) * f * std::exp(f * v);
92 Variable const*
const independent_variable =
94 if (independent_variable ==
nullptr)
98 if (*independent_variable != pv1 && *independent_variable != pv2)
104 auto const v = std::get<double>(variable_array[*independent_variable]);
106 return std::get<double>(
value_) * f * f * std::exp(f * v);
double const offset_
additive offset in units of the property.
ExponentData const exponent_data_
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &, double const, double const) const override
Exponential(std::string name, double const offset, PropertyDataType const &property_reference_value, ExponentData const &v)
PropertyDataType d2Value(VariableArray const &variable_array, Variable const pv1, Variable const pv2, ParameterLib::SpatialPosition const &, double const, double const) const override
PropertyDataType value_
The single value of a property.
virtual PropertyDataType value() const
std::optional< MathLib::Point3d > const getCoordinates() const
std::variant< double, Eigen::Matrix< double, 2, 1 >, Eigen::Matrix< double, 3, 1 >, Eigen::Matrix< double, 2, 2 >, Eigen::Matrix< double, 3, 3 >, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 >, Eigen::MatrixXd > PropertyDataType
VariableType factor
a dimensionless exponent.
VariableType reference_condition