Loading [MathJax]/jax/output/HTML-CSS/config.js
OGS
Curve.h
Go to the documentation of this file.
1
10#pragma once
11
15
16namespace MaterialPropertyLib
17{
18using StringOrVariable = std::variant<std::string, Variable>;
23class Curve final : public Property
24{
25public:
28 Curve(std::string name, StringOrVariable const independent_variable,
30
33 PropertyDataType value(VariableArray const& variable_array,
35 double const t, double const dt) const override;
36
39 PropertyDataType dValue(VariableArray const& variable_array,
40 Variable const variable,
41 ParameterLib::SpatialPosition const& /*pos*/,
42 double const /*t*/,
43 double const /*dt*/) const override;
44
45private:
50};
51} // namespace MaterialPropertyLib
Definition of the PiecewiseLinearInterpolation class.
StringOrVariable const independent_variable_
The variable type that the curve property depends on.
Definition Curve.h:47
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &, double const, double const) const override
Definition Curve.cpp:67
MathLib::PiecewiseLinearInterpolation const & curve_
The curve used by the property.
Definition Curve.h:49
Curve(std::string name, StringOrVariable const independent_variable, MathLib::PiecewiseLinearInterpolation const &curve)
Definition Curve.cpp:15
virtual PropertyDataType value() const
Definition Property.cpp:76
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