Merge pull request #5717 from vkip/fc_linrad

Add LINRAD (hybrid linear-radial) filter cake model
This commit is contained in:
Kai Bao 2024-11-07 15:01:05 +01:00 committed by GitHub
commit 7acd5c24f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -91,7 +91,8 @@ applyCleaning(const WellInterfaceGeneric<Scalar>& well,
updateMultiplier(connection, perf); updateMultiplier(connection, perf);
const Scalar rw = connection.getFilterCakeRadius(); const Scalar rw = connection.getFilterCakeRadius();
switch (filter_cake.geometry) { switch (filter_cake.geometry) {
case FilterCake::FilterCakeGeometry::LINEAR: { case FilterCake::FilterCakeGeometry::LINEAR:
case FilterCake::FilterCakeGeometry::LINRAD: {
// Previous thickness adjusted to give correct cleaning multiplier at start of time step // Previous thickness adjusted to give correct cleaning multiplier at start of time step
thickness_[perf] *= factor; thickness_[perf] *= factor;
break; break;
@ -184,6 +185,15 @@ updateSkinFactorsAndMultipliers(const WellInterfaceGeneric<Scalar>& well,
delta_skin_factor = K / perm * std::log(rc / rc_prev); delta_skin_factor = K / perm * std::log(rc / rc_prev);
break; break;
} }
case FilterCake::FilterCakeGeometry::LINRAD: {
const auto prev_thickness = thickness_[perf];
Scalar rc_prev = rw + prev_thickness;
thickness = thickness_[perf] + delta_thickness;
filtrate_data.thickness[perf] = thickness;
const Scalar rc = rw + thickness;
delta_skin_factor = K / perm * std::log(rc / rc_prev);
break;
}
default: default:
const auto geometry = const auto geometry =
FilterCake::filterCakeGeometryToString(filter_cake.geometry); FilterCake::filterCakeGeometryToString(filter_cake.geometry);