OGS
|
Definition of a curve property, i.e., a piecewise linear property given by pairs of supporting point and value. The pairs are specified by a curve. The current implementation accepts only the double datatype defined in PropertyDataType.
#include <Curve.h>
Public Member Functions | |
Curve (std::string name, Variable const independent_variable, MathLib::PiecewiseLinearInterpolation const &curve) | |
PropertyDataType | value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override |
PropertyDataType | dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &, double const, double const) const override |
Public Member Functions inherited from MaterialPropertyLib::Property | |
virtual | ~Property () |
virtual PropertyDataType | initialValue (ParameterLib::SpatialPosition const &pos, double const t) const |
virtual PropertyDataType | value () const |
virtual PropertyDataType | value (VariableArray const &variable_array, VariableArray const &variable_array_prev, ParameterLib::SpatialPosition const &pos, double const t, double const dt) 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 |
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. | |
virtual void | setProperties (std::vector< std::unique_ptr< Phase > > const &phases) |
Default implementation: | |
void | setScale (std::variant< Medium *, Phase *, Component * > scale) |
template<typename T > | |
T | initialValue (ParameterLib::SpatialPosition const &pos, double const t) const |
template<typename T > | |
T | value () const |
template<typename T > | |
T | value (VariableArray const &variable_array, VariableArray const &variable_array_prev, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | dValue (VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | d2Value (VariableArray const &variable_array, Variable const &variable1, Variable const &variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
Private Attributes | |
Variable const | independent_variable_ |
The variable type that the curve property depends on. | |
MathLib::PiecewiseLinearInterpolation const & | curve_ |
The curve used by the property. | |
Additional Inherited Members | |
Protected Attributes inherited from MaterialPropertyLib::Property | |
std::string | name_ |
PropertyDataType | value_ |
The single value of a property. | |
PropertyDataType | dvalue_ |
std::variant< Medium *, Phase *, Component * > | scale_ |
MaterialPropertyLib::Curve::Curve | ( | std::string | name, |
Variable const | independent_variable, | ||
MathLib::PiecewiseLinearInterpolation const & | curve ) |
This constructor allows to specify the independent variable of the curve and the curve itself, i.e., a piecewise linear function.
Definition at line 15 of file Curve.cpp.
References MaterialPropertyLib::name, and MaterialPropertyLib::Property::name_.
|
overridevirtual |
This method will compute the derivative of a property with respect to the given primary variable.
Reimplemented from MaterialPropertyLib::Property.
Definition at line 31 of file Curve.cpp.
References curve_, MathLib::PiecewiseLinearInterpolation::getDerivative(), and independent_variable_.
|
overridevirtual |
This method computes the value of a property depending linearly on the value of the given primary variable.
Reimplemented from MaterialPropertyLib::Property.
Definition at line 23 of file Curve.cpp.
References curve_, MathLib::PiecewiseLinearInterpolation::getValue(), and independent_variable_.
|
private |
|
private |