From 59a54652c0ca8d064ead157802d21e06b0ea34e6 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期二, 07 一月 2025 17:08:54 +0800
Subject: [PATCH] 曲线对接修改

---
 Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs |   21 +++++++++------------
 1 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs
index 1fbab88..65f88f5 100644
--- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs
+++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs
@@ -35,13 +35,8 @@
             /// <summary>
             /// 灞�閮ㄦ按澶存崯澶�
             /// </summary>
-            public double MinorHeadLoss
-            {
-                get
-                {
-                    return StartHead - EndHead;
-                }
-            }
+            public double MinorHeadLoss { get; set; } = 0;
+            
 
             public double Distance { get; set; }
         }
@@ -86,7 +81,7 @@
                     length += p.Length;
 
             }
-
+            nodeEnd.Distance = length;
             chartNodes.Add(nodeEnd);
 
             for (int i=0;i<links.Count;i++)
@@ -101,22 +96,24 @@
                     //鏍规嵁p.diameter鍜宲.flow璁$畻娴侀��
                     double velocity = dictLinks[ p.Id].Flow/ (Math.PI * Math.Pow(p.Diameter / 2, 2));
                     //鏍规嵁娴侀�熻绠楀眬閮ㄦ按澶存崯澶�
-                    double minorloss1 = p.StartMinorloss* Math.Pow(velocity, 2) / 2 / 9.81;
-                    double minorloss2 = p.EndMinorloss * Math.Pow(velocity, 2) / 2 / 9.81;
+                    double minorloss1 = dictLinks[p.Id].StartMinorLoss;
+                    double minorloss2 = dictLinks[p.Id].EndMinorLoss;
 
 
                     if (i < links.Count - 1)
                     {
 
                         chartNodes[i].EndHead = chartNodes[i].Head - minorloss1;
+                        chartNodes[i].MinorHeadLoss += minorloss1;
+                        chartNodes[i + 1].StartHead = chartNodes[i+1].Head + minorloss2;
+                        chartNodes[i + 1].MinorHeadLoss += minorloss2;
 
-                        chartNodes[i + 1].StartHead = chartNodes[i].EndHead - minorloss2;
 
-                        
                     }
                     else
                     {
                         chartNodes[i].EndHead = chartNodes[i].Head - minorloss1;
+                        chartNodes[i].MinorHeadLoss += minorloss1;
                     }
                     
                 }

--
Gitblit v1.9.3