From e5bfcecde9a5c696b3119ae29a6b7f2eb993cb82 Mon Sep 17 00:00:00 2001 From: cloudflight <cloudflight@126.com> Date: 星期六, 23 十一月 2024 16:46:08 +0800 Subject: [PATCH] 更新计算部分合并代码 --- Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuMinorLoss.cs | 223 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 112 insertions(+), 111 deletions(-) diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuMinorLoss.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuMinorLoss.cs index 01f9fb1..ef15760 100644 --- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuMinorLoss.cs +++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkCalcuMinorLoss.cs @@ -2,132 +2,133 @@ namespace Yw.EPAnet { - /// <summary> - /// 绠$綉璁$畻鎷撳睍 - /// </summary> - public static class NetworkCalcuMinorExtensions - { - /// <summary> - /// 璁$畻 - /// </summary> - public static CalcuResult CalcuMinorLoss(this Network network) - { - var minorResult = new CalcuResult(); + ///// <summary> + ///// 绠$綉璁$畻鎷撳睍 + ///// </summary> + //public static class NetworkCalcuMinorExtensions + //{ + // /// <summary> + // /// 璁$畻 + // /// </summary> + // public static CalcuResult CalcuMinorLoss(this Network network) + // { + // var minorResult = new CalcuResult(); - //Null楠岃瘉 - if (network == null) - { - minorResult.Succeed = false; - return minorResult; - } + // //Null楠岃瘉 + // if (network == null) + // { + // minorResult.Succeed = false; + // return minorResult; + // } - using (var calcResult = network.Calcu(false)) - { - network.GetAllLinks().ForEach(link => - { - if (calcResult.LinkDict.ContainsKey(link.Id)) - { - var resultLink = calcResult.LinkDict[link.Id]; - link.Flow = resultLink.Flow; - } - }); - } + // using (var calcResult = network.Calcu(false)) + // { + // network.GetAllLinks().ForEach(link => + // { + // if (calcResult.LinkDict.ContainsKey(link.Id)) + // { + // var resultLink = calcResult.LinkDict[link.Id]; + // link.Flow = resultLink.Flow; + // } + // }); + // } - network.GetAllNodes().ForEach(n => - { - if (n is JunctionWT wt) - { - if (wt.PrevLinks.Count != 1 || wt.NextLinks.Count != 1) return; - var preLink = minorResult.GetLink(wt.PrevLinks[0].Id); - var nextLink = minorResult.GetLink(wt.NextLinks[0].Id); - preLink.EndNodeMinorlossCoff = wt.MinorLoss_WT / 2; - nextLink.StartNodeMinorlossCoff = wt.MinorLoss_WT / 2; - } - else if (n is Junction3T j3t) - { - if (j3t.PrevLinks.Count + j3t.NextLinks.Count != 3 || j3t.PrevLinks.Count==0 || j3t.NextLinks.Count==0) return; - List<ILink> branchlinks = new List<ILink>(); - ILink mainlink = null; - if (j3t.PrevLinks.Count==1)//涓�杩涳紝浜屽嚭 - { - mainlink = j3t.PrevLinks[0]; - branchlinks= j3t.NextLinks; - } - else if(j3t.NextLinks.Count == 1)//涓�鍑猴紝N杩� - { - mainlink = j3t.NextLinks[0]; - branchlinks = j3t.PrevLinks; - } - if (branchlinks.Count==2) - { - var pipe0 = mainlink as Pipe; - var pipe1 = branchlinks[0] as Pipe; - var pipe2 = branchlinks[1] as Pipe; - string Id1 = pipe1.Diameter == pipe0.Diameter ? pipe1.Id : pipe2.Id; - string Id2 = pipe1.Diameter == pipe0.Diameter ? pipe2.Id : pipe1.Id; - var preLink = minorResult.GetLink(mainlink.Id); - var nextLink1 = minorResult.GetLink(Id1); - var nextLink2 = minorResult.GetLink(Id2); - nextLink1.StartNodeMinorlossCoff = j3t.MinorLoss_StraightThrough; - nextLink2.StartNodeMinorlossCoff = j3t.MinorLoss_BranchThrough; - } - else if (branchlinks.Count==1) - { - var pipe0 = mainlink as Pipe; - var pipe1 = branchlinks[0] as Pipe; - string Id1 = pipe1.Id; - var preLink = minorResult.GetLink(mainlink.Id); - var nextLink1 = minorResult.GetLink(Id1); - nextLink1.StartNodeMinorlossCoff = pipe1.Diameter == pipe0.Diameter? j3t.MinorLoss_StraightThrough: j3t.MinorLoss_BranchThrough; - } + // network.GetAllNodes().ForEach(n => + // { + // if (n is JunctionWT wt) + // { + // if (wt.PrevLinks.Count != 1 || wt.NextLinks.Count != 1) return; + // var preLink = minorResult.GetLink(wt.PrevLinks[0].Id); + // var nextLink = minorResult.GetLink(wt.NextLinks[0].Id); + // preLink.EndNodeMinorlossCoff = wt.MinorLoss_WT / 2; + // nextLink.StartNodeMinorlossCoff = wt.MinorLoss_WT / 2; + // } + // else if (n is Junction3T j3t) + // { + // if (j3t.PrevLinks.Count + j3t.NextLinks.Count != 3 || j3t.PrevLinks.Count==0 || j3t.NextLinks.Count==0) return; + // List<ILink> branchlinks = new List<ILink>(); + // ILink mainlink = null; + // if (j3t.PrevLinks.Count==1)//涓�杩涳紝浜屽嚭 + // { + // mainlink = j3t.PrevLinks[0]; + // branchlinks= j3t.NextLinks; + // } + // else if(j3t.NextLinks.Count == 1)//涓�鍑猴紝N杩� + // { + // mainlink = j3t.NextLinks[0]; + // branchlinks = j3t.PrevLinks; + // } + // if (branchlinks.Count==2) + // { + // var pipe0 = mainlink as Pipe; + // var pipe1 = branchlinks[0] as Pipe; + // var pipe2 = branchlinks[1] as Pipe; + // string Id1 = pipe1.Diameter == pipe0.Diameter ? pipe1.Id : pipe2.Id; + // string Id2 = pipe1.Diameter == pipe0.Diameter ? pipe2.Id : pipe1.Id; + // var preLink = minorResult.GetLink(mainlink.Id); + // var nextLink1 = minorResult.GetLink(Id1); + // var nextLink2 = minorResult.GetLink(Id2); + // nextLink1.StartNodeMinorlossCoff = j3t.MinorLoss_StraightThrough; + // nextLink2.StartNodeMinorlossCoff = j3t.MinorLoss_BranchThrough; + // } + // else if (branchlinks.Count==1) + // { + // var pipe0 = mainlink as Pipe; + // var pipe1 = branchlinks[0] as Pipe; + // string Id1 = pipe1.Id; + // var preLink = minorResult.GetLink(mainlink.Id); + // var nextLink1 = minorResult.GetLink(Id1); + // nextLink1.StartNodeMinorlossCoff = pipe1.Diameter == pipe0.Diameter? j3t.MinorLoss_StraightThrough: j3t.MinorLoss_BranchThrough; + // } - } - else if (n is Junction4T j4t) - { - if (j4t.PrevLinks.Count + j4t.NextLinks.Count != 4 ) return; - List<ILink> branchlinks = new List<ILink>(); + // } + // else if (n is Junction4T j4t) + // { + // if (j4t.PrevLinks.Count + j4t.NextLinks.Count != 4 ) return; + // List<ILink> branchlinks = new List<ILink>(); - if (j4t.PrevLinks.Count == 1)//涓�杩涳紝浜屽嚭 - { + // if (j4t.PrevLinks.Count == 1)//涓�杩涳紝浜屽嚭 + // { - branchlinks = j4t.NextLinks; - } - else if (j4t.NextLinks.Count == 1)//涓�鍑猴紝N杩� - { + // branchlinks = j4t.NextLinks; + // } + // else if (j4t.NextLinks.Count == 1)//涓�鍑猴紝N杩� + // { - branchlinks = j4t.PrevLinks; - } - else if (j4t.NextLinks.Count==2) - { - branchlinks = j4t.NextLinks; - } - branchlinks.ForEach(link => - { - var pipe = link as Pipe; - var preLink = minorResult.GetLink(link.Id); - preLink.EndNodeMinorlossCoff = j4t.MinorLoss_Crossing; - }); - } - }); + // branchlinks = j4t.PrevLinks; + // } + // else if (j4t.NextLinks.Count==2) + // { + // branchlinks = j4t.NextLinks; + // } + // branchlinks.ForEach(link => + // { + // var pipe = link as Pipe; + // var preLink = minorResult.GetLink(link.Id); + // preLink.EndNodeMinorlossCoff = j4t.MinorLoss_Crossing; + // }); + // } + // }); - return minorResult; - } + // return minorResult; + // } - public static Link GetLink(this CalcuResult result, string linkId) - { - if (!result.LinkDict.ContainsKey(linkId)) - { - result.LinkDict.Add(linkId, new Link() { MinorlossCoff=0}); + // public static Link GetLink(this CalcuResult result, string linkId) + // { + // if (!result.LinkDict.ContainsKey(linkId)) + // { + // result.LinkDict.Add(linkId, new Link() { MinorlossCoff=0}); - } - return result.LinkDict[linkId] as Link; - } - } + // } + // return result.LinkDict[linkId] as Link; + // } + //} + } -- Gitblit v1.9.3