Skip to content

Enumerated Types

Enumerations Description
ActionCodeType Deletion action codes.
AnalysisStatistic Analysis convergence statistics.
ControlType Simple control types.
CountType Types of objects to count.
CurveType Types of data curves.
DemandModel Demand models.
FlowUnits Flow units.
HeadLossType Head loss formulas.
InitHydOption Hydraulic initialization options.
LinkProperty Link properties.
LinkStatusType Link status.
LinkType Link types.
MixingModel Tank mixing models.
NodeProperty Node properties.
NodeType Node Types.
ObjectType Types of network objects.
Option Simulation options.
PumpStateType Pump states.
PumpType Types of pump curves.
QualityType Types of water quality analyses.
RuleObject Network objects used in rule-based controls.
RuleOperator Comparison operators used in rule-based controls.
RuleStatus Link status codes used in rule-based controls.
RuleVariable Object variables used in rule-based controls.
SizeLimits Size Limts.
SourceType Water quality source types.
StatisticType Reporting statistic choices.
StatusReport Status reporting levels.
TimeParameter Time parameters.

ActionCodeType

Deletion action codes.

These codes are used in deleteNode and deleteLink to indicate what action should be taken if the node or link being deleted appears in any simple or rule-based controls or if a deleted node has any links connected to it.

Enumeration Members

Member Value Description
Unconditional 0 Delete all controls and connecing links.
Conditional 1 Cancel object deletion if it appears in controls or has connecting links.

AnalysisStatistic

Analysis convergence statistics.

These statistics report the convergence criteria for the most current hydraulic analysis and the cumulative water quality mass balance error at the current simulation time. They can be retrieved with getStatistic.

Enumeration Members

Member Value Description
DeficientNodes 5 Number of pressure deficient nodes.
DemandReduction 6 % demand reduction at pressure deficient nodes
Iterations 0 Number of hydraulic iterations taken.
MassBalance 4 Cumulative water quality mass balance ratio.
MaxFlowChange 3 Largest flow change in links.
MaxHeadError 2 Largest head loss error for links.
RelativeError 1 Sum of link flow changes / sum of link flows.

ControlType

Simple control types.

These are the different types of simple (single statement) controls that can be applied to network links. They are used as an argument to addControl, getControl, and setControl.

Enumeration Members

Member Value Description
HiLevel 1 Act when pressure or tank level rises above a setpoint.
LowLevel 0 Act when pressure or tank level drops below a setpoint.
TimeOfDay 3 Act at a particular time of day.
Timer 2 Act at a prescribed elapsed amount of time.

CountType

Types of objects to count.

These options tell getCount which type of object to count.

Enumeration Members

Member Value Description
ControlCount 5 Number of simple controls.
CurveCount 4 Number of data curves.
LinkCount 2 Number of links (pipes + pumps + valves)
NodeCount 0 Number of nodes (junctions + tanks + reservoirs)
PatCount 3 Number of time patterns.
RuleCount 6 Number of rule-based controls.
TankCount 1 Number of tanks and reservoirs.

CurveType

Types of data curves.

These are the different types of physical relationships that a data curve can represent as returned by calling getCurveType.

Enumeration Members

Member Value Description
EfficCurve 2 Pump efficiency v. flow curve.
GenericCurve 4 Generic curve.
HlossCurve 3 Valve head loss v. flow curve.
PumpCurve 1 Pump head v. flow curve.
VolumeCurve 0 Tank volume v. depth curve.

DemandModel

Demand models.

These choices for modeling consumer demands are used with getDemandModel and setDemandModel.

A demand driven analysis requires that a junction's full demand be supplied in each time period independent of how much pressure is available. A pressure driven analysis makes demand be a power function of pressure, up to the point where the full demand is met.

Enumeration Members

Member Value Description
DDA 0 Demand driven analysis.
PDA 1 Pressure driven analysis.

FlowUnits

Flow units.

These choices for flow units are used with getFlowUnits and setFlowUnits. They are also used for the flow units type argument in init. If flow units are expressed in US Customary units ( CFS, GPM, MGD, IMGD, AFD ) then all other quantities are in US Customary units. Otherwise they are in metric units.

Enumeration Members

