19 int const geometry_dimension,
21 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
24 if ((geometry_dimension != 2) && (geometry_dimension != 3))
27 "The GasPressureDependentPermeability is implemented only for 2D "
38 DBUG(
"Create GasPressureDependentPermeability property {:s}.",
41 std::string
const& parameter_name =
45 parameter_name, parameters, 0,
nullptr);
53 auto const pressure_threshold =
56 auto const minimum_permeability =
59 auto const maximum_permeability =
63 if (minimum_permeability > maximum_permeability)
66 "The value of minimum_permeability of {:e} is larger that the "
67 "value of maximum_permeability of {:e} in "
68 "GasPressureDependentPermeability",
69 minimum_permeability, maximum_permeability);
72 if (geometry_dimension == 2)
74 return std::make_unique<GasPressureDependentPermeability<2>>(
75 std::move(property_name), parameter_k0, a1, a2, pressure_threshold,
76 minimum_permeability, maximum_permeability,
77 local_coordinate_system);
80 return std::make_unique<GasPressureDependentPermeability<3>>(
81 std::move(property_name), parameter_k0, a1, a2, pressure_threshold,
82 minimum_permeability, maximum_permeability, local_coordinate_system);
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)