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