Member Value Description
AFD 4 Acre-feet per day.
CFS 0 Cubic feet per second.
CMD 9 Cubic meters per day.
CMH 8 Cubic meters per hour.
GPM 1 Gallons per minute.
IMGD 3 Imperial million gallons per day.
LPM 6 Liters per minute.
LPS 5 Liters per second.
MGD 2 Million gallons per day.
MLD 7 Million liters per day.

HeadLossType

Head loss formulas.

The available choices for Option.HeadlossForm in getOption and setOption. They are also used for the head loss type argument in init. Each head loss formula uses a different type of roughness coefficient ( LinkProperty.Roughness ) that can be set with setLinkValue.

Enumeration Members

Member Value Description
CM 2 Chezy-Manning.
DW 1 Darcy-Weisbach.
HW 0 Hazen-Williams.

InitHydOption

Hydraulic initialization options.

These options are used to initialize a new hydraulic analysis when initH is called.

Enumeration Members

Member Value Description
InitFlow 10 Don't save hydraulics; re-initialize flows.
NoSave 0 Don't save hydraulics; don't re-initialize flows.
Save 1 Save hydraulics to file, don't re-initialize flows.
SaveAndInit 11 Save hydraulics; re-initialize flows.

LinkProperty

Link properties.

These link properties are used with getLinkValue and setLinkValue. Those marked as read only are computed values that can only be retrieved.

Enumeration Members

Member Value Description
Diameter 0 Pipe/valve diameter.
Energy 13 Current computed pump energy usage (read only)
Flow 8 Current computed flow rate (read only)
Headloss 10 Current computed head loss (read only)
InitSetting 5 Initial pump speed or valve setting.
InitStatus 4 Initial status (see LinkStatusType)
KBulk 6 Bulk chemical reaction coefficient.
KWall 7 Pipe wall chemical reaction coefficient.
Length 1 Pipe length.
LinkPattern 15 Pump speed time pattern index.
LinkQual 14 Current computed link quality (read only)
MinorLoss 3 Pipe/valve minor loss coefficient.
PumpECost 21 Pump average energy price.
PumpECurve 20 Pump efficiency v. flow curve index.
PumpEffic 17 Current computed pump efficiency (read only)
PumpEPat 22 Pump energy price time pattern index.
PumpHCurve 19 Pump head v. flow curve index.
PumpPower 18 Pump constant power rating.
PumpState 16 Current computed pump state (read only) (see PumpStateType)
Roughness 2 Pipe roughness coefficient.
Setting 12 Current link setting.
Status 11 Current link status (see LinkStatusType)
Velocity 9 Current computed flow velocity (read only)

LinkStatusType

Link status.

One of these values is returned when getLinkValue is used to retrieve a link's initial status (LinkProperty.InitStatus ) or its current status ( LinkProperty.Status ). These options are also used with setLinkValue to set values for these same properties.

Enumeration Members

Member Value Description
Closed 0
Open 1

LinkType

Link types.

These are the different types of links that can be returned by calling getLinkType.

Enumeration Members

Member Value Description
CVPipe 0 Pipe with check valve.
FCV 6 Flow control valve.
GPV 8 General purpose valve.
PBV 5 Pressure breaker valve.
Pipe 1 Pipe.
PRV 3 Pressure reducing valve.
PSV 4 Pressure sustaining valve.
Pump 2 Pump.
TCV 7 Throttle control valve.

MixingModel

Tank mixing models.

These are the different types of models that describe water quality mixing in storage tanks. The choice of model is accessed with NodeProperty.MixModel property of a Tank node using getNodeValue and setNodeValue.

Enumeration Members

Member Value Description
FIFO 2 First in, first out model.
LIFO 3 Last in, first out model.
Mix1 0 Complete mix model.
Mix2 1 2-compartment model

NodeProperty

Node properties.

These node properties are used with getNodeValue and setNodeValue. Those marked as read only are computed values that can only be retrieved.

Enumeration Members

