OGS
PermeabilityMohrCoulombFailureIndexModel.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
8
9namespace ParameterLib
10{
11struct CoordinateSystem;
12template <typename T>
13struct Parameter;
14} // namespace ParameterLib
15
16namespace MaterialPropertyLib
17{
82template <int DisplacementDim>
84{
85public:
87 std::string name, ParameterLib::Parameter<double> const& k0,
88 double const kr, double const b, double const c, double const phi,
89 double const k_max, double const t_sigma_max,
90 ParameterLib::CoordinateSystem const* const local_coordinate_system);
91
92 void checkScale() const override;
93
94 PropertyDataType value(VariableArray const& variable_array,
96 double const t, double const dt) const override;
97 PropertyDataType dValue(VariableArray const& variable_array,
98 Variable const variable,
100 double const t, double const dt) const override;
101
102private:
107 double const kr_;
109 double const b_;
111 double const c_;
113 double const phi_;
114
116 double const k_max_;
117
119 double const t_sigma_max_;
121};
122
123} // namespace MaterialPropertyLib
PermeabilityMohrCoulombFailureIndexModel(std::string name, ParameterLib::Parameter< double > const &k0, double const kr, double const b, double const c, double const phi, double const k_max, double const t_sigma_max, ParameterLib::CoordinateSystem const *const local_coordinate_system)
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
virtual PropertyDataType value() const
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
A local coordinate system used for tensor transformations.