27 int const geometry_dimension,
29 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
32 if ((geometry_dimension != 2) && (geometry_dimension != 3))
35 "The GasPressureDependentPermeability is implemented only for 2D "
46 DBUG(
"Create GasPressureDependentPermeability property {:s}.",
49 std::string
const& parameter_name =
52 auto const& parameter_k0 = ParameterLib::findParameter<double>(
53 parameter_name, parameters, 0,
nullptr);
61 auto const pressure_threshold =
64 auto const minimum_permeability =
67 auto const maximum_permeability =
71 if (minimum_permeability > maximum_permeability)
74 "The value of minimum_permeability of {:e} is larger that the "
75 "value of maximum_permeability of {:e} in "
76 "GasPressureDependentPermeability",
77 minimum_permeability, maximum_permeability);
80 if (geometry_dimension == 2)
82 return std::make_unique<GasPressureDependentPermeability<2>>(
83 std::move(property_name), parameter_k0, a1, a2, pressure_threshold,
84 minimum_permeability, maximum_permeability,
85 local_coordinate_system);
88 return std::make_unique<GasPressureDependentPermeability<3>>(
89 std::move(property_name), parameter_k0, a1, a2, pressure_threshold,
90 minimum_permeability, maximum_permeability, local_coordinate_system);