Files
EPANET/doc/html/_out_file.html
Demetrios G. Eliades c16c861789 HTML Users Guide
2019-11-21 16:58:18 +02:00

267 lines
19 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EPANET: Output File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">EPANET
&#160;<span id="projectnumber">2.2.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="_files.html">Toolkit Files</a></li> </ul>
</div>
</div><!-- top -->
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Output File </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The Output file is an unformatted binary file used to store both hydraulic and water quality results at uniform reporting intervals. It is the third file name supplied to the EN_open function (or second name to EN_init). If an empty string ("") is used as its name then a scratch temporary file will be used. Otherwise the Output file will be saved after the EN_close function is called. Saving this file is useful if further post-processing of the output results are needed.</p>
<p>The function EN_saveH will transfer hydraulic results to the Output file if no water quality analysis will be made. Using EN_solveQ to run a water quality analysis automatically saves both hydraulic and water quality results to this file. If the EN_initQ - EN_runQ - EN_nextQ set of functions is used to perform a water quality analysis, then results will be saved only if the <b>saveflag</b> argument of EN_initQ is set to <b><code>EN_SAVE</code></b>. Again, the need to save results to the Output file is application-dependent. If a formatted output report is to be generated using EN_report, then results must first be saved to the Output file.</p>
<p>The data written to the file is either 4-byte integers, 4-byte floats, or fixed-size strings whose size is a multiple of 4 bytes. This allows the file to be divided conveniently into 4-byte records. The file consists of four sections of the following sizes in bytes:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Section </th><th class="markdownTableHeadNone">Size in Bytes </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Prolog </td><td class="markdownTableBodyNone">884 + 36*Nnodes + 52*Nlinks + 8*Ntanks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Energy Usage </td><td class="markdownTableBodyNone">28*Npumps + 4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Dynamic Results </td><td class="markdownTableBodyNone">(16*Nnodes + 32*Nlinks)*Nperiods </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Epilog </td><td class="markdownTableBodyNone">28 </td></tr>
</table>
<p>where:</p><ul>
<li>Nnodes = number of nodes (junctions + reservoirs + tanks),</li>
<li>Nlinks = number of links (pipes + pumps + valves),</li>
<li>Ntanks = number of tanks and reservoirs,</li>
<li>Npumps = number of pumps,</li>
<li>Nperiods = number of reporting periods.</li>
</ul>
<p>All of these counts are themselves written to the file's Prolog or Epilog sections.</p>
<h1><a class="anchor" id="Output_Prolog"></a>
Prolog Section</h1>
<p>The Prolog section of an EPANET binary output file contains the following data:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Item </th><th class="markdownTableHeadNone">Type </th><th class="markdownTableHeadNone"># Bytes </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Magic Number = 516114521 </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Version (= 200) </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Number of Nodes </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Number of Reservoirs &amp; Tanks </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Number of Links </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Number of Pumps </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Number of Valves </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Water Quality Option - see EN_QualityType </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Traced Node Index </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Flow Units Option </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pressure Units Option:<br />
0 = psi<br />
1 = meters<br />
2 = kPa </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Report Statistic Type - see EN_StatisticType </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Reporting Start Time (sec) </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Reporting Time Step (sec) </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Simulation Duration (sec) </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Project Title (1st line) </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">80 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Project Title (2nd line) </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">80 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Project Title (3rd line) </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">80 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Name of Input File </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">260 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Name of Report File </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">260 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Name of Quality Chemical </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">32 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Chemical Concentration Units </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">32 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">ID String of Each Node </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">32*Nnodes </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">ID String of Each Link </td><td class="markdownTableBodyNone">Char </td><td class="markdownTableBodyNone">32*Nlinks </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Index of Head Node of Each Link </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Index of Tail Node of Each Link </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Type Code of Each Link (see EN_LinkType) </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Node Index of Each Tank </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4*Ntanks </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Surface Area of Each Tank </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Ntanks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Elevation of Each Node </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nnodes </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Length of Each Link </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Diameter of Each Link </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
</table>
<h1><a class="anchor" id="Output_Energy"></a>
Energy Usage Section</h1>
<p>The Energy Usage section of an EPANET binary output file contains the following data:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Item (Repeated for Each Pump) </th><th class="markdownTableHeadNone">Type </th><th class="markdownTableHeadNone"># Bytes </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pump Index in list of links </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Pump Utilization (%) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Average Efficiency (%) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Average kW/MGal (or kW/m^3) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Average kW </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Peak kW </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Average Cost per Day </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Peak Energy Usage (kWh) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
</table>
<h1><a class="anchor" id="Output_Results"></a>
Dynamic Results Section</h1>
<p>The Dynamic Results section of an EPANET binary output file contains the following set of data for each reporting period (the reporting time step is written to the Output File's <a class="el" href="_out_file.html#Output_Prolog">Prolog Section</a> and the number of such steps is written to the <a class="el" href="_out_file.html#Output_Epilog">Epilog Section</a>):</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Item </th><th class="markdownTableHeadNone">Type </th><th class="markdownTableHeadNone"># Bytes </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Demand at Each Node </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nnodes </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Head (Grade) at Each Node </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nnodes </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pressure at Each Node </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nnodes </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Water Quality at Each Node </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nnodes </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Flow in Each Link<br />
(negative for reverse flow) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Velocity in Each Link </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Head Loss per 1000 Units of Length for Each Link<br />
(total head for pumps and head loss for valves) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Average Water Quality in Each Link </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Status Code for Each Link:<br />
0 = closed (pump shutoff head exceeded)<br />
1 = temporarily closed<br />
2 = closed<br />
3 = open<br />
4 = active (partially open)<br />
5 = open (pump max. flow exceeded)<br />
6 = open (FCV can't supply flow)<br />
7 = open (PRV/PSV can't supply pressure) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Setting for Each Link </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Reaction Rate for Each Link (mass/L/day) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Friction Factor for Each Link </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4*Nlinks </td></tr>
</table>
<h1><a class="anchor" id="Output_Epilog"></a>
Epilog Section</h1>
<p>The Epilog section of an EPANET binary output file contains the following data:</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Item </th><th class="markdownTableHeadNone">Type </th><th class="markdownTableHeadNone"># Bytes </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Average bulk reaction rate (mass/hr) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Average wall reaction rate (mass/hr) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Average tank reaction rate (mass/hr) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Average source inflow rate (mass/hr) </td><td class="markdownTableBodyNone">Float </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Number of Reporting Periods </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Warning Flag:<br />
0 = no warnings<br />
1 = warnings were generated </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Magic Number = 516114521 </td><td class="markdownTableBodyNone">Integer </td><td class="markdownTableBodyNone">4 </td></tr>
</table>
</div></div><!-- contents -->
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>