Skip to main content

DWD Power Exploration

Notes

  • In EpanetConsoleCore, we've only coded to allow for power in Pumps.
  • Old documentation seems to indicate that Pipes should have power values as well.

Old Documentation

The following image is taken from "RMX Users Manual-Jan2014.docx", found in DropBox. rmx power in users manual 2014

The following image is taken from "RMX Function Specifications_Nov2013.docx" in DropBox. rmx power in func specs 2013

EPANET Enums

/// Link properties
/**
These link properties are used with @ref EN_getlinkvalue and @ref EN_setlinkvalue.
Those marked as read only are computed values that can only be retrieved.
*/
typedef enum {
EN_DIAMETER = 0, //!< Pipe/valve diameter
EN_LENGTH = 1, //!< Pipe length
EN_ROUGHNESS = 2, //!< Pipe roughness coefficient
EN_MINORLOSS = 3, //!< Pipe/valve minor loss coefficient
EN_INITSTATUS = 4, //!< Initial status (see @ref EN_LinkStatusType)
EN_INITSETTING = 5, //!< Initial pump speed or valve setting
EN_KBULK = 6, //!< Bulk chemical reaction coefficient
EN_KWALL = 7, //!< Pipe wall chemical reaction coefficient
EN_FLOW = 8, //!< Current computed flow rate (read only)
EN_VELOCITY = 9, //!< Current computed flow velocity (read only)
EN_HEADLOSS = 10, //!< Current computed head loss (read only)
EN_STATUS = 11, //!< Current link status (see @ref EN_LinkStatusType)
EN_SETTING = 12, //!< Current link setting
EN_ENERGY = 13, //!< Current computed pump energy usage (read only)
EN_LINKQUAL = 14, //!< Current computed link quality (read only)
EN_LINKPATTERN = 15, //!< Pump speed time pattern index
EN_PUMP_STATE = 16, //!< Current computed pump state (read only) (see @ref EN_PumpStateType)
EN_PUMP_EFFIC = 17, //!< Current computed pump efficiency (read only)
EN_PUMP_POWER = 18, //!< Pump constant power rating ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EN_PUMP_HCURVE = 19, //!< Pump head v. flow curve index
EN_PUMP_ECURVE = 20, //!< Pump efficiency v. flow curve index
EN_PUMP_ECOST = 21, //!< Pump average energy price
EN_PUMP_EPAT = 22, //!< Pump energy price time pattern index
EN_LINK_INCONTROL = 23, //!< Is present in any simple or rule-based control (= 1) or not (= 0)
EN_GPV_CURVE = 24 //!< GPV head loss v. flow curve index
} EN_LinkProperty;

Console Core (C#) Code

        // From EpanetWrapperLinks.cs
public double GetPumpPower(int index)
{
double value = 0;
if (EN.EN_getlinkvalue(this.Project, index, (int)EN_LinkProperty.EN_PUMP_POWER, ref value) == 0)
{
return value;
}
return 0;
}
  • We DO have a section for power in pipe hydraulics, but it's hardcoded to 0 at this time.
  • From what I'm seeing, this might be due to the fact that the C enum was explicitly "EN_PUMP_POWER". However, this might be similar to the reservoir head situation (same enum that's misleadingly named).
  • NEVER MIND! I don't think it's similar. The C code explicitly checks for type PUMP when it does the power calculations. I suspect, then, that the power for pipes in RMX was custom calculated.