OGS
OrthotropicEmbeddedFracturePermeability.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{
12class Medium;
13class Phase;
14class Component;
49
50template <int DisplacementDim>
52{
53private:
54 Medium* _medium = nullptr;
55 std::vector<double> const _a;
56 std::vector<double> const _e0;
57 Eigen::Matrix<double, 3, 3> const _n;
61 double const _jf;
62
63public:
65 std::string name,
66 std::vector<double> const& mean_fracture_distances,
67 std::vector<double> const& threshold_strains,
68 Eigen::Matrix<double, 3, 3> const fracture_normals,
69 ParameterLib::Parameter<double> const& intrinsic_permeability,
70 ParameterLib::Parameter<double> const& fracture_rotation_xy,
71 ParameterLib::Parameter<double> const& fracture_rotation_yz,
72 double const jacobian_factor);
73
74 using SymmetricTensor = Eigen::Matrix<
75 double,
77
78 void checkScale() const override;
79
80 PropertyDataType value(VariableArray const& variable_array,
82 double const t, double const dt) const override;
83 PropertyDataType dValue(VariableArray const& variable_array,
84 Variable const variable,
86 double const t, double const dt) const override;
87};
88
89} // namespace MaterialPropertyLib
This class defines components (substances).
Definition Component.h:18
OrthotropicEmbeddedFracturePermeability(std::string name, std::vector< double > const &mean_fracture_distances, std::vector< double > const &threshold_strains, Eigen::Matrix< double, 3, 3 > const fracture_normals, ParameterLib::Parameter< double > const &intrinsic_permeability, ParameterLib::Parameter< double > const &fracture_rotation_xy, ParameterLib::Parameter< double > const &fracture_rotation_yz, double const jacobian_factor)
Eigen::Matrix< double, MathLib::KelvinVector::kelvin_vector_dimensions(DisplacementDim), 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.