OGS
SaturationDependentSwelling.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
8namespace ParameterLib
9{
10struct CoordinateSystem;
11}
12
13namespace MaterialPropertyLib
14{
15class Medium;
16class Phase;
17class Component;
18
24{
25private:
27 std::array<double, 3> const p_;
29 std::array<double, 3> const lambda_;
30 double const S_min_; //< Lower saturation limit.
31 double const S_max_; //< Upper saturation limit.
33
34public:
36 std::string name,
37 std::array<double, 3>
38 swelling_pressures,
39 std::array<double, 3>
40 exponents,
41 double const lower_saturation_limit,
42 double const upper_saturation_limit,
43 ParameterLib::CoordinateSystem const* const local_coordinate_system);
44
45 void checkScale() const override;
46
47 PropertyDataType value(VariableArray const& variable_array,
48 VariableArray const& variable_array_prev,
50 double const t, double const dt) const override;
51 PropertyDataType dValue(VariableArray const& variable_array,
52 VariableArray const& variable_array_prev,
53 Variable const variable,
55 double const t, double const dt) const override;
56};
57
58} // namespace MaterialPropertyLib
This class defines components (substances).
Definition Component.h:18
virtual PropertyDataType value() const
std::array< double, 3 > const p_
Maximum swelling pressures, one for each spatial dimension.
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 override
ParameterLib::CoordinateSystem const *const local_coordinate_system_
SaturationDependentSwelling(std::string name, std::array< double, 3 > swelling_pressures, std::array< double, 3 > exponents, double const lower_saturation_limit, double const upper_saturation_limit, ParameterLib::CoordinateSystem const *const local_coordinate_system)
std::array< double, 3 > const lambda_
Exponents, one for each spatial dimension.
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.