Member Value Description
BaseDemand 1 Primary demand baseline value.
CanOverFlow 26 Tank can overflow (= 1) or not (= 0)
Demand 9 Current computed demand (read only)
DemandDeficit 27 Amount that full demand is reduced under PDA (read only)
Elevation 0 Elevation.
Emitter 3 Emitter flow coefficient.
Head 10 Current computed hydraulic head (read only)
Initqual 4 Initial quality.
InitVolume 14 Tank initial volume (read only)
MaxLevel 21 Tank maximum level.
MaxVolume 25 Tank maximum volume (read only)
MinLevel 20 Tank minimum level.
MinVolume 18 Tank minimum volume.
MixFraction 22 Tank mixing fraction.
MixModel 15 Tank mixing model (see MixingModel)
MixZoneVol 16 Tank mixing zone volume (read only)
Pattern 2 Primary demand time pattern index.
Pressure 11 Current computed pressure (read only)
Quality 12 Current computed quality (read only)
SourceMass 13 Current computed quality source mass inflow (read only)
SourcePat 6 Quality source pattern index.
SourceQual 5 Quality source strength.
SourceType 7 Quality source type (see SourceType)
TankDiam 17 Tank diameter.
TankKBulk 23 Tank bulk decay coefficient.
TankLevel 8 Current computed tank water level (read only)
TankVolume 24 Current computed tank volume (read only)
VolCurve 19 Tank volume curve index.

NodeType

Node Types.

These are the different types of nodes that can be returned by calling getNodeType.

Enumeration Members

Member Value Description
Junction 0 Junction node.
Reservoir 1 Reservoir node.
Tank 2 Storage tank node.

ObjectType

Types of network objects.

The types of objects that comprise a network model.

Enumeration Members

Member Value Description
Control 4 Simple controls.
Curve 3 Data curves.
Link 1 Links.
Node 0 Nodes.
Rule 5 Control rules.
TimePat 2 Time patterns.

Option

Simulation options.

These constants identify the hydraulic and water quality simulation options that are applied on a network-wide basis. They are accessed using the getOption and setOption functions.

Enumeration Members

Member Value Description
Accuracy 1 Total normalized flow change for hydraulic convergence.
BulkOrder 19 Bulk water reaction order for pipes.
CheckFreq 15 Frequency of hydraulic status checks.
ConcenLimit 22 Limiting concentration for growth reactions.
DampLimit 17 Accuracy level where solution damping begins.
DemandCharge 11 Energy charge per max. KW usage.
DemandMult 4 Global demand multiplier.
Emitexpon 3 Exponent in emitter discharge formula.
FlowChange 6 Maximum flow change for hydraulic convergence.
GlobalEffic 8 Global pump efficiency (percent)
GlobalPattern 10 Index of a global energy price pattern.
GlobalPrice 9 Global energy price per KWH.
HeadError 5 Maximum head loss error for hydraulic convergence.
HeadlossForm 7 Head loss formula (see HeadLossType)
MaxCheck 16 Maximum trials for status checking.
SpDiffus 18 Specific diffusivity (relative to chlorine at 20 deg C)
SpGravity 12 Specific gravity.
SpViscos 13 Specific viscosity (relative to water at 20 deg C)
TankOrder 21 Bulk water reaction order for tanks.
Tolerance 2 Water quality tolerance.
Trials 0 Maximum trials allowed for hydraulic convergence.
Unbalanced 14 Extra trials allowed if hydraulics don't converge.
WallOrder 20 Wall reaction order for pipes (either 0 or 1)

PumpStateType

Pump states.

One of these codes is returned when getLinkValue is used to retrieve a pump's current operating state ( LinkProperty.PumpState ). PumpXHead indicates that the pump has been shut down because it is being asked to deliver more than its shutoff head. PumpXFlow indicates that the pump is being asked to deliver more than its maximum flow.

Enumeration Members

Member Value Description
PumpClosed 2 Pump closed.
PumpOpen 3 Pump open.
PumpXFlow 5 Pump open - cannot supply flow.
PumpXHead 0 Pump closed - cannot supply head.

PumpType

Types of pump curves.

getPumpType returns one of these values when it is called.

Enumeration Members

Member Value Description
ConstHP 0 Constant horsepower.
Custom 2 User-defined custom curve.
NoCurve 3 No curve.
PowerFunc 1 Power function.

QualityType

Types of water quality analyses.

These are the different types of water quality analyses that EPANET can run. They are used with getQualityInfo, getQualityType, and setQualityType.

