12 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters)
14 if ((geometry_dimension != 2) && (geometry_dimension != 3))
17 "The EmbeddedFracturePermeability is implemented only for 2D or 3D "
28 DBUG(
"Create EmbeddedFracturePermeability medium property");
47 Eigen::Matrix<double, 3, 1> n;
48 if (
auto const n_ptr =
53 if ((*n_ptr).size() != 3)
56 "The size of the fracture normal vector must be 3, but is %d.",
59 DBUG(
"Using constant fracture normal vector.");
60 std::copy_n((*n_ptr).data(), 3, n.data());
67 "No constant fracture normal was given. By default it will be "
68 "determined as the third principal stress vector.");
71 std::string
const fracture_rotation_xy_param_name =
76 fracture_rotation_xy_param_name, parameters, 0,
nullptr);
78 std::string
const fracture_rotation_yz_param_name =
83 fracture_rotation_yz_param_name, parameters, 0,
nullptr);
89 if (geometry_dimension == 2)
91 return std::make_unique<EmbeddedFracturePermeability<2>>(
92 std::move(property_name), n, n_const, k, b0, a, e0, phi_xy, phi_yz,
95 return std::make_unique<EmbeddedFracturePermeability<3>>(
96 std::move(property_name), n, n_const, k, b0, a, e0, phi_xy, phi_yz, jf);
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)