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);
const Scalar rw = connection.getFilterCakeRadius();
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
thickness_[perf] *= factor;
break;
@ -184,6 +185,15 @@ updateSkinFactorsAndMultipliers(const WellInterfaceGeneric<Scalar>& well,
delta_skin_factor = K / perm * std::log(rc / rc_prev);
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:
const auto geometry =
FilterCake::filterCakeGeometryToString(filter_cake.geometry);