Enumeration Members

Member Value Description
Age 2 Water age analysis.
Chem 1 Chemical fate and transport.
None 0 No quality analysis.
Trace 3 Source tracing analysis.

RuleObject

Network objects used in rule-based controls.

Enumeration Members

Member Value Description
Link 7 Clause refers to a link.
Node 6 Clause refers to a node.
System 8 Clause refers to a system parameter (e.g., time)

RuleOperator

Comparison operators used in rule-based controls.

Enumeration Members

Member Value Description
Above 9 Is above.
Below 8 Is below.
EqualTo 0 Equal to.
GreaterOrEqualTo 3 Greater than or equal to.
GreaterThan 5 Greater than.
Is 6 Is equal to.
LessOrEqualTo 2 Less than or equal to.
LessThan 4 Less than.
Not 7 Is not equal to.
NotEqualTo 1 Not equal.

RuleStatus

Link status codes used in rule-based controls.

Enumeration Members

Member Value Description
IsActive 3 Control valve is active.
IsClosed 2 Link is closed.
IsOpen 1 Link is open.

RuleVariable

Object variables used in rule-based controls.

Enumeration Members

Member Value Description
ClockTime 10 Time of day.
Demand 0 Nodal demand.
DrainTime 12 Time to drain a tank.
FillTime 11 Time to fill a tank.
Flow 5 Link flow rate.
Grade 2 Nodal hydraulic grade.
Head 1 Nodal hydraulic head.
Level 3 Tank water level.
Power 8 Pump power output.
Pressure 4 Nodal pressure.
Setting 7 Link setting.
Status 6 Link status.
Time 9 Elapsed simulation time.

SizeLimits

Size Limts.

Limits on the size of character arrays used to store ID names and text messages.

Enumeration Members

Member Value Description
MaxId 31 Max. # characters in ID name.
MaxMsg 255 Max. # characters in message text.

SourceType

Water quality source types.

These are the different types of external water quality sources that can be assigned to a node's property ( see NodeProperty.SourceType ) and as used by getNodeValue and setNodeValue.

Enumeration Members

Member Value Description
Concen 0 Sets the concentration of external inflow entering a node.
FlowPaced 3 Adds a given value to the concentration leaving a node.
Mass 1 Injects a given mass/minute into a node.
SetPoint 2 Sets the concentration leaving a node to a given value.

StatisticType

Reporting statistic choices.

These options determine what kind of statistical post-processing should be done on the time series of simulation results generated before they are reported using report. An option can be chosen by using Statistic option as the argument to setReport.

Enumeration Members

Member Value Description
Average 1 Report average value over simulation period.
Maximum 3 Report maximum value over simulation period.
Minimum 2 Report minimum value over simulation period.
Range 4 Report maximum - minimum over simulation period.
Series 0 Report all time series points.

StatusReport

Status reporting levels.

These choices specify the level of status reporting written to a project's report file during a hydraulic analysis. The level is set using the setStatusReport function.

Enumeration Members

Member Value Description
FullReport 2 Full level of status reporting.
NoReport 0 No status reporting.
NormalReport 1 Normal level of status reporting.

TimeParameter

Time parameters.

These time-related options are used with getTimeParameter and setTimeParameter. All times are expressed in seconds The parameters marked as read only are computed values that can only be retrieved.

Enumeration Members

Member Value Description
Duration 0 Total simulation duration.
HaltFlag 13 Flag indicating if the simulation was halted (read only)
HTime 11 Elapsed time of current hydraulic solution (read only)
HydStep 1 Hydraulic time step.
NextEvent 14 Shortest time until a tank becomes empty or full (read only)
NextEventTank 15 Index of tank with shortest time to become empty or full (read only)
PatternStart 4 Time when time patterns begin.
PatternStep 3 Time pattern period.
Periods 9 Number of reporting time periods (read only)
QTime 12 Elapsed time of current quality solution (read only)
QualStep 2 Water quality time step.
ReportStart 6 Time when reporting starts.
ReportStep 5 Reporting time step.
RuleStep 7 Rule-based control evaluation time step.
StartTime 10 Simulation starting time of day.
Statistic 8 Reporting statistic code (see StatisticType)