OGS
Linear.h
Go to the documentation of this file.
1
10#pragma once
11
14
15namespace MaterialPropertyLib
16{
17using StringOrVariable = std::variant<std::string, Variable>;
19{
21 VariableType reference_condition; // scalar or vector
22 VariableType slope; // scalar or matrix
23 std::optional<double> min;
24 std::optional<double> max;
25
26 double valueClamped(VariableArray const& variable_array,
28 double const t) const;
29
30 double valueUnclamped(VariableArray const& variable_array,
32 double const t) const;
33};
34
38class Linear final : public Property
39{
40public:
44 Linear(std::string name,
45 PropertyDataType const& property_reference_value,
46 std::vector<IndependentVariable> const& vs);
47
50 PropertyDataType value(VariableArray const& variable_array,
51 ParameterLib::SpatialPosition const& /*pos*/,
52 double const /*t*/,
53 double const /*dt*/) const override;
54
57 PropertyDataType dValue(VariableArray const& variable_array,
58 Variable const variable,
59 ParameterLib::SpatialPosition const& /*pos*/,
60 double const /*t*/,
61 double const /*dt*/) const override;
62
65 PropertyDataType d2Value(VariableArray const& variable_array,
66 Variable const pv1, Variable const pv2,
67 ParameterLib::SpatialPosition const& /*pos*/,
68 double const /*t*/,
69 double const /*dt*/) const override;
70
71private:
72 std::vector<IndependentVariable> const independent_variables_;
73};
74} // namespace MaterialPropertyLib
std::vector< IndependentVariable > const independent_variables_
Definition Linear.h:72
PropertyDataType d2Value(VariableArray const &variable_array, Variable const pv1, Variable const pv2, ParameterLib::SpatialPosition const &, double const, double const) const override
Definition Linear.cpp:141
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &, double const, double const) const override
Definition Linear.cpp:102
Linear(std::string name, PropertyDataType const &property_reference_value, std::vector< IndependentVariable > const &vs)
Definition Linear.cpp:69
virtual PropertyDataType value() const
Definition Property.cpp:76
std::variant< std::monostate, double, Eigen::Vector< double, 4 >, Eigen::Vector< double, 5 >, Eigen::Vector< double, 6 >, Eigen::Vector< double, 9 > > VariableType
std::variant< std::string, Variable > StringOrVariable
Definition Curve.h:18
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
Definition Property.h:31
double valueClamped(VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t) const
Definition Linear.cpp:17
std::optional< double > max
Definition Linear.h:24
std::optional< double > min
Definition Linear.h:23
double valueUnclamped(VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t) const
Definition Linear.cpp:36