OGS
GasPressureDependentPermeability.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{
42template <int DisplacementDim>
44{
45public:
47 std::string name, ParameterLib::Parameter<double> const& k0,
48 double const a1, double const a2, double const pressure_threshold,
49 double const minimum_permeability, double const maximum_permeability,
50 ParameterLib::CoordinateSystem const* const local_coordinate_system);
51
52 void checkScale() const override;
53
54 PropertyDataType value(VariableArray const& variable_array,
56 double const t, double const dt) const override;
57 PropertyDataType dValue(VariableArray const& variable_array,
58 Variable const variable,
60 double const t, double const dt) const override;
61
62private:
67 double const a1_;
71 double const a2_;
74 double const pressure_threshold_;
78};
79
80extern template class GasPressureDependentPermeability<2>;
81extern template class GasPressureDependentPermeability<3>;
82
83} // namespace MaterialPropertyLib
A gas pressure dependent intrinsic permeability model.
GasPressureDependentPermeability(std::string name, ParameterLib::Parameter< double > const &k0, double const a1, double const a2, double const pressure_threshold, double const minimum_permeability, double const maximum_permeability, ParameterLib::CoordinateSystem const *const local_coordinate_system)
ParameterLib::Parameter< double > const & k0_
Initial intrinsic permeability.
PropertyDataType dValue(VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
ParameterLib::CoordinateSystem const *const local_coordinate_system_
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.