From 8ad2362531d4a211090223439c6d80d22da414d2 Mon Sep 17 00:00:00 2001 From: Thomas Lambert <t.lambert@uliege.be> Date: Wed, 20 Sep 2023 15:07:12 +0200 Subject: [PATCH] fix(ElemPerf): issue with contraction The contraction should be calculated based on the **last element** position and not the actual rotor radius. In some edge cases, an element of the aft rotor can fall in between the contraction calculated from the previous rotor's last element and the one calculated from its tip radius. When this happens, the velocity is poorly interpolated and brought to 0 for this element on the aft rotor. This not only skews the results, but also lead to issues with the current implementation of the indfact solver, which only looks into Op.speed~=0 and into the airspeed for each individual elements. --- src/classes/@ElemPerf/updateupstreamvel.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/classes/@ElemPerf/updateupstreamvel.m b/src/classes/@ElemPerf/updateupstreamvel.m index cea2781..778d6a9 100644 --- a/src/classes/@ElemPerf/updateupstreamvel.m +++ b/src/classes/@ElemPerf/updateupstreamvel.m @@ -46,7 +46,7 @@ function updateupstreamvel(self, PrevOpRot) % area ratio of previous rotor contraction vec_radiusRatio = sqrt(vec_areaRatio); - vcRadius = PrevOpRot.Rot.radius * vec_radiusRatio(1, end); % vena contracta radius + vcRadius = PrevOpRot.Rot.Bl.y(end) * vec_radiusRatio(1, end); % vena contracta radius vcRadIdx = find(self.Rot.Bl.y <= vcRadius, 1, 'last'); % tangential velocity at the previous rotor disk -- GitLab