20 if ((geometry_dimension != 2) && (geometry_dimension != 3))
23 "The EmbeddedFracturePermeability is implemented only for 2D or 3D "
34 DBUG(
"Create EmbeddedFracturePermeability medium property");
53 Eigen::Matrix<double, 3, 1> n;
54 if (
auto const n_ptr =
59 if ((*n_ptr).size() != 3)
62 "The size of the fracture normal vector must be 3, but is %d.",
65 DBUG(
"Using constant fracture normal vector.");
66 std::copy_n((*n_ptr).data(), 3, n.data());
73 "No constant fracture normal was given. By default it will be "
74 "determined as the third principal stress vector.");
77 if (geometry_dimension == 2)
79 return std::make_unique<EmbeddedFracturePermeability<2>>(
80 std::move(property_name), n, n_const, k, b0, a, e0);
82 return std::make_unique<EmbeddedFracturePermeability<3>>(
83 std::move(property_name), n, n_const, k, b0, a, e0);
void DBUG(char const *fmt, Args const &... args)
T peekConfigParameter(std::string const ¶m) const
void checkConfigParameter(std::string const ¶m, T const &value) const
std::optional< T > getConfigParameterOptional(std::string const ¶m) const
T getConfigParameter(std::string const ¶m) const
std::unique_ptr< Property > createEmbeddedFracturePermeability(int const geometry_dimension, BaseLib::ConfigTree const &config)