25 switch (values.size())
33 return Eigen::Vector2d{values[0], values[1]};
37 return Eigen::Vector3d{values[0], values[1], values[2]};
41 using M = Eigen::Matrix2d;
42 return M{Eigen::Map<M const>{values.data(), 2, 2}};
47 using M = Eigen::Matrix<double, 6, 1>;
48 return M{Eigen::Map<M const>{values.data(), 6}};
52 using M = Eigen::Matrix3d;
53 return M{Eigen::Map<M const>{values.data(), 3, 3}};
58 "Conversion of a {:d}-vector to PropertyDataType is not "
69 std::numeric_limits<double>::quiet_NaN());
83 double const ,
double const )
const
93 double const t,
double const dt)
const
105 double const ,
double const )
const
118 double const t,
double const dt)
const
142 return "property '" +
name_ +
"' defined for " +
143 std::visit([](
auto&&
scale) -> std::string
144 {
return scale->description(); },
virtual PropertyDataType d2Value(VariableArray const &variable_array, Variable const variable1, Variable const variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
Default implementation: 2nd derivative of any constant property is zero.
std::string description() const
PropertyDataType value_
The single value of a property.
virtual PropertyDataType value() const
std::variant< Medium *, Phase *, Component * > scale_
virtual PropertyDataType initialValue(ParameterLib::SpatialPosition const &pos, double const t) const
virtual PropertyDataType dValue(VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const
PropertyDataType fromVector(std::vector< double > const &values)
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 > > PropertyDataType
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
void scale(PETScVector &x, double const a)