Skip to content
Snippets Groups Projects
Commit 117e8c64 authored by Norbert Grunwald's avatar Norbert Grunwald Committed by Dmitri Naumov
Browse files

removed small offsets of capillary pressure

parent a649f629
No related branches found
No related tags found
No related merge requests found
...@@ -37,10 +37,8 @@ PropertyDataType SaturationBrooksCorey::value( ...@@ -37,10 +37,8 @@ PropertyDataType SaturationBrooksCorey::value(
ParameterLib::SpatialPosition const& /*pos*/, ParameterLib::SpatialPosition const& /*pos*/,
double const /*t*/) const double const /*t*/) const
{ {
const double p_cap = std::max( const double p_cap = std::get<double>(
std::numeric_limits<double>::min(), variable_array[static_cast<int>(Variable::capillary_pressure)]);
std::get<double>(
variable_array[static_cast<int>(Variable::capillary_pressure)]));
const double s_L_res = _residual_liquid_saturation; const double s_L_res = _residual_liquid_saturation;
const double s_L_max = 1.0 - _residual_gas_saturation; const double s_L_max = 1.0 - _residual_gas_saturation;
...@@ -51,10 +49,7 @@ PropertyDataType SaturationBrooksCorey::value( ...@@ -51,10 +49,7 @@ PropertyDataType SaturationBrooksCorey::value(
return s_L_max; return s_L_max;
const double s_eff = std::pow(p_b / p_cap, lambda); const double s_eff = std::pow(p_b / p_cap, lambda);
const double s = s_eff * (s_L_max - s_L_res) + s_L_res; return s_eff * (s_L_max - s_L_res) + s_L_res;
return MathLib::limitValueInInterval(s, s_L_res + _minor_offset,
s_L_max - _minor_offset);
} }
PropertyDataType SaturationBrooksCorey::dValue( PropertyDataType SaturationBrooksCorey::dValue(
...@@ -67,10 +62,11 @@ PropertyDataType SaturationBrooksCorey::dValue( ...@@ -67,10 +62,11 @@ PropertyDataType SaturationBrooksCorey::dValue(
" derivatives with respect to capillary pressure only."); " derivatives with respect to capillary pressure only.");
const double p_b = _entry_pressure; const double p_b = _entry_pressure;
const double p_cap = std::max( const double p_cap = std::get<double>(
p_b, variable_array[static_cast<int>(Variable::capillary_pressure)]);
std::get<double>(
variable_array[static_cast<int>(Variable::capillary_pressure)])); if (p_cap <= p_b)
return 0.;
auto const s_L = _medium->property(PropertyType::saturation) auto const s_L = _medium->property(PropertyType::saturation)
.template value<double>(variable_array, pos, t); .template value<double>(variable_array, pos, t);
...@@ -82,8 +78,8 @@ PropertyDataType SaturationBrooksCorey::dValue( ...@@ -82,8 +78,8 @@ PropertyDataType SaturationBrooksCorey::dValue(
PropertyDataType SaturationBrooksCorey::d2Value( PropertyDataType SaturationBrooksCorey::d2Value(
VariableArray const& variable_array, Variable const primary_variable1, VariableArray const& variable_array, Variable const primary_variable1,
Variable const primary_variable2, ParameterLib::SpatialPosition const& /*pos*/, Variable const primary_variable2,
double const /*t*/) const ParameterLib::SpatialPosition const& /*pos*/, double const /*t*/) const
{ {
(void)primary_variable1; (void)primary_variable1;
(void)primary_variable2; (void)primary_variable2;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment