OWA-EPANET Toolkit 2.3
Loading...
Searching...
No Matches
epanet2_2.h File Reference
#include "epanet2_enums.h"

Go to the source code of this file.

Typedefs

typedef struct Project * EN_Project
 The EPANET Project wrapper object.
 

Functions

int DLLEXPORT EN_createproject (EN_Project *ph)
 Creates an EPANET project.
 
int DLLEXPORT EN_deleteproject (EN_Project ph)
 Deletes a currently opened EPANET project.
 
int DLLEXPORT EN_runproject (EN_Project ph, const char *inpFile, const char *rptFile, const char *outFile, void(*pviewprog)(char *))
 Runs a complete EPANET simulation.
 
int DLLEXPORT EN_init (EN_Project ph, const char *rptFile, const char *outFile, int unitsType, int headLossType)
 Initializes an EPANET project.
 
int DLLEXPORT EN_open (EN_Project ph, const char *inpFile, const char *rptFile, const char *outFile)
 Reads an EPANET input file with no errors allowed.
 
int DLLEXPORT EN_openX (EN_Project ph, const char *inpFile, const char *rptFile, const char *outFile)
 Reads an EPANET input file with errors allowed.
 
int DLLEXPORT EN_gettitle (EN_Project ph, char *out_line1, char *out_line2, char *out_line3)
 Retrieves the title lines of the project.
 
int DLLEXPORT EN_settitle (EN_Project ph, const char *line1, const char *line2, const char *line3)
 Sets the title lines of the project.
 
int DLLEXPORT EN_getcomment (EN_Project ph, int object, int index, char *out_comment)
 Retrieves a descriptive comment assigned to a Node, Link, Pattern or Curve.
 
int DLLEXPORT EN_setcomment (EN_Project ph, int object, int index, const char *comment)
 Assigns a descriptive comment to a Node, Link, Pattern or Curve.
 
int DLLEXPORT EN_gettag (EN_Project ph, int object, int index, char *out_tag)
 Retrieves a tag string assigned to a Node or Link.
 
int DLLEXPORT EN_settag (EN_Project ph, int object, int index, const char *tag)
 Assigns a tag string to a Node or Link.
 
int DLLEXPORT EN_getcount (EN_Project ph, int object, int *out_count)
 Retrieves the number of objects of a given type in a project.
 
int DLLEXPORT EN_saveinpfile (EN_Project ph, const char *filename)
 Saves a project's data to an EPANET-formatted text file.
 
int DLLEXPORT EN_close (EN_Project ph)
 Closes a project and frees all of its memory.
 
int DLLEXPORT EN_solveH (EN_Project ph)
 Runs a complete hydraulic simulation with results for all time periods written to a temporary hydraulics file.
 
int DLLEXPORT EN_usehydfile (EN_Project ph, const char *filename)
 Uses a previously saved binary hydraulics file to supply a project's hydraulics.
 
int DLLEXPORT EN_openH (EN_Project ph)
 Opens a project's hydraulic solver.
 
int DLLEXPORT EN_initH (EN_Project ph, int initFlag)
 Initializes a network prior to running a hydraulic analysis.
 
int DLLEXPORT EN_runH (EN_Project ph, long *out_currentTime)
 Computes a hydraulic solution for the current point in time.
 
int DLLEXPORT EN_nextH (EN_Project ph, long *out_tStep)
 Determines the length of time until the next hydraulic event occurs in an extended period simulation.
 
int DLLEXPORT EN_saveH (EN_Project ph)
 Transfers a project's hydraulics results from its temporary hydraulics file to its binary output file, where results are only reported at uniform reporting intervals.
 
int DLLEXPORT EN_savehydfile (EN_Project ph, const char *filename)
 Saves a project's temporary hydraulics file to disk.
 
int DLLEXPORT EN_closeH (EN_Project ph)
 Closes the hydraulic solver freeing all of its allocated memory.
 
int DLLEXPORT EN_solveQ (EN_Project ph)
 Runs a complete water quality simulation with results at uniform reporting intervals written to the project's binary output file.
 
