OGS
EmbeddedFracturePermeability.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{
43template <int DisplacementDim>
45{
46private:
47 Medium* _medium = nullptr;
48 Eigen::Matrix<double, 3, 1> const _n;
49 bool const _n_const;
50 double const _k;
51 double const _b0;
52 double const _a;
53 double const _e0;
56 double const _jf;
57
58public:
60 std::string name,
61 Eigen::Matrix<double, 3, 1> const fracture_normal,
62 bool const fracture_normal_is_constant,
63 double const intrinsic_permeability,
64 double const initial_aperture,
65 double const mean_fracture_distance,
66 double const threshold_strain,
67 ParameterLib::Parameter<double> const& fracture_rotation_xy,
68 ParameterLib::Parameter<double> const& fracture_rotation_yz,
69 double const jacobian_factor);
70
71 static int const KelvinVectorSize =
73 using SymmetricTensor = Eigen::Matrix<double, KelvinVectorSize, 1>;
74
75 void checkScale() const override;
76
77 PropertyDataType value(VariableArray const& variable_array,
79 double const t, double const dt) const override;
80 PropertyDataType dValue(VariableArray const& variable_array,
81 Variable const variable,
83 double const t, double const dt) const override;
84};
85
86} // namespace MaterialPropertyLib
EmbeddedFracturePermeability(std::string name, Eigen::Matrix< double, 3, 1 > const fracture_normal, bool const fracture_normal_is_constant, double const intrinsic_permeability, double const initial_aperture, double const mean_fracture_distance, double const threshold_strain, ParameterLib::Parameter< double > const &fracture_rotation_xy, ParameterLib::Parameter< double > const &fracture_rotation_yz, double const jacobian_factor)
Eigen::Matrix< double, KelvinVectorSize, 1 > SymmetricTensor
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
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.