OGS
EmbeddedFracturePermeability.h
Go to the documentation of this file.
1 
10 #pragma once
11 
13 #include "MathLib/KelvinVector.h"
14 
15 namespace MaterialPropertyLib
16 {
48 template <int DisplacementDim>
50 {
51 private:
52  Medium* _medium = nullptr;
53  Eigen::Matrix<double, 3, 1> const _n;
54  bool const _n_const;
55  double const _k;
56  double const _b0;
57  double const _a;
58  double const _e0;
59 
60 public:
62  std::string name,
63  Eigen::Matrix<double, 3, 1> const fracture_normal,
64  bool const fracture_normal_is_constant,
65  double const intrinsic_permeability,
66  double const initial_aperture,
67  double const mean_fracture_distance,
68  double const threshold_strain);
69 
70  static int const KelvinVectorSize =
72  using SymmetricTensor = Eigen::Matrix<double, KelvinVectorSize, 1>;
73 
74  void checkScale() const override;
75 
76  PropertyDataType value(VariableArray const& variable_array,
78  double const t, double const dt) const override;
79  PropertyDataType dValue(VariableArray const& variable_array,
80  Variable const primary_variable,
82  double const t, double const dt) const override;
83 };
84 
85 } // namespace MaterialPropertyLib
Permeability model as proposed by Olivella&Alonso.
PropertyDataType dValue(VariableArray const &variable_array, Variable const primary_variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override
Eigen::Matrix< double, KelvinVectorSize, 1 > SymmetricTensor
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)
virtual PropertyDataType value() const
Definition: Property.cpp:72
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 > > PropertyDataType
Definition: Property.h:35
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
Definition: VariableType.h:108
constexpr int kelvin_vector_dimensions(int const displacement_dim)
Kelvin vector dimensions for given displacement dimension.
Definition: KelvinVector.h:23