namespace IStation.Epanet.Enums
|
{
|
|
/// <summary>Node值参数</summary>
|
/// <remarks>
|
/// 参数 13 (<see cref="Demand" /> through <see cref="SourceMass" />)为计算值。
|
/// 其他为输入设计参数。
|
/// </remarks>
|
/// <remarks>
|
/// 参数 14 - 23(<see cref="InitVolume" /> 至 <see cref="TankKbulk" />)仅适用于储罐节点。
|
/// </remarks>
|
public enum NodeValue
|
{
|
/// <summary>标高</summary>
|
Elevation = 0,
|
|
/// <summary>基础需水量</summary>
|
BaseDemand = 1,
|
|
/// <summary>时间模式索引</summary>
|
Pattern = 2,
|
|
/// <summary>扩散器系数</summary>
|
Emitter = 3,
|
|
/// <summary>初始水质</summary>
|
InitQual = 4,
|
|
/// <summary>源头水质</summary>
|
SourceQual = 5,
|
|
/// <summary>源头模式</summary>
|
SourcePat = 6,
|
|
/// <summary>源头类型(See <see cref="SourceType" /></summary>
|
SourceType = 7,
|
|
/// <summary>水池的初始水位</summary>
|
TankLevel = 8,
|
|
/// <summary>实际需水量</summary>
|
Demand = 9,
|
|
/// <summary>水力水头</summary>
|
Head = 10,
|
|
/// <summary>压强</summary>
|
Pressure = 11,
|
|
/// <summary>实际水质</summary>
|
Quality = 12,
|
|
/// <summary>每分钟化学成分源头的质量流量</summary>
|
SourceMass = 13,
|
|
/// <summary>初始水量</summary>
|
InitVolume = 14,
|
|
/// <summary>混合模型编码 (see <see cref="MixType" />)</summary>
|
MixModel = 15,
|
|
/// <summary>双隔层水箱的入口/出口区域容积(Inlet/Outlet zone volume in a 2-compartment tank )</summary>
|
MixZonevol = 16,
|
|
/// <summary>水箱直径</summary>
|
TankDiam = 17,
|
|
/// <summary>最小水量</summary>
|
MinVolume = 18,
|
|
/// <summary>体积与深度曲线的指数(如果没有指定,则为 0)</summary>
|
VolCurve = 19,
|
|
/// <summary>最低水位</summary>
|
MinLevel = 20,
|
|
/// <summary>最高水位</summary>
|
MaxLevel = 21,
|
|
/// <summary>双格水槽中入口/出口区所占总容积的比例 (Fraction of total volume occupied by the inlet/outlet zone in a 2-compartment tank)</summary>
|
MixFraction = 22,
|
|
/// <summary>体积反应速率系数</summary>
|
TankKbulk = 23
|
}
|
|
/// <summary>Link值参数</summary>
|
/// <remarks>
|
/// 参数 13(<see cref="Flow" /> 至 <see cref="Energy" />)均为为计算值。其他参数为设计参数。
|
/// </remarks>
|
/// <remarks>
|
/// 如果流量方向是从指定的 的起点节点流向其指定的终点节点,则流速为正;反之,流速为负。
|
/// </remarks>
|
/// <remarks>
|
/// 返回值的单位取决于 IStation.Epanet 输入文件中用于流量的单位(参见测量单位)
|
/// </remarks>
|
public enum LinkValue
|
{
|
/// <summary>直径</summary>
|
Diameter = 0,
|
|
/// <summary>长度</summary>
|
Length = 1,
|
|
/// <summary>粗糙系数</summary>
|
Roughness = 2,
|
|
/// <summary>局部损失系数</summary>
|
MinorLoss = 3,
|
|
/// <summary>初始管段状态 (0 = closed, 1 = open)</summary>
|
InitStatus = 4,
|
|
/// <summary>管道粗糙度初始水泵转速初始阀门设置</summary>
|
InitSetting = 5,
|
|
/// <summary>主流反应系数</summary>
|
Kbulk = 6,
|
|
/// <summary>管壁反应系数</summary>
|
Kwall = 7,
|
|
/// <summary>流量</summary>
|
Flow = 8,
|
|
/// <summary>流速</summary>
|
Velocity = 9,
|
|
/// <summary>10 - 水头损失</summary>
|
HeadLoss = 10,
|
|
/// <summary>11 - 当前水泵或者阀门状态 (0 = closed, 1 = open)</summary>
|
Status = 11,
|
|
/// <summary>12 - 当前水泵转速或者阀门设置</summary>
|
Setting = 12,
|
|
/// <summary>13 - 消耗能量,以千瓦计</summary>
|
Energy = 13
|
}
|
|
/// <summary>时间参数</summary>
|
/// <remarks>
|
/// 在水力分析中调用 <see cref="EpanetMethods.ENinitH" /> 或在水质分析中调用 <see cref="EpanetMethods.ENinitQ" /> 后,不要更改时间参数。
|
/// 或在水质分析中调用<see cref="EpanetMethods.ENinitQ" /> 后,请勿更改时间参数。
|
/// </remarks>
|
public enum TimeParameter
|
{
|
/// <summary>模拟历时</summary>
|
Duration = 0,
|
|
/// <summary>水力时间步长</summary>
|
HydStep = 1,
|
|
/// <summary>水质时间步长</summary>
|
QualStep = 2,
|
|
/// <summary>时间模式时间步长</summary>
|
PatternStep = 3,
|
|
/// <summary>时间模式起始时间</summary>
|
PatternStart = 4,
|
|
/// <summary>报告时间步长</summary>
|
ReportStep = 5,
|
|
/// <summary>报告起始时间</summary>
|
ReportStart = 6,
|
|
/// <summary>估计基于规则控制的时间步长</summary>
|
RuleStep = 7,
|
|
/// <summary>使用时间序列后处理的类型 (see <see cref="TstatType" />)</summary>
|
Statistic = 8,
|
|
/// <summary>保存到二进制输出文件的报告时段数</summary>
|
Periods = 9
|
}
|
|
/// <summary>组件数量</summary>
|
/// <remarks>
|
/// 网络中的连接点数量等于节点数量减去水箱和蓄水池数量。
|
/// </remarks>
|
/// <remarks>
|
/// 工具包中没有添加或删除输入文件中描述的组件。
|
/// </remarks>
|
public enum CountType
|
{
|
/// <summary>节点</summary>
|
Node = 0,
|
|
/// <summary>水库和水池节点</summary>
|
Tank = 1,
|
|
/// <summary>管段</summary>
|
Link = 2,
|
|
/// <summary>时间模式</summary>
|
Pattern = 3,
|
|
/// <summary>曲线</summary>
|
Curve = 4,
|
|
/// <summary>简单控制</summary>
|
Control = 5
|
}
|
|
/// <summary>
|
/// 节点类型
|
/// </summary>
|
public enum NodeType
|
{
|
/// <summary>连接点</summary>
|
Junction = 0,
|
|
/// <summary>水库</summary>
|
Reservoir = 1,
|
|
/// <summary>水箱节点</summary>
|
Tank = 2
|
}
|
|
/// <summary>
|
/// 管线类型(与阀门类型有重复,阀门类型用于inp文件)
|
/// </summary>
|
public enum LinkType
|
{
|
/// <summary>具有止回阀的管道</summary>
|
CVPipe = 0,
|
|
/// <summary>管道</summary>
|
Pipe = 1,
|
|
/// <summary>水泵</summary>
|
Pump = 2,
|
|
/// <summary>减压阀</summary>
|
PRV = 3,
|
|
/// <summary>稳压阀</summary>
|
PSV = 4,
|
|
/// <summary>压力制动阀</summary>
|
PBV = 5,
|
|
/// <summary>流量控制阀</summary>
|
FCV = 6,
|
|
/// <summary>节流控制阀</summary>
|
TCV = 7,
|
|
/// <summary>常规阀门</summary>
|
GPV = 8,
|
|
/// <summary>
|
/// 需要修改
|
/// </summary>
|
VALVE = 999
|
}
|
|
/// <summary>
|
/// 水质分析类型
|
/// </summary>
|
public enum QualType
|
{
|
/// <summary>不进行水质分析</summary>
|
None = 0,
|
|
/// <summary>化学成分分析</summary>
|
Chem = 1,
|
|
/// <summary>化学成分分析</summary>
|
Age = 2,
|
|
/// <summary>源头跟踪</summary>
|
Trace = 3
|
}
|
|
/// <summary>输入源质量类型</summary>
|
/// <remarks>有关这些源类型的描述,请参阅 <c>[SOURCES]</c>。</remarks>
|
/// <remarks>
|
/// Used in functions <see cref="EpanetMethods.ENgetnodevalue" /> and
|
/// <see cref="EpanetMethods.ENsetnodevalue" /> with <see cref="NodeValue.SourceType" />
|
/// parameter.
|
///
|
/// 1. MASS类型源头的强度计量为质量流量每分。所有其它类型测试源头强度,以浓度单位计。
|
/// 2. 通过指定时间模式,源头强度可以设为随时间而变化。
|
/// 3. CONCEN源头:
|
/// *表示任何进入节点的外部源头进流浓度
|
/// *仅当节点具有负需水量时使用(水在该节点进入管网)
|
/// *如果节点为连接节点,报告的浓度为混合了源头流量和从管网其它点来的进流结果
|
/// *如果节点为水库,报告的浓度为源头浓度
|
/// *如果节点为水池,报告的浓度为水池的内部浓度
|
/// *适合于表示源头供水或者处理厂的节点(例如赋以负需水量的水库或者节点)
|
/// *不适用于同时具有进流/出流的蓄水池。
|
/// 4. MASS, FLOWPACED或者SETPOINT源头:
|
/// *表示了注射源头,这里物质被直接注射到管网,忽略了节点的需水量多少
|
/// *以下方式影响了离开节点到管网其它位置的水:
|
/// -MASS注入,将质量流量添加到节点进流
|
/// -FLOWPACED注入,将固定浓度添加到节点进流浓度中
|
/// -SETPOINT注入,固定了任何离开节点的水流浓度(只要进流来的浓度低于设置值)
|
/// *在连接节点或者水库注射源头的报告浓度,是在应用注射之后的结果浓度;具有注射源头的水池报告浓度为水池的内部浓度
|
/// *适合于模拟示踪剂的直接注入,或者进入管网的消毒剂,或者模拟污染物入侵。
|
/// 5. 对于模拟水龄或者源头跟踪,[SOURCES] 节是不需要的
|
/// </remarks>
|
public enum SourceType
|
{
|
/// <summary>进流浓度</summary>
|
Concen = 0,
|
|
/// <summary>群流增压器</summary>
|
Mass = 1,
|
|
/// <summary>设定点增压器</summary>
|
SetPoint = 2,
|
|
/// <summary>流量步进助推器</summary>
|
FlowPaced = 3
|
|
}
|
|
/// <summary>流量单位编码</summary>
|
/// <remarks>
|
/// 流量单位在 IStation.Epanet 输入文件的 <c>[OPTIONS]</c> 部分中指定
|
/// </remarks>
|
/// <remarks>
|
/// 以升或立方米为流量单位意味着除流量外,所有其他量都使用公制单位。否则将使用美国单位。(参见计量单位)。
|
/// </remarks>
|
public enum FlowUnitsType
|
{
|
/// <summary>立方英尺每秒</summary>
|
Cfs = 0,
|
|
/// <summary>加仑每分</summary>
|
Gpm = 1,
|
|
/// <summary>百万加仑每日</summary>
|
Mgd = 2,
|
|
/// <summary>英制mgd</summary>
|
Imgd = 3,
|
|
/// <summary>英亩—英尺每日</summary>
|
Afd = 4,
|
|
/// <summary>升每秒</summary>
|
Lps = 5,
|
|
/// <summary>升每分</summary>
|
Lpm = 6,
|
|
/// <summary>百万升每日</summary>
|
Mld = 7,
|
|
/// <summary>立方米每时</summary>
|
Cmh = 8,
|
|
/// <summary>立方米每日</summary>
|
Cmd = 9
|
}
|
|
/// <summary>控制类型</summary>
|
/// <remarks>
|
/// 对于管道, setting为0,意味着管道关闭,为1意味着它是开启的。
|
/// 对于水泵, setting包含了水泵转速,为0意味着水泵关闭,为1意味着在常规转速下开启。
|
/// 对于阀门, setting指阀门压力、流量或者损失系数,取决于阀门类型。
|
/// </remarks>
|
/// <remarks>对于计时器或者钟表时间控制,设置 nindex 参数为0</remarks>
|
/// <remarks>
|
/// 有关使用此函数的示例,请参见<see cref="EpanetMethods.ENsetcontrol" />
|
/// </remarks>
|
public enum ControlType
|
{
|
/// <summary>低水位控制</summary>
|
/// <remarks>当水池水位或者节点压力降落到指定水位以下时使用</remarks>
|
LowLevel = 0,
|
|
/// <summary>高水位控制</summary>
|
/// <remarks>当水池水位或者节点压力上升高于指定水位时使用</remarks>
|
HiLevel = 1,
|
|
/// <summary>计时器控制</summary>
|
/// <remarks>在指定时间用于模拟</remarks>
|
Timer = 2,
|
|
/// <summary>钟表时间控制</summary>
|
/// <remarks>使用指定日历时间</remarks>
|
TimeOfDay = 3
|
}
|
|
/// <summary>时间序列统计类型</summary>
|
/// <remarks>
|
/// Used as value in <see cref="EpanetMethods.ENgettimeparam" /> and
|
/// <see cref="EpanetMethods.ENsettimeparam" /> functions
|
/// with <see cref="TimeParameter.Statistic" /> code.
|
/// </remarks>
|
public enum TstatType
|
{
|
/// <summary>无</summary>
|
None = 0,
|
|
/// <summary>均值</summary>
|
Average = 1,
|
|
/// <summary>小值</summary>
|
Minimum = 2,
|
|
/// <summary>大值</summary>
|
Maximum = 3,
|
|
/// <summary>范围</summary>
|
Range = 4
|
}
|
|
/// <summary>
|
/// 蓄水池混合模型
|
/// </summary>
|
public enum MixType
|
{
|
/// <summary>完全混合</summary>
|
Mix1 = 0,
|
|
/// <summary>双室混合</summary>
|
Mix2 = 1,
|
|
/// <summary>柱塞流</summary>
|
Fifo = 2,
|
|
/// <summary>堆栈式柱塞流</summary>
|
Lifo = 3
|
}
|
|
/// <summary>
|
/// 水力状态报告水平
|
/// </summary>
|
public enum StatusLevel
|
{
|
/// <summary>无</summary>
|
None = 0,
|
/// <summary>常规报告</summary>
|
Normal = 1,
|
/// <summary>完整状态报告</summary>
|
FULL = 2
|
}
|
|
/// <summary>
|
/// 其他选项
|
/// </summary>
|
public enum MiscOption
|
{
|
/// <summary>Trials 是在每一模拟水力时间步长中,求解管网水力特性使用的最大试算次数。缺省为40。</summary>
|
MaxTrials = 0,
|
|
/// <summary>Accuracy 指定了确定何时达到水力结果的收敛准则。当所有流量总和改变,来自原先求解除以所有管段的总流量低于该数值时,试算中止。缺省为0.001。</summary>
|
Accuracy = 1,
|
|
/// <summary>Tolerance 是水质水平精度。对于所有水质分析(化合物、水龄(以小时计),或者源头跟踪(以百分比计)),缺省值为0.01</summary>
|
Tolerance = 2,
|
|
/// <summary>Emitter exponent 指定了当计算扩散器的流量时,节点压力上升的幂指数。缺省为0.5。</summary>
|
EmitExpon = 3,
|
|
/// <summary>Demandmult 用于调整所有连接节点的基本需水量数值,以及所有需水量的类型。例如,数值2为两倍的基准需水量,而数值0.5将为它们的一半。缺省值为1.0。</summary>
|
DemandMult = 4
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///<summary>
|
/// Rule 操作
|
/// </summary>
|
public enum Operators { ABOVE, BELOW, EQ, GE, GT, IS, LE, LT, NE, NOT }
|
|
///<summary>
|
/// Rule 对象类型
|
/// </summary>
|
public enum Objects { JUNC, LINK, NODE, PIPE, PUMP, RESERV, SYSTEM, TANK, VALVE }
|
|
///<summary>
|
/// Rule statements.
|
/// </summary>
|
public enum Rulewords { AND, ELSE, ERROR, IF, OR, PRIORITY, RULE, THEN }
|
|
/// <summary>
|
/// Reporting flag.
|
/// </summary>
|
public enum ReportFlag { FALSE = 0, SOME = 2, TRUE = 1 }
|
|
/// <summary>
|
/// 管网变量
|
/// </summary>
|
public enum FieldType
|
{
|
///<summary>nodal elevation</summary>
|
ELEV = 0,
|
///<summary>nodal demand flow</summary>
|
DEMAND = 1,
|
///<summary>nodal hydraulic head</summary>
|
HEAD = 2,
|
///<summary>nodal pressure</summary>
|
PRESSURE = 3,
|
///<summary>nodal water quality</summary>
|
QUALITY = 4,
|
|
///<summary>link length</summary>
|
LENGTH = 5,
|
///<summary>link diameter</summary>
|
DIAM = 6,
|
///<summary>link flow rate</summary>
|
FLOW = 7,
|
///<summary>link flow velocity</summary>
|
VELOCITY = 8,
|
///<summary>link head loss</summary>
|
HEADLOSS = 9,
|
///<summary>avg. water quality in link</summary>
|
LINKQUAL = 10,
|
///<summary>link status</summary>
|
STATUS = 11,
|
///<summary>pump/valve setting</summary>
|
SETTING = 12,
|
///<summary>avg. reaction rate in link</summary>
|
REACTRATE = 13,
|
///<summary>link friction factor</summary>
|
FRICTION = 14,
|
|
///<summary>pump power output</summary>
|
POWER = 15,
|
///<summary>simulation time</summary>
|
TIME = 16,
|
///<summary>tank volume</summary>
|
VOLUME = 17,
|
///<summary>simulation time of day</summary>
|
CLOCKTIME = 18,
|
///<summary>time to fill a tank</summary>
|
FILLTIME = 19,
|
///<summary>time to drain a tank</summary>
|
DRAINTIME = 20
|
}
|
|
///<summary>
|
/// 可用文件类型
|
/// </summary>
|
public enum FileType
|
{
|
NET_FILE,
|
INP_FILE,
|
NULL_FILE,
|
}
|
|
/// <summary>
|
/// 曲线类型
|
/// </summary>
|
public enum CurveType
|
{
|
/// <summary>容积曲线</summary>
|
Volume = 0,
|
|
/// <summary>泵曲线</summary>
|
Pump = 1,
|
|
/// <summary>效率曲线</summary>
|
Efficiency = 2,
|
|
/// <summary>水头损失曲线</summary>
|
HeadLoss = 3
|
}
|
|
///<summary>
|
/// 泵曲线类型
|
///</summary>
|
public enum PumpType
|
{
|
///<summary>Constant horsepower.</summary>
|
CONST_HP = 0,
|
///<summary>Power function.</summary>
|
POWER_FUNC = 1,
|
///<summary>User-defined custom curve.</summary>
|
CUSTOM = 2,
|
/// <summary> </summary>
|
NOCURVE = 3
|
}
|
|
/// <summary>
|
/// 水头损失公式类型
|
/// </summary>
|
public enum HeadLossFormulaType
|
{
|
/// <summary>Hazen-Williams</summary>
|
HW,
|
/// <summary>Darcy-Weisbach</summary>
|
DW,
|
/// <summary>Chezy-Manning</summary>
|
CM
|
}
|
|
/// <summary>
|
/// 单位系统类型
|
/// </summary>
|
public enum UnitsType
|
{
|
/// <summary>SI (metric)</summary>
|
SI,
|
/// <summary>US</summary>
|
US
|
}
|
|
/// <summary>
|
/// 阀门类型
|
/// </summary>
|
public enum ValveType
|
{
|
///<summary> pressure reducing valve</summary>
|
[Keyword("PRV")]
|
PRV = 3,
|
///<summary> pressure sustaining valve</summary>
|
[Keyword("PSV")]
|
PSV = 4,
|
///<summary> pressure breaker valve</summary>
|
[Keyword("PBV")]
|
PBV = 5,
|
///<summary> flow control valve</summary>
|
[Keyword("FCV")]
|
FCV = 6,
|
///<summary> throttle control valve</summary>
|
[Keyword("TCV")]
|
TCV = 7,
|
///<summary> general purpose valve</summary>
|
[Keyword("GPV")]
|
GPV = 8
|
}
|
|
///<summary>
|
/// 管路/水箱/泵 状态
|
/// </summary>
|
public enum StatusType
|
{
|
/// <summary>泵无法输出扬程(关闭)</summary>
|
XHEAD = 0,
|
/// <summary>暂时关闭</summary>
|
TEMPCLOSED = 1,
|
/// <summary>关闭</summary>
|
CLOSED = 2,
|
/// <summary>开启</summary>
|
OPEN = 3,
|
/// <summary>阀门启用(部分打开)</summary>
|
ACTIVE = 4,
|
/// <summary>泵超过最大流量</summary>
|
XFLOW = 5,
|
/// <summary>FCV 无法提供流量</summary>
|
XFCV = 6,
|
/// <summary>阀门无法提供压力</summary>
|
XPRESSURE = 7,
|
/// <summary>水箱加水</summary>
|
FILLING = 8,
|
/// <summary>清空水箱</summary>
|
EMPTYING = 9
|
}
|
|
///<summary>
|
///可用部分类型
|
/// </summary>
|
public enum SectType
|
{
|
TITLE = 0,
|
JUNCTIONS = 1,
|
RESERVOIRS = 2,
|
TANKS = 3,
|
PIPES = 4,
|
PUMPS = 5,
|
VALVES = 6,
|
CONTROLS = 7,
|
RULES = 8,
|
DEMANDS = 9,
|
SOURCES = 10,
|
EMITTERS = 11,
|
PATTERNS = 12,
|
CURVES = 13,
|
QUALITY = 14,
|
STATUS = 15,
|
ROUGHNESS = 16,
|
ENERGY = 17,
|
REACTIONS = 18,
|
MIXING = 19,
|
REPORT = 20,
|
TIMES = 21,
|
OPTIONS = 22,
|
COORDINATES = 23,
|
VERTICES = 24,
|
LABELS = 25,
|
BACKDROP = 26,
|
TAGS = 27,
|
END = 28
|
}
|
|
///<summary>
|
/// 范围限制
|
///</summary>
|
public enum RangeType
|
{
|
///<summary>下限</summary>
|
LOW = 0,
|
///<summary>上限</summary>
|
HI = 1,
|
///<summary>精确度</summary>
|
PREC = 2
|
}
|
|
/// <summary>
|
/// 压力单位
|
/// </summary>
|
public enum PressUnitsType
|
{
|
/// <summary>pounds per square inch</summary>
|
PSI,
|
/// <summary>kiloPascals</summary>
|
KPA,
|
/// <summary>meters</summary>
|
METERS
|
}
|
|
/// <summary>
|
/// 水力解决方案选项
|
/// </summary>
|
public enum HydType
|
{
|
/// <summary>使用上次运行的数据</summary>
|
USE,
|
/// <summary>当前运行后保存</summary>
|
SAVE,
|
/// <summary>使用临时文件</summary>
|
SCRATCH
|
}
|
|
#region TODO: move it to SimulationRule
|
///<summary>Rule variables.</summary>
|
public enum Varwords
|
{
|
CLOCKTIME,
|
DEMAND,
|
DRAINTIME,
|
FILLTIME,
|
FLOW,
|
GRADE,
|
HEAD,
|
LEVEL,
|
POWER,
|
PRESSURE,
|
SETTING,
|
STATUS,
|
TIME
|
}
|
|
///<summary>Rule values types.</summary>
|
public enum Values { IS_NUMBER, IS_OPEN, IS_CLOSED, IS_ACTIVE }
|
|
#endregion
|
}
|