int DLLEXPORT EN_openQ (EN_Project ph)
 Opens a project's water quality solver.
 
int DLLEXPORT EN_initQ (EN_Project ph, int saveFlag)
 Initializes a network prior to running a water quality analysis.
 
int DLLEXPORT EN_runQ (EN_Project ph, long *out_currentTime)
 Makes hydraulic and water quality results at the start of the current time period available to a project's water quality solver.
 
int DLLEXPORT EN_nextQ (EN_Project ph, long *out_tStep)
 Advances a water quality simulation over the time until the next hydraulic event.
 
int DLLEXPORT EN_stepQ (EN_Project ph, long *out_timeLeft)
 Advances a water quality simulation by a single water quality time step.
 
int DLLEXPORT EN_closeQ (EN_Project ph)
 Closes the water quality solver, freeing all of its allocated memory.
 
int DLLEXPORT EN_setreportcallback (EN_Project ph, void(*callback)(void *userData, void *EN_projectHandle, const char *))
 Sets a user-supplied callback function for reporting.
 
int DLLEXPORT EN_setreportcallbackuserdata (EN_Project ph, void *userData)
 Sets a pointer to a client-side data object.
 
int DLLEXPORT EN_writeline (EN_Project ph, const char *line)
 Writes a line of text to a project's report file.
 
int DLLEXPORT EN_report (EN_Project ph)
 Writes simulation results in a tabular format to a project's report file.
 
int DLLEXPORT EN_copyreport (EN_Project ph, const char *filename)
 Copies the current contents of a project's report file to another file.
 
int DLLEXPORT EN_clearreport (EN_Project ph)
 Clears the contents of a project's report file.
 
int DLLEXPORT EN_resetreport (EN_Project ph)
 Resets a project's report options to their default values.
 
int DLLEXPORT EN_setreport (EN_Project ph, const char *format)
 Processes a reporting format command.
 
int DLLEXPORT EN_setstatusreport (EN_Project ph, int level)
 Sets the level of hydraulic status reporting.
 
int DLLEXPORT EN_getversion (int *out_version)
 Retrieves the toolkit API version number.
 
int DLLEXPORT EN_geterror (int errcode, char *out_errmsg, int maxLen)
 Returns the text of an error message generated by an error code.
 
int DLLEXPORT EN_getstatistic (EN_Project ph, int type, double *out_value)
 Retrieves a particular simulation statistic.
 
int DLLEXPORT EN_timetonextevent (EN_Project ph, int *eventType, long *duration, int *elementIndex)
 Gets information about when the next hydraulic time step occurs.
 
int DLLEXPORT EN_getresultindex (EN_Project ph, int type, int index, int *out_value)
 Retrieves the order in which a node or link appears in an output file.
 
int DLLEXPORT EN_getoption (EN_Project ph, int option, double *out_value)
 Retrieves the value of an analysis option.
 
int DLLEXPORT EN_setoption (EN_Project ph, int option, double value)
 Sets the value for an analysis option.
 
int DLLEXPORT EN_getflowunits (EN_Project ph, int *out_units)
 Retrieves a project's flow units.
 
int DLLEXPORT EN_setflowunits (EN_Project ph, int units)
 Sets a project's flow units.
 
int DLLEXPORT EN_gettimeparam (EN_Project ph, int param, long *out_value)
 Retrieves the value of a time parameter.
 
int DLLEXPORT EN_settimeparam (EN_Project ph, int param, long value)
 Sets the value of a time parameter.
 
int DLLEXPORT EN_getqualinfo (EN_Project ph, int *out_qualType, char *out_chemName, char *out_chemUnits, int *out_traceNode)
 Gets information about the type of water quality analysis requested.
 
int DLLEXPORT EN_getqualtype (EN_Project ph, int *out_qualType, int *out_traceNode)
 Retrieves the type of water quality analysis to be run.
 
int DLLEXPORT EN_setqualtype (EN_Project ph, int qualType, const char *chemName, const char *chemUnits, const char *traceNode)
 Sets the type of water quality analysis to run.
 
int DLLEXPORT EN_addnode (EN_Project ph, const char *id, int nodeType, int *out_index)
 Adds a new node to a project.
 
int DLLEXPORT EN_deletenode (EN_Project ph, int index, int actionCode)
 Deletes a node from a project.
 
int DLLEXPORT EN_getnodeindex (EN_Project ph, const char *id, int *out_index)
 Gets the index of a node given its ID name.
 
int DLLEXPORT EN_getnodeid (EN_Project ph, int index, char *out_id)
 Gets the ID name of a node given its index.
 
int DLLEXPORT EN_setnodeid (EN_Project ph, int index, const char *newid)
 Changes the ID name of a node.
 
int DLLEXPORT EN_getnodetype (EN_Project ph, int index, int *out_nodeType)
 Retrieves a node's type given its index.
 
int DLLEXPORT EN_getnodevalue (EN_Project ph, int index, int property, double *out_value)
 Retrieves a property value for a node.
 
int DLLEXPORT EN_getnodevalues (EN_Project ph, int property, double *out_values)
 Retrieves an array of property values for all nodes.
 
int DLLEXPORT EN_setnodevalue (EN_Project ph, int index, int property, double value)
 Sets a property value for a node.
 
int DLLEXPORT EN_setjuncdata (EN_Project ph, int index, double elev, double dmnd, const char *dmndpat)
 Sets a group of properties for a junction node.
 
int DLLEXPORT EN_settankdata (EN_Project ph, int index, double elev, double initlvl, double minlvl, double maxlvl, double diam, double minvol, const char *volcurve)
 Sets a group of properties for a tank node.
 
int DLLEXPORT EN_getcoord (EN_Project ph, int index, double *out_x, double *out_y)
 Gets the (x,y) coordinates of a node.
 
int DLLEXPORT EN_setcoord (EN_Project ph, int index, double x, double y)
 Sets the (x,y) coordinates of a node.
 
int DLLEXPORT EN_getdemandmodel (EN_Project ph, int *out_type, double *out_pmin, double *out_preq, double *out_pexp)
 Retrieves the type of demand model in use and its parameters.
 
int DLLEXPORT EN_setdemandmodel (EN_Project ph, int type, double pmin, double preq, double pexp)
 Sets the type of demand model to use and its parameters.
 
int DLLEXPORT EN_adddemand (EN_Project ph, int nodeIndex, double baseDemand, const char *demandPattern, const char *demandName)
 appends a new demand to a junction node demands list.
 
int DLLEXPORT EN_deletedemand (EN_Project ph, int nodeIndex, int demandIndex)
 deletes a demand from a junction node.
 
int DLLEXPORT EN_getdemandindex (EN_Project ph, int nodeIndex, const char *demandName, int *out_demandIndex)
 Retrieves the index of a node's named demand category.
 
int DLLEXPORT EN_getnumdemands (EN_Project ph, int nodeIndex, int *out_numDemands)
 Retrieves the number of demand categories for a junction node.
 
int DLLEXPORT EN_getbasedemand (EN_Project ph, int nodeIndex, int demandIndex, double *out_baseDemand)
 Gets the base demand for one of a node's demand categories.
 
int DLLEXPORT EN_setbasedemand (EN_Project ph, int nodeIndex, int demandIndex, double baseDemand)
 Sets the base demand for one of a node's demand categories.
 
int DLLEXPORT EN_getdemandpattern (EN_Project ph, int nodeIndex, int demandIndex, int *out_patIndex)
 Retrieves the index of a time pattern assigned to one of a node's demand categories.
 
int DLLEXPORT EN_setdemandpattern (EN_Project ph, int nodeIndex, int demandIndex, int patIndex)
 Sets the index of a time pattern used for one of a node's demand categories.
 
int DLLEXPORT EN_getdemandname (EN_Project ph, int nodeIndex, int demandIndex, char *out_demandName)
 Retrieves the name of a node's demand category.
 
int DLLEXPORT EN_setdemandname (EN_Project ph, int nodeIndex, int demandIdx, const char *demandName)
 Assigns a name to a node's demand category.
 
int DLLEXPORT EN_addlink (EN_Project ph, const char *id, int linkType, const char *fromNode, const char *toNode, int *out_index)
 Adds a new link to a project.
 
int DLLEXPORT EN_deletelink (EN_Project ph, int index, int actionCode)
 Deletes a link from the project.
 
int DLLEXPORT EN_getlinkindex (EN_Project ph, const char *id, int *out_index)
 Gets the index of a link given its ID name.
 
int DLLEXPORT EN_getlinkid (EN_Project ph, int index, char *out_id)
 Gets the ID name of a link given its index.
 
int DLLEXPORT EN_setlinkid (EN_Project ph, int index, const char *newid)
 Changes the ID name of a link.
 
int DLLEXPORT EN_getlinktype (EN_Project ph, int index, int *out_linkType)
 Retrieves a link's type.
 
int DLLEXPORT EN_setlinktype (EN_Project ph, int *inout_index, int linkType, int actionCode)
 Changes a link's type.
 
int DLLEXPORT EN_getlinknodes (EN_Project ph, int index, int *out_node1, int *out_node2)
 Gets the indexes of a link's start- and end-nodes.
 
int DLLEXPORT EN_setlinknodes (EN_Project ph, int index, int node1, int node2)
 Sets the indexes of a link's start- and end-nodes.
 
int DLLEXPORT EN_getlinkvalue (EN_Project ph, int index, int property, double *out_value)
 Retrieves a property value for a link.
 
int DLLEXPORT EN_getlinkvalues (EN_Project ph, int property, double *out_values)
 Retrieves an array of property values for all links.
 
int DLLEXPORT EN_setlinkvalue (EN_Project ph, int index, int property, double value)
 Sets a property value for a link.
 
int DLLEXPORT EN_setpipedata (EN_Project ph, int index, double length, double diam, double rough, double mloss)
 Sets a group of properties for a pipe link.
 
int DLLEXPORT EN_getvertexcount (EN_Project ph, int index, int *out_count)
 Retrieves the number of internal vertex points assigned to a link.
 
int DLLEXPORT EN_getvertex (EN_Project ph, int index, int vertex, double *out_x, double *out_y)
 Retrieves the coordinates of a vertex point assigned to a link.
 
int DLLEXPORT EN_setvertex (EN_Project ph, int index, int vertex, double x, double y)
 Sets the coordinates of a vertex point assigned to a link.
 
int DLLEXPORT EN_setvertices (EN_Project ph, int index, double *x, double *y, int count)
 Assigns a set of internal vertex points to a link.
 
int DLLEXPORT EN_getpumptype (EN_Project ph, int linkIndex, int *out_pumpType)
 Retrieves the type of head curve used by a pump.
 
int DLLEXPORT EN_getheadcurveindex (EN_Project ph, int linkIndex, int *out_curveIndex)
 Retrieves the curve assigned to a pump's head curve.
 
int DLLEXPORT EN_setheadcurveindex (EN_Project ph, int linkIndex, int curveIndex)
 Assigns a curve to a pump's head curve.
 
int DLLEXPORT EN_addpattern (EN_Project ph, const char *id)
 Adds a new time pattern to a project.
 
int DLLEXPORT EN_deletepattern (EN_Project ph, int index)
 Deletes a time pattern from a project.
 
int DLLEXPORT EN_getpatternindex (EN_Project ph, const char *id, int *out_index)
 Retrieves the index of a time pattern given its ID name.
 
int DLLEXPORT EN_getpatternid (EN_Project ph, int index, char *out_id)
 Retrieves the ID name of a time pattern given its index.
 
int DLLEXPORT EN_setpatternid (EN_Project ph, int index, const char *id)
 Changes the ID name of a time pattern given its index.
 
int DLLEXPORT EN_getpatternlen (EN_Project ph, int index, int *out_len)
 Retrieves the number of time periods in a time pattern.
 
int DLLEXPORT EN_getpatternvalue (EN_Project ph, int index, int period, double *out_value)
 Retrieves a time pattern's factor for a given time period.
 
int DLLEXPORT EN_setpatternvalue (EN_Project ph, int index, int period, double value)
 Sets a time pattern's factor for a given time period.
 
int DLLEXPORT EN_getaveragepatternvalue (EN_Project ph, int index, double *out_value)
 Retrieves the average of all pattern factors in a time pattern.
 
int DLLEXPORT EN_setpattern (EN_Project ph, int index, double *values, int len)
 Sets the pattern factors for a given time pattern.
 
int DLLEXPORT EN_loadpatternfile (EN_Project ph, const char *filename, const char *id)
 Loads time patterns from a file into a project under a specific pattern ID.
 
int DLLEXPORT EN_addcurve (EN_Project ph, const char *id)
 Adds a new data curve to a project.
 
int DLLEXPORT EN_deletecurve (EN_Project ph, int index)
 Deletes a data curve from a project.
 
int DLLEXPORT EN_getcurveindex (EN_Project ph, const char *id, int *out_index)
 Retrieves the index of a curve given its ID name.
 
int DLLEXPORT EN_getcurveid (EN_Project ph, int index, char *out_id)
 Retrieves the ID name of a curve given its index.
 
int DLLEXPORT EN_setcurveid (EN_Project ph, int index, const char *id)
 Changes the ID name of a data curve given its index.
 
int DLLEXPORT EN_getcurvelen (EN_Project ph, int index, int *out_len)
 Retrieves the number of points in a curve.
 
int DLLEXPORT EN_getcurvetype (EN_Project ph, int index, int *out_type)
 Retrieves a curve's type.
 
int DLLEXPORT EN_setcurvetype (EN_Project ph, int index, int type)
 Sets a curve's type.
 
int DLLEXPORT EN_getcurvevalue (EN_Project ph, int curveIndex, int pointIndex, double *out_x, double *out_y)
 Retrieves the value of a single data point for a curve.
 
int DLLEXPORT EN_setcurvevalue (EN_Project ph, int curveIndex, int pointIndex, double x, double y)
 Sets the value of a single data point for a curve.
 
int DLLEXPORT EN_getcurve (EN_Project ph, int index, char *out_id, int *out_nPoints, double *out_xValues, double *out_yValues)
 Retrieves all of a curve's data.
 
int DLLEXPORT EN_setcurve (EN_Project ph, int index, double *xValues, double *yValues, int nPoints)
 assigns a set of data points to a curve.
 
int DLLEXPORT EN_addcontrol (EN_Project ph, int type, int linkIndex, double setting, int nodeIndex, double level, int *out_index)
 Adds a new simple control to a project.
 
int DLLEXPORT EN_deletecontrol (EN_Project ph, int index)
 Deletes an existing simple control.
 
int DLLEXPORT EN_getcontrol (EN_Project ph, int index, int *out_type, int *out_linkIndex, double *out_setting, int *out_nodeIndex, double *out_level)
 Retrieves the properties of a simple control.
 
int DLLEXPORT EN_setcontrol (EN_Project ph, int index, int type, int linkIndex, double setting, int nodeIndex, double level)
 Sets the properties of an existing simple control.
 
int DLLEXPORT EN_getcontrolenabled (EN_Project ph, int index, int *out_enabled)
 Gets the enabled status of a simple control.
 
int DLLEXPORT EN_setcontrolenabled (EN_Project ph, int index, int enabled)
 Sets the enabled status of a simple control.
 
int DLLEXPORT EN_addrule (EN_Project ph, char *rule)
 Adds a new rule-based control to a project.
 
int DLLEXPORT EN_deleterule (EN_Project ph, int index)
 Deletes an existing rule-based control.
 
int DLLEXPORT EN_getrule (EN_Project ph, int index, int *out_nPremises, int *out_nThenActions, int *out_nElseActions, double *out_priority)
 Retrieves summary information about a rule-based control.
 
int DLLEXPORT EN_getruleID (EN_Project ph, int index, char *out_id)
 Gets the ID name of a rule-based control given its index.
 
int DLLEXPORT EN_getpremise (EN_Project ph, int ruleIndex, int premiseIndex, int *out_logop, int *out_object, int *out_objIndex, int *out_variable, int *out_relop, int *out_status, double *out_value)
 Gets the properties of a premise in a rule-based control.
 
int DLLEXPORT EN_setpremise (EN_Project ph, int ruleIndex, int premiseIndex, int logop, int object, int objIndex, int variable, int relop, int status, double value)
 Sets the properties of a premise in a rule-based control.
 
int DLLEXPORT EN_setpremiseindex (EN_Project ph, int ruleIndex, int premiseIndex, int objIndex)
 Sets the index of an object in a premise of a rule-based control.
 
int DLLEXPORT EN_setpremisestatus (EN_Project ph, int ruleIndex, int premiseIndex, int status)
 Sets the status being compared to in a premise of a rule-based control.
 
int DLLEXPORT EN_setpremisevalue (EN_Project ph, int ruleIndex, int premiseIndex, double value)
 Sets the value in a premise of a rule-based control.
 
int DLLEXPORT EN_getthenaction (EN_Project ph, int ruleIndex, int actionIndex, int *out_linkIndex, int *out_status, double *out_setting)
 Gets the properties of a THEN action in a rule-based control.
 
int DLLEXPORT EN_setthenaction (EN_Project ph, int ruleIndex, int actionIndex, int linkIndex, int status, double setting)
 Sets the properties of a THEN action in a rule-based control.
 
int DLLEXPORT EN_getelseaction (EN_Project ph, int ruleIndex, int actionIndex, int *out_linkIndex, int *out_status, double *out_setting)
 Gets the properties of an ELSE action in a rule-based control.
 
int DLLEXPORT EN_setelseaction (EN_Project ph, int ruleIndex, int actionIndex, int linkIndex, int status, double setting)
 Sets the properties of an ELSE action in a rule-based control.
 
int DLLEXPORT EN_setrulepriority (EN_Project ph, int index, double priority)
 Sets the priority of a rule-based control.
 
int DLLEXPORT EN_getruleenabled (EN_Project ph, int index, int *out_enabled)
 Gets the enabled status of a rule-based control.
 
int DLLEXPORT EN_setruleenabled (EN_Project ph, int index, int enabled)
 Sets the enabled status of a rule-based control.
 

Detailed Description

Function Documentation

◆ EN_addlink()

int DLLEXPORT EN_addlink ( EN_Project ph,
const char * id,
int linkType,
const char * fromNode,
const char * toNode,
int * out_index )

Adds a new link to a project.

Parameters
phan EPANET project handle.
idthe ID name of the link to be added.
linkTypeThe type of link being added (see EN_LinkType)
fromNodeThe ID name of the link's starting node.
toNodeThe ID name of the link's ending node.
[out]out_indexthe index of the newly added link.
Returns
an error code.

A new pipe is assigned a diameter of 10 inches (254 mm) and a length of 330 feet (~ 100 meters). Its roughness coefficient depends on the head loss formula in effect (see EN_HeadLossType) as follows:

  • Hazen-Williams formula: 130
  • Darcy-Weisbach formula: 0.5 millifeet (0.15 mm)
  • Chezy-Manning formula: 0.01

All other pipe properties are set to 0.

A new pump has a status of EN_OPEN, a speed setting of 1, and has no pump curve or power rating assigned to it.

A new valve has a diameter of 10 inches (254 mm) and all other properties set to 0.

See EN_LinkProperty.

◆ EN_getpatternindex()

int DLLEXPORT EN_getpatternindex ( EN_Project ph,
const char * id,
int * out_index )

Retrieves the index of a time pattern given its ID name.

Parameters
phan EPANET project handle.
idthe ID name of a time pattern.
[out]out_indexthe time pattern's index (starting from 1).
Returns
an error code.