From ceffbd2fc545c22a325f16f693e6a72dd86c2987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A5rd=20Skaflestad?= Date: Thu, 9 Nov 2023 11:12:03 +0100 Subject: [PATCH] Chase Constructor API Change for Opm::Connection Class --- opm/simulators/wells/WellFilterCake.cpp | 7 +------ tests/test_parallel_wbp_calculation.cpp | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/opm/simulators/wells/WellFilterCake.cpp b/opm/simulators/wells/WellFilterCake.cpp index 777b0364f..79140f0bd 100644 --- a/opm/simulators/wells/WellFilterCake.cpp +++ b/opm/simulators/wells/WellFilterCake.cpp @@ -96,8 +96,6 @@ updateInjFCMult(const WellInterfaceGeneric& well, const double poro = filter_cake.poro; const double perm = filter_cake.perm; const double rw = connection.getFilterCakeRadius(); - const auto cr0 = connection.r0(); - const auto crw = connection.rw(); const double K = connection.Kh() / connection.connectionLength(); const double factor = filter_cake.sf_multiplier; // the thickness of the filtration cake @@ -130,10 +128,7 @@ updateInjFCMult(const WellInterfaceGeneric& well, } filtrate_data.skin_factor[perf] = skin_factor; - // the original skin factor for the connection - const auto cskinfactor = connection.skinFactor(); - // compute a multiplier for the well connection transmissibility - const auto denom = std::log(cr0 / std::min(crw, cr0)) + cskinfactor; + const auto denom = connection.ctfProperties().peaceman_denom; const auto denom2 = denom + skin_factor; inj_fc_multiplier_[perf] = denom / denom2; } else { diff --git a/tests/test_parallel_wbp_calculation.cpp b/tests/test_parallel_wbp_calculation.cpp index f3bd231fd..7f2ba41d4 100644 --- a/tests/test_parallel_wbp_calculation.cpp +++ b/tests/test_parallel_wbp_calculation.cpp @@ -411,18 +411,28 @@ namespace { }; for (auto k = topConn; k < kMax; ++k) { + const auto depth = 2000 + (2*k + 1) / static_cast(2); + + auto ctf_props = Opm::Connection::CTFProperties{}; + + // 0.03, 0.0, 0.01, 0.02, 0.03, ... + ctf_props.CF = ((k + 3 - topConn) % 4) / 100.0; + + ctf_props.Kh = 1.0; + ctf_props.Ke = 1.0; + ctf_props.rw = 1.0; + ctf_props.r0 = 0.5; + ctf_props.re = 0.5; + ctf_props.connection_length = 1.0; + conns.emplace_back(i, j, k, globIndex({i, j, k}, dims), k - topConn, - 2000 + (2*k + 1) / static_cast(2), // Open, Shut, Open, Open, Shut, ... state[(k - topConn) % state.size()], - // 0.03, 0.0, 0.01, 0.02, 0.03, ... - ((k + 3 - topConn) % 4) / 100.0, - - 1.0, 1.0, 0.5, 0.5, 1.0, 0.0, 0, 0.0, 0.0, Opm::Connection::Direction::Z, - Opm::Connection::CTFKind::DeckValue, k - topConn, false); + Opm::Connection::CTFKind::DeckValue, + 0, depth, ctf_props, k - topConn, false); } return std::make_shared