From 21dd2ae9704c484d5d75b2ed980e5402505da7dc Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期二, 05 十一月 2024 18:01:30 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuExtensions.cs | 34 ++++++++++++++++++++++++++++------ 1 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuExtensions.cs index e70b9f2..c496a18 100644 --- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuExtensions.cs +++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuExtensions.cs @@ -10,20 +10,36 @@ /// <summary> /// 璁$畻 /// </summary> - public static CalcuResult Calcu(this Network network) + public static CalcuResult Calcu(this Network network,bool MinorLossPreCalc=true) { var result = new CalcuResult(); - + //Null楠岃瘉 if (network == null) { result.Succeed = false; return result; } - + + string inpString = null; + if (MinorLossPreCalc) + { + CalcuResult minorLossResult = network.CalcuMinorLoss(); + if (!minorLossResult.Succeed) + { + result.Succeed = false; + result.FailedList.AddRange(minorLossResult.FailedList); + return result; + } + inpString = network.ToInpString(minorLossResult); + } + else + { + inpString = network.ToInpString(); + } //鑾峰彇绯荤粺涓存椂鏂囦欢鐩綍锛屽垱寤篿np涓存椂鏂囦欢 var inpFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N") + ".inp"); - var inpString = network.ToInpString(); + File.WriteAllText(inpFilePath, inpString); //鍔犺浇绠$綉 @@ -72,7 +88,7 @@ epanet.getnodeid(i, sb); var arr = new string[] { "Head", "Press", "Demand" }; //System.Enum.GetValues(typeof(HydraulicModel.NodeValueType)); var arrnum = new int[] { 10, 11, 9 }; - var resultNode = new CalcuNode() + var resultNode = new Node() { Id = sb.ToString(), }; @@ -95,6 +111,7 @@ } } result.NodeList.Add(resultNode); + result.NodeDict.Add(resultNode.Id, resultNode); } for (int i = 1; i <= linkCount; i++) @@ -103,7 +120,7 @@ //var arr = System.Enum.GetValues(typeof(HydraulicModel.LinkValueType)); var arr = new string[] { "Flow", "Velocity", "Headloss" }; //System.Enum.GetValues(typeof(HydraulicModel.NodeValueType)); var arrnum = new int[] { 8, 9, 10 }; - var resultLink = new CalcuLink() + var resultLink = new Link() { Id = sb.ToString(), }; @@ -126,7 +143,12 @@ } } result.LinkList.Add(resultLink); + result.LinkDict.Add(resultLink.Id, resultLink); } + + + + return result; } -- Gitblit v1.9.3