OGS
Curve.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
9
10namespace MaterialPropertyLib
11{
12using StringOrVariable = std::variant<std::string, Variable>;
17class Curve final : public Property
18{
19public:
22 Curve(std::string name, StringOrVariable const independent_variable,
24
27 PropertyDataType value(VariableArray const& variable_array,
29 double const t, double const dt) const override;
30
33 PropertyDataType dValue(VariableArray const& variable_array,
34 Variable const variable,
35 ParameterLib::SpatialPosition const& /*pos*/,
36 double const /*t*/,
37 double const /*dt*/) const override;
38
39private:
44};
45} // namespace MaterialPropertyLib
StringOrVariable const independent_variable_
The variable type that the curve property depends on.
Definition Curve.h:41
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &, double const, double const) const override
Definition Curve.cpp:60
MathLib::PiecewiseLinearInterpolation const & curve_
The curve used by the property.
Definition Curve.h:43
Curve(std::string name, StringOrVariable const independent_variable, MathLib::PiecewiseLinearInterpolation const &curve)
Definition Curve.cpp:8
virtual PropertyDataType value() const
std::variant< std::string, Variable > StringOrVariable
Definition Curve.h:12
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