| | |
| | | //return new List<TimePoint>(); |
| | | } |
| | | |
| | | public List<TimePoint> CalcByValAndHead(WDNModelOptimizer wdo, Result val,double Head) |
| | | { |
| | | |
| | | WdnmoParam wdnmoParam = new WdnmoParam(); |
| | | |
| | | |
| | | Nodes.ForEach(n => |
| | | { |
| | | //if (n is JunctionViewModel || n is MeterViewModel || n is NozzleViewModel) |
| | | { |
| | | wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Press_{n.ID}" }); |
| | | wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Head_{n.ID}" }); |
| | | wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Demand_{n.ID}" }); |
| | | } |
| | | }); |
| | | Links.ForEach(n => |
| | | { |
| | | //if (n is PipeViewModel || n is PumpViewModel || n is ValveViewModel) |
| | | { |
| | | wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Flow_{n.ID}" }); |
| | | wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Velocity_{n.ID}" }); |
| | | wdnmoParam.ResultPoints.Add(new TimePoint { Key = $"Headloss_{n.ID}" }); |
| | | |
| | | } |
| | | }); |
| | | calcParam calcParam = new calcParam(); |
| | | calcParam.vars = val.arrayTryValue; |
| | | calcParam.setVars = new List<SetVar>(); |
| | | reservoirs.ForEach(r => |
| | | { |
| | | calcParam.setVars.Add(new SetVar(r.ID, true, (int)EpanetEnum.NodeValueType.水池水位, (float)Head)); |
| | | }); |
| | | |
| | | wdnmoParam = wdo.CalcbyResult(calcParam, wdnmoParam); |
| | | var list = wdnmoParam.ResultPoints; |
| | | if (list == null) return list; |
| | | list.Sort((a, b) => string.Compare(a.Key, b.Key)); |
| | | Nodes.Sort((a, b) => string.Compare(a.ID, b.ID)); |
| | | Links.Sort((a, b) => string.Compare(a.ID, b.ID)); |
| | | SetNodeFromWparam(this, list, "Press"); |
| | | SetNodeFromWparam(this, list, "Head"); |
| | | SetNodeFromWparam(this, list, "Demand"); |
| | | |
| | | SetLinkFromWparam(this, list, "Flow"); |
| | | SetLinkFromWparam(this, list, "Velocity"); |
| | | SetLinkFromWparam(this, list, "Headloss"); |
| | | this._isCalculated = true; |
| | | return list; |
| | | //return new List<TimePoint>(); |
| | | } |
| | | |
| | | private void SetNodeFromWparam(MapViewNetWork net, List<TimePoint> list, string valueType) |
| | | { |
| | | int k1 = 0; |