using Hydro.HydraulicModel; using MetroFramework; using System.Collections.Generic; using System.Drawing; namespace Hydro.ConfigModel { public class GlobalModel { //public static List Type_LogicalOfPoint = new List() { "初始条件", "约束条件", "试算参数", "目标函数", "变量" }; //public static List Color_Logical = new List() { MetroColorStyle_Inner.Blue, MetroColorStyle_Inner.Pink, MetroColorStyle_Inner.Orange, MetroColorStyle_Inner.Red, MetroColorStyle_Inner.Yellow }; ///// ///// 跟EpaModelInput对应 ///// //public static List Type_Indicator = new List() { "压力", "用水量", "水位", "水泵转速比", "阻力系数", "水泵状态" }; //public static List Type_Indicator_isNode = new List() { true, true, true, false, false, false }; public static List NameList=null; public static List DEFINE_FACI = new List() { new TypeFacilities() { Name="取水泵站", Icon="🚆", Color=Color.Green, }, new TypeFacilities() { Name="水厂", Icon="🏢", Color=Color.Blue, }, new TypeFacilities() { Name="加压泵站", Icon="🏡", Color=Color.Yellow, }, new TypeFacilities() { Name="管网", Icon="🔧", Color=Color.Gray, }, new TypeFacilities() { Name="变量集", Icon="📂", Color=Color.Brown, }, new TypeFacilities() { Name="说明", Icon="📄", Color=Color.Pink, }, }; public static List DEFINE_INDICATOR = new List() { new TypeIndicator { Name="已知压力", isNode=true, EpaType=EPAModelInput.eType.press, isInput=true, ObjectNames=new List(){"已知压力点"}, }, new TypeIndicator { Name="节点用水量", isNode=true, EpaType=EPAModelInput.eType.demand, isInput=true, ObjectNames=new List(){"节点","水表","消火栓"}, }, new TypeIndicator { Name="节点用水模式", isNode=true, EpaType=EPAModelInput.eType.pattern, isInput=true, ObjectNames=new List(){"节点","水表","消火栓"}, }, new TypeIndicator { Name="水池水位", isNode=true, EpaType=EPAModelInput.eType.level, isInput=true, ObjectNames=new List(){"水池","水库"}, }, new TypeIndicator { Name="水泵转速比", isNode=false, EpaType=EPAModelInput.eType.initPumpRS, isInput=true, ObjectNames=new List(){"水泵"}, }, new TypeIndicator { Name="管线阻力系数", isNode=false, EpaType=EPAModelInput.eType.initSettings, isInput=true, ObjectNames=new List(){"管线"}, }, new TypeIndicator { Name="阀门开度", isNode=false, EpaType=EPAModelInput.eType.initSettings, isInput=true, ObjectNames=new List(){"阀门"}, }, new TypeIndicator { Name="水泵开关", isNode=false, EpaType=EPAModelInput.eType.initStatus, isInput=true, ObjectNames=new List(){"水泵"}, }, new TypeIndicator { Name="阀门开关", isNode=false, EpaType=EPAModelInput.eType.initStatus, isInput=true, ObjectNames=new List(){"阀门"}, }, new TypeIndicator { Name="管线开关", isNode=false, EpaType=EPAModelInput.eType.initStatus, isInput=true, ObjectNames=new List(){"管线"}, }, new TypeIndicator { Name="管线直径", isNode=false, EpaType=EPAModelInput.eType.diameter, isInput=true, ObjectNames=new List(){"管线"}, }, new TypeIndicator { Name="管线长度", isNode=false, EpaType=EPAModelInput.eType.length, isInput=true, ObjectNames=new List(){"管线"}, }, new TypeIndicator { Name="总水量", isNode=true, EpaType=EPAModelInput.eType.totalDemand, isInput=true, ObjectNames=new List(){"节点","水表","消火栓"}, }, new TypeIndicator { Name="总分配水量", isNode=true, EpaType=EPAModelInput.eType.Distribution_TotalDemand, isInput=true, ObjectNames=new List(){"节点","水表","消火栓"}, }, new TypeIndicator { Name="节点压力", isNode=true, EpaType=EPAModelOutput.eType.HEAD_HEADLOSSS, isInput=false, ObjectNames=new List(){"节点","水表","消火栓","水池","水库"}, }, new TypeIndicator { Name="节点自由压力", isNode=true, EpaType=EPAModelOutput.eType.STATUS_PRESSURE, isInput=false, ObjectNames=new List(){"节点","水表","消火栓","水池","水库"}, }, new TypeIndicator { Name="节点需水量", isNode=true, EpaType=EPAModelOutput.eType.VELOCITY_DEMAND, isInput=false, ObjectNames=new List(){"节点","水表","消火栓","水池","水库"}, }, new TypeIndicator { Name="节点水龄", isNode=true, EpaType=EPAModelOutput.eType.QUALITY_SETTINGS, isInput=false, ObjectNames=new List(){"节点","水表","消火栓","水池","水库"}, }, new TypeIndicator { Name="节点水质", isNode=true, EpaType=EPAModelOutput.eType.QUALITY_SETTINGS, isInput=false, ObjectNames=new List(){"节点","水表","消火栓","水池","水库"}, }, new TypeIndicator { Name="管线流量", isNode=false, EpaType=EPAModelOutput.eType.FLOW, isInput=false, ObjectNames=new List(){"管线","阀门","水泵"}, }, new TypeIndicator { Name="管线流速", isNode=false, EpaType=EPAModelOutput.eType.VELOCITY_DEMAND, isInput=false, ObjectNames=new List(){"管线","阀门","水泵"}, }, new TypeIndicator { Name="水头损失", isNode=false, EpaType=EPAModelOutput.eType.HEAD_HEADLOSSS, isInput=false, ObjectNames=new List(){"管线","阀门","水泵"}, }, new TypeIndicator { Name="当前状态", isNode=false, EpaType=EPAModelOutput.eType.STATUS_PRESSURE, isInput=false, ObjectNames=new List(){"管线","阀门","水泵"}, }, new TypeIndicator { Name="水泵能耗", isNode=false, EpaType=EPAModelOutput.eType.ENERGY, isInput=false, ObjectNames=new List(){"水泵"}, }, new TypeIndicator { Name="水泵开关", isNode=false, EpaType=EPAModelOutput.eType.INITSTATUS, isInput=false, ObjectNames=new List(){"水泵"}, }, new TypeIndicator { Name="水泵转速比", isNode=false, EpaType=EPAModelOutput.eType.QUALITY_SETTINGS, isInput=false, ObjectNames=new List(){"水泵"}, }, }; public static List DEFINE_OBJECT = new List() { new TypeObject { Name="已知压力点", EPAObjType=EPAModelOutput.ObjType.EN_RESERVOIR, isNode=true, }, new TypeObject { Name="节点", EPAObjType=EPAModelOutput.ObjType.EN_JUNCTION, isNode=true, }, new TypeObject { Name="水表", EPAObjType=EPAModelOutput.ObjType.EN_JUNCTION, isNode=true, }, new TypeObject { Name="消火栓", EPAObjType=EPAModelOutput.ObjType.EN_JUNCTION, isNode=true, }, new TypeObject { Name="水池", EPAObjType=EPAModelOutput.ObjType.EN_TANK, isNode=true, }, new TypeObject { Name="水库", EPAObjType=EPAModelOutput.ObjType.EN_RESERVOIR, isNode=true, }, new TypeObject { Name="水泵", EPAObjType=EPAModelOutput.ObjType.EN_PUMP, isNode=false, }, new TypeObject { Name="管线", EPAObjType=EPAModelOutput.ObjType.EN_PIPE, isNode=false, }, new TypeObject { Name="阀门", EPAObjType=EPAModelOutput.ObjType.EN_GPV, isNode=false, }, }; /// /// /// public static List DEFINE_LOGICPOINT = new List() { new LogicalPointType() { Name = "初始条件", titleStyle = MetroColorStyle_Inner.Blue, IndicatorNames = new List(){ "已知压力","节点用水量", "节点用水模式", "水池水位","水泵转速比","管线阻力系数","阀门开度","水泵开关","阀门开关","管线开关","管线直径","管线长度","总水量","总分配水量" }, Type_expression= new List() { "基准值(界面)", "模式系数(界面)", "基准值(接口)", "模式系数(接口)", "定义值"}, }, new LogicalPointType() { Name = "下阶段条件", titleStyle = MetroColorStyle_Inner.Blue, IndicatorNames = new List(){ "已知压力","节点用水量", "节点用水模式", "水池水位","水泵转速比","管线阻力系数","阀门开度","水泵开关","阀门开关","管线开关","管线直径","管线长度","总水量" }, Type_expression= new List() { "基准值(界面)", "模式系数(界面)", "基准值(接口)", "模式系数(接口)", "定义值"}, }, new LogicalPointType() { Name = "试算参数", titleStyle = MetroColorStyle_Inner.Pink, IndicatorNames = new List(){ "已知压力","节点用水量","水池水位","水泵转速比","管线阻力系数","阀门开度","水泵开关","阀门开关","管线开关","管线直径","管线长度","总水量" }, Type_expression= new List() { "∈","变化值∈" }, }, new LogicalPointType() { Name = "水量分配", titleStyle = MetroColorStyle_Inner.DarkGreen, IndicatorNames = new List(){ "水量分配" }, Type_expression= new List() { "当量分配","随机分配"}, }, new LogicalPointType() { Name = "约束条件", titleStyle = MetroColorStyle_Inner.Yellow_Content, IndicatorNames = new List(){ "节点压力", "节点自由压力", "节点需水量", "管线流量", "管线流速", "水头损失", "水泵能耗","水泵开关","水泵转速比" }, Type_expression= new List() { "∈" }, }, new LogicalPointType() { Name = "目标函数", titleStyle = MetroColorStyle_Inner.DarkRed, IndicatorNames = new List(){ "节点压力", "节点自由压力", "节点需水量", "管线流量", "管线流速", "水头损失", "水泵能耗","水泵开关","水泵转速比" }, Type_expression= new List() { "最小","最大" },//"接近", }, new LogicalPointType() { Name = "表达式", titleStyle = MetroColorStyle_Inner.SkyBlue_Content, IndicatorNames = new List(){ "节点压力", "节点自由压力", "节点需水量", "管线流量", "管线流速", "水头损失", "水泵能耗","水泵开关","水泵转速比" }, Type_expression= new List() { "表达式计算" },//"接近", }, new LogicalPointType() { Name = "变量", titleStyle = MetroColorStyle_Inner.Green_Content, IndicatorNames = new List(){ "节点压力","节点自由压力", "节点需水量","节点水质", "管线流量", "管线流速","水头损失","管线状态", "水泵能耗" ,"水泵开关","水泵转速比"}, Type_expression= new List() { "计算值","变化值","初始计算值","基准值(界面)","基准值(接口)","定义值","子方案值"}, }, new LogicalPointType() { Name = "预处理插件", titleStyle = MetroColorStyle_Inner.Yellow_Content, IndicatorNames = new List(){"初始及运行传参", "初始传参", "运行传参", "计算前处理","方案筛选器","结果处理" }, Type_expression= new List() { }, }, new LogicalPointType() { Name = "集合", titleStyle = MetroColorStyle_Inner.Yellow_Content, //IndicatorNames = new List(){ "已知压力","节点用水量", "水池水位","水泵转速比","管线阻力系数","阀门开度","水泵开关","阀门开关","管线开关","管线直径","管线长度","[-----输出-----]","节点压力", "节点自由压力", "节点需水量", "管线流量", "管线流速", "水泵能耗","水泵开关","水泵转速比" }, IndicatorNames = new List(){ "节点压力","节点自由压力", "节点需水量","节点水质", "管线流量", "管线流速","水头损失","管线状态", "水泵能耗" ,"水泵开关","水泵转速比" }, Type_expression= new List() { "最大值","最小值","平均值","累计值","计数"}, }, }; } public class LogicalPointType { public string Name; public MetroColorStyle_Inner titleStyle; public List IndicatorNames; public List Type_expression; } public class TypeIndicator { public string Name; /// /// true:节点;false:管线 /// public bool isNode; public dynamic EpaType; public dynamic EpaResultType; public List ObjectNames; /// /// true:输入;false:输出 /// public bool isInput; } public class TypeObject { public string Name; public bool isNode; public EPAModelOutput.ObjType EPAObjType=EPAModelOutput.ObjType.EN_CVPIPE; } public class TypeFacilities { public string Name; public string Icon; public Color Color; } }