OGS
Sigmoid.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
7
9{
31class Sigmoid final : public Property
32{
33public:
34 Sigmoid(std::string name,
35 double const steepness,
36 double const midpoint,
37 double const lower_bound,
38 double const upper_bound,
39 Variable const independent_variable);
40
41 PropertyDataType value(VariableArray const& variable_array,
43 double const t,
44 double const dt) const override;
45
46 PropertyDataType dValue(VariableArray const& variable_array,
47 Variable const variable,
49 double const t,
50 double const dt) const override;
51
52 PropertyDataType d2Value(VariableArray const& variable_array,
53 Variable const variable1,
54 Variable const variable2,
56 double const t,
57 double const dt) const override;
58
59private:
62 bool derivativeVanishes(Variable const variable) const;
63
64 double steepness_;
68 double midpoint_;
70 double lower_bound_;
71 double upper_bound_;
74};
75
76} // namespace MaterialPropertyLib
virtual PropertyDataType value() const
Sigmoid(std::string name, double const steepness, double const midpoint, double const lower_bound, double const upper_bound, Variable const independent_variable)
Definition Sigmoid.cpp:40
PropertyDataType d2Value(VariableArray const &variable_array, Variable const variable1, Variable const variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Default implementation: 2nd derivative of any constant property is zero.
Definition Sigmoid.cpp:119
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Definition Sigmoid.cpp:92
double lower_bound_
X_l parameter (lower bound)
Definition Sigmoid.h:70
bool derivativeVanishes(Variable const variable) const
Definition Sigmoid.cpp:86
double upper_bound_
X_u parameter (upper bound)
Definition Sigmoid.h:71
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