diff --git a/.mailmap b/.mailmap index 808fc22..f9154ac 100644 --- a/.mailmap +++ b/.mailmap @@ -6,4 +6,8 @@ Hyoungmin Woo Yunier Soad Jinduan Chen Maurizio Cingi -Elad Salomons \ No newline at end of file +Elad Salomons +Angela Marchi +Angela Marchi +Bryant McDonnell +Marios Kyriakou diff --git a/.travis.yml b/.travis.yml index 69f29f6..3cf3c7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,23 +3,28 @@ language: python env: global: - EPANET_HOME=`pwd` - - BUILD_HOME=buildproducts - - TEST_HOME=tests/epanet-nrtestsuite + - BUILD_HOME=buildprod + - TEST_HOME=nrtestsuite before_install: - sudo apt-get -qq update + - sudo apt-get install -y libboost-test-dev - sudo apt-get install -y swig -install: - - pip install --src build/packages -r tools/requirements.txt +#install: before_script: - mkdir -p $BUILD_HOME - cd $BUILD_HOME - - cmake .. + - cmake -DBUILD_TESTS=1 .. script: - - make + - cmake --build . + # run unit tests + - cd tests + - ctest + # run regression tests - cd $EPANET_HOME - - tools/gen-config.sh $EPANET_HOME/$BUILD_HOME/bin > $TEST_HOME/apps/epanet-$TRAVIS_COMMIT.json + - pip install -r tools/requirements.txt + - tools/before-test.sh $TEST_HOME $EPANET_HOME/$BUILD_HOME/bin $TRAVIS_COMMIT - tools/run-nrtest.sh $TEST_HOME $TRAVIS_COMMIT diff --git a/AUTHORS b/AUTHORS index b12a354..db53f4e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,8 +1,9 @@ # Authors ordered by first contribution. # Generated by tools/update-authors.sh +# and modified to reflect works in the public domain (denoted by ***) -Lew Rossman -Michael Tryby +Lew Rossman *** +Michael Tryby *** Sam Hatchett Feng Shang James Uber @@ -14,7 +15,8 @@ Mike Kane Demetrios Eliades Will Furnass Steffen Macke -Mariosmsk +Marios Kyriakou Elad Salomons Maurizio Cingi Bryant McDonnell +Angela Marchi diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c64c03..3be9d32 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,27 +1,26 @@ -# CMakeLists.txt - CMake configuration file for EPANET 2.0 -# -# CMake is a cross-platform build tool. CMake generates platform native -# makefiles that can be used with your compiler of choice. CMake uses a -# generator concept to represent different build tooling. CMake automatically +# CMakeLists.txt - CMake configuration file for EPANET 2.0 +# +# CMake is a cross-platform build tool. CMake generates platform native +# makefiles that can be used with your compiler of choice. CMake uses a +# generator concept to represent different build tooling. CMake automatically # detects the platform it is running on and generates the appropriate makefiles -# for the platform default compiler. Different generators can also be specified. -# -# Note: CMake requires that your platform build system and compiler are -# properly installed. Build using Visual Studio requires msbuild shell. -# -# Example Usage: -# cd build/cmake +# for the platform default compiler. Different generators can also be specified. +# +# Note: CMake requires that your platform build system and compiler are +# properly installed. Build using Visual Studio requires msbuild shell. +# +# Example Usage: # mkdir buildproducts # cd buildproducts # cmake .. -# make -# +# make +# # Building MSYS on Windows: # ... # cmake -G "MSYS Makefiles" .. -# make -# -# Building Visual Studio on Windows: +# make +# +# Building Visual Studio on Windows: # ... # cmake -G "Visual Studio 10 2010" .. # msbuild /p:Configuration=Release ALL_BUILD.vcxproj @@ -29,26 +28,37 @@ # Generic Invocation: # cmake -E make_directory buildprod # cd build -# cmake -G GENERATOR -DCMAKE_BUILD_TYPE=Release .. +# cmake -G GENERATOR -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=1 .. # cmake --build . --target SOME_TARGET --config Release # # More information: # cmake --help -# +# # CMake is available at https://cmake.org/download/ -# +# cmake_minimum_required (VERSION 2.8.8) project(EPANET) +add_subdirectory(run) +add_subdirectory(tools/epanet-output) -SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) -SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) +IF (BUILD_TESTS) + add_subdirectory(tests) +ENDIF (BUILD_TESTS) + +# Sets for output directory for executables and libraries. +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + +# Sets the position independent code property for all targets SET(CMAKE_POSITION_INDEPENDENT_CODE ON) + IF (APPLE) - SET(CMAKE_INSTALL_NAME_DIR @executable_path) - SET(CMAKE_BUILD_WITH_INSTALL_RPATH ON) +SET(INSTALL_NAME_DIR @executable_path/../lib) +SET(CMAKE_MACOSX_RPATH 1) ENDIF (APPLE) IF (MSVC) @@ -56,31 +66,28 @@ IF (MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) ENDIF (MSVC) -include_directories(include src tools/epanet-output/src) # configure file groups file(GLOB EPANET_SOURCES src/*.c) -set(EPANET_API_HEADER include/epanet2.h) -set(EPANET_CLI_SOURCES run/main.c) -file(GLOB EPANET_OUT_SOURCES tools/epanet-output/src/*.c) -set(EPANET_OUT_HEADER tools/epanet-output/src/epanet_output.h) -file(GLOB EPANET_LIB_ALL src/*.c) + +file(GLOB EPANET_LIB_ALL src/*) source_group("Library" FILES ${EPANET_LIB_ALL}) source_group("CLI" REGULAR_EXPRESSION "run/.*") -source_group("Output" FILES ${EPANET_OUT_SOURCES}) + # the shared library -add_library(epanet SHARED ${EPANET_SOURCES} ${EPANET_API_HEADER}) +add_library(epanet SHARED ${EPANET_SOURCES}) #${EPANET_API_HEADER}) +target_include_directories(epanet PUBLIC ${PROJECT_SOURCE_DIR}/include) -# the standalone executable -add_executable(runepanet ${EPANET_CLI_SOURCES}) -if(NOT MSVC) - target_link_libraries(runepanet LINK_PUBLIC epanet m) -else(NOT MSVC) - target_link_libraries(runepanet LINK_PUBLIC epanet) -endif(NOT MSVC) +# create export lib so we can link against dll using Visual Studio +include(GenerateExportHeader) +GENERATE_EXPORT_HEADER(epanet + BASE_NAME epanet + EXPORT_MACRO_NAME DLLEXPORT + EXPORT_FILE_NAME epanet_export.h + STATIC_DEFINE SHARED_EXPORTS_BUILT_AS_STATIC) -# the binary hydraulics file API -add_library(epanet-output SHARED ${EPANET_OUT_SOURCES} ${EPANET_OUT_HEADERS}) \ No newline at end of file +file(COPY ${CMAKE_CURRENT_BINARY_DIR}/epanet_export.h + DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..828c521 --- /dev/null +++ b/LICENSE @@ -0,0 +1,26 @@ +MIT License + +<<<<<<< HEAD +Works are copyright (c) 2018 their respective AUTHORS, +unless such work is in the Public Domain (again, see AUTHORS) +======= +Copyright (c) 2017 Open Water Analytics +>>>>>>> master + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 4a697d0..dd6f5d7 100755 --- a/README.md +++ b/README.md @@ -5,9 +5,11 @@ EPANET {#epanet-readme} [![Build status](https://ci.appveyor.com/api/projects/status/19wpg4g2cmj3oihl?svg=true)](https://ci.appveyor.com/project/OpenWaterAnalytics/epanet) [![Build Status](https://travis-ci.org/OpenWaterAnalytics/EPANET.svg?branch=master)](https://travis-ci.org/OpenWaterAnalytics/EPANET) -The EPANET Library is a pressurized pipe network hydraulic and water quality analysis toolkit written in C. +## For EPANET-related questions and discussion +For community discussion, FAQ, and roadmapping of the project, go to the [Community Forum](http://community.wateranalytics.org/category/epanet). -If you are interested in using/extending EPANET for academic, personal, or commercial use, then you've come to the right place. For community discussion, FAQ, and roadmapping of the project, go to the [Community Forum](http://community.wateranalytics.org/category/epanet). +## What is on this Repository? +The EPANET Library is a pressurized pipe network hydraulic and water quality analysis toolkit written in C. If you are interested in using/extending EPANET for academic, personal, or commercial use, then you've come to the right place. Please see the [`version 2.1` Release Notes](https://github.com/OpenWaterAnalytics/EPANET/blob/master/ReleaseNotes2_1.md) for information relevant to users of the previous official version (2.00.12). If you would like to contribute by addressing any of the outstanding [Issues](https://github.com/OpenWaterAnalytics/EPANET/issues), then please comment on the Issue, then Fork this repo to your own account and base your commits on the [`dev` branch](https://github.com/OpenWaterAnalytics/EPANET/tree/dev). Once you are finished, you can open a Pull Request to test the code and discuss merging your changes back into the community respository. @@ -15,4 +17,4 @@ A step-by-step tutorial on how to contribute to EPANET using GitHub is also [ava __Note:__ This repository is not affiliated with, or endorsed by, the USEPA. For the last "official" release of EPANET (2.00.12 UI and Toolkit) please go to the [EPA's GitHub repo](https://github.com/USEPA/Water-Distribution-Network-Model) or [the USEPA website](http://www2.epa.gov/water-research/epanet). It is also not the graphical user interface version. This is the hydraulic and water quality solver engine. -However, if you are interested in extending EPANET for academic, personal, or commercial use, then you've come to the right place. For community discussion, FAQ, and roadmapping of the project, go to the [Community Forum](http://community.wateranalytics.org/category/epanet). \ No newline at end of file +However, if you are interested in extending EPANET for academic, personal, or commercial use, then you've come to the right place. For community discussion, FAQ, and roadmapping of the project, go to the [Community Forum](http://community.wateranalytics.org/category/epanet). diff --git a/appveyor.yml b/appveyor.yml index 42eece6..d9ef393 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,42 +7,64 @@ # US EPA - ORD/NRMRL # -version: 2.0.{build} +version: 2.0.{build} -image: - - Visual Studio 2013 +matrix: + allow_failures: + #GROUP: (SUPPORTED/EXPERIMENTAL) + #EXPERIMENTAL is allowed to fail under build matrix + - GROUP: "EXPERIMENTAL" + +environment: + matrix: + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 + GENERATOR: "Visual Studio 10 2010" + GROUP: "SUPPORTED" + BOOST_ROOT: "C:/Libraries/boost" + # New build on Visual Studio 15 2017 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + GENERATOR: "Visual Studio 15 2017" + GROUP: "EXPERIMENTAL" + BOOST_ROOT: "C:/Libraries/boost_1_67_0" # called before repo cloning init: - set EPANET_HOME=%APPVEYOR_BUILD_FOLDER% - set BUILD_HOME=buildprod - - set TEST_HOME=tests\epanet-nrtestsuite - - set NRTEST_SCRIPT=%EPANET_HOME%\%BUILD_HOME%\packages\nrtest\scripts - - set GENERATOR="Visual Studio 10 2010" - -cache: - - C:\ProgramData\chocolatey\bin -> appveyor.yml - - C:\ProgramData\chocolatey\lib -> appveyor.yml - - '%BUILD_HOME% -> CMakeLists.txt' + - set TEST_HOME=nrtestsuite + - set NRTEST_SCRIPT=C:\Python27\Scripts + # See values set + - echo %APPVEYOR_BUILD_WORKER_IMAGE% + - echo %BUILD_HOME% + - echo %GENERATOR% + - echo %BOOST_ROOT% # called after repo clone install: - - choco install swig - - python -m pip install --src %BUILD_HOME%\packages -r tools\requirements.txt + - python -m pip install -r tools\requirements-appveyor.txt # called before build before_build: + - mkdir %BUILD_HOME% - cd %BUILD_HOME% - - cmake -G %GENERATOR% -DCMAKE_BUILD_TYPE=Release .. + - cmake -G "%GENERATOR%" + -DBUILD_TESTS=1 + -DBOOST_ROOT="%BOOST_ROOT%" + -DBoost_USE_STATIC_LIBS="ON" .. # run custom build script build_script: - - cmake --build . --target runepanet --config Release + - cmake --build . --config Release before_test: - cd %EPANET_HOME% - - tools\gen-config.cmd %EPANET_HOME%\%BUILD_HOME%\bin\Release > %TEST_HOME%\apps\epanet-%APPVEYOR_REPO_COMMIT%.json + - tools\before-test.cmd %TEST_HOME% %EPANET_HOME%\%BUILD_HOME%\bin\Release %APPVEYOR_REPO_COMMIT% # run custom test script test_script: + # run unit tests + - cd %BUILD_HOME%\tests + - ctest -C Release + # run regression tests + - cd %EPANET_HOME% - tools\run-nrtest.cmd %NRTEST_SCRIPT% %TEST_HOME% %APPVEYOR_REPO_COMMIT% diff --git a/include/epanet2.bas b/include/epanet2.bas index 789a441..0826a3b 100644 --- a/include/epanet2.bas +++ b/include/epanet2.bas @@ -128,6 +128,8 @@ Public Const EN_ACCURACY = 1 Public Const EN_TOLERANCE = 2 Public Const EN_EMITEXPON = 3 Public Const EN_DEMANDMULT = 4 +Public Const EN_HEADERROR = 5 +Public Const EN_FLOWCHANGE = 6 Public Const EN_LOWLEVEL = 0 ' Control types Public Const EN_HILEVEL = 1 diff --git a/include/epanet2.h b/include/epanet2.h index d5f0aab..112b6f8 100644 --- a/include/epanet2.h +++ b/include/epanet2.h @@ -30,36 +30,37 @@ #define EN_API_FLOAT_TYPE float #endif -// --- define WINDOWS -#undef WINDOWS -#ifdef _WIN32 - #define WINDOWS -#endif -#ifdef __WIN32__ - #define WINDOWS -#endif +// // --- define WINDOWS +// #undef WINDOWS +// #ifdef _WIN32 +// #define WINDOWS +// #endif +// #ifdef __WIN32__ +// #define WINDOWS +// #endif -// --- define DLLEXPORT -#ifndef DLLEXPORT - #ifdef WINDOWS - #ifdef __cplusplus - #define DLLEXPORT __declspec(dllexport) - #else - #define DLLEXPORT __declspec(dllexport) __stdcall - #endif // __cplusplus - #elif defined(CYGWIN) - #define DLLEXPORT __stdcall - #elif defined(__APPLE__) - #ifdef __cplusplus - #define DLLEXPORT - #else - #define DLLEXPORT - #endif - #else - #define DLLEXPORT - #endif -#endif +// // --- define DLLEXPORT +// #ifndef DLLEXPORT +// #ifdef WINDOWS +// #ifdef __cplusplus +// #define DLLEXPORT __declspec(dllexport) +// #else +// #define DLLEXPORT __declspec(dllexport) __stdcall +// #endif // __cplusplus +// #elif defined(CYGWIN) +// #define DLLEXPORT __stdcall +// #elif defined(__APPLE__) +// #ifdef __cplusplus +// #define DLLEXPORT +// #else +// #define DLLEXPORT +// #endif +// #else +// #define DLLEXPORT +// #endif +// #endif +#include "epanet_export.h" // --- Define the EPANET toolkit constants @@ -211,7 +212,9 @@ typedef enum { EN_ACCURACY = 1, EN_TOLERANCE = 2, EN_EMITEXPON = 3, - EN_DEMANDMULT = 4 + EN_DEMANDMULT = 4, + EN_HEADERROR = 5, + EN_FLOWCHANGE = 6 } EN_Option; typedef enum { diff --git a/include/epanet2.vb b/include/epanet2.vb index 44a47a1..fcb71af 100644 --- a/include/epanet2.vb +++ b/include/epanet2.vb @@ -121,6 +121,8 @@ Public Const EN_ACCURACY = 1 Public Const EN_TOLERANCE = 2 Public Const EN_EMITEXPON = 3 Public Const EN_DEMANDMULT = 4 +Public Const EN_HEADERROR = 5 +Public Const EN_FLOWCHANGE = 6 Public Const EN_LOWLEVEL = 0 ' Control types Public Const EN_HILEVEL = 1 diff --git a/run/CMakeLists.txt b/run/CMakeLists.txt new file mode 100644 index 0000000..4822e95 --- /dev/null +++ b/run/CMakeLists.txt @@ -0,0 +1,27 @@ +# EPANET COMMAND LINE EXECUTABLE +cmake_minimum_required (VERSION 3.0.2) + + +# Sets for output directory for executables and libraries. +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + +# Sets the position independent code property for all targets. +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + + +# Set up file groups for exe target +set(EPANET_CLI_SOURCES main.c) +include_directories(include) + +source_group("CLI" FILES ${EPANET_CLI_SOURCES}) + + +# Creates the EPANET command line executable +add_executable(runepanet ${EPANET_CLI_SOURCES}) +if(NOT WIN32) + target_link_libraries(runepanet LINK_PUBLIC epanet m) +else(NOT WIN32) + target_link_libraries(runepanet LINK_PUBLIC epanet) +endif(NOT WIN32) diff --git a/run/main.c b/run/main.c index c2480b1..bda132f 100644 --- a/run/main.c +++ b/run/main.c @@ -5,9 +5,9 @@ #define MAXMSG 255 /* Max. # characters in message text */ #define MAXWARNCODE 99 /* text copied here, no more need of include "text.h" */ -#define FMT01 "\nEPANET Version %d.%d.%d\n" +#define FMT01 "\nEPANET Version %d.%d.%d" #define FMT03 "\n Correct syntax is:\n %s \n" -#define FMT09 "\nEPANET completed.\n" +#define FMT09 "\n\nEPANET completed." #define FMT10 "\nEPANET completed. There are warnings." #define FMT11 "\nEPANET completed. There are errors." @@ -87,7 +87,8 @@ int main(int argc, char *argv[]) /* Call the main control function */ if (strlen(f2)> 0) { /* use stdout for progress messages */ - errcode = ENepanet(f1,f2,f3,writeConsole); + //errcode = ENepanet(f1,f2,f3,writeConsole); + errcode = ENepanet(f1, f2, f3, NULL); } else { /* use stdout for reporting, no progress messages */ @@ -101,21 +102,21 @@ int main(int argc, char *argv[]) return(0); } else { + if (errcode > MAXWARNCODE) printf("\n Fatal Error: "); ENgeterror(errcode, errmsg, MAXMSG); writeConsole(errmsg); if (errcode > MAXWARNCODE) { - /* error */ + // error // writeConsole(FMT11); return(errcode); } else { - /* warning */ + // warning // writeConsole(FMT10); return(0); } } - } /* End of main */ diff --git a/src/epanet.c b/src/epanet.c index 5b1d7db..f4746bc 100644 --- a/src/epanet.c +++ b/src/epanet.c @@ -71,11 +71,12 @@ This module calls the following functions that reside in other modules: runhyd() nexthyd() closehyd() - resistance() tankvolume() getenergy() setlinkstatus() setlinksetting() + HYDCOEFFS + resistcoeff() QUALITY.C openqual() initqual() @@ -108,6 +109,10 @@ execute function x and set the error code equal to its return value. #ifdef __WIN32__ #define WINDOWS #endif +#ifdef WINDOWS +#include +#endif + /************************************************************/ #include @@ -125,7 +130,7 @@ execute function x and set the error code equal to its return value. #include "text.h" #include "types.h" #define EXTERN -#include "epanet2.h" +////////////////////////////////////////////#include "epanet2.h" #include "vars.h" /**************************************************************** @@ -186,208 +191,282 @@ int DLLEXPORT ENsaveinpfile(char *filename) { } int DLLEXPORT ENclose() { return EN_close(_defaultModel); } + int DLLEXPORT ENsolveH() { return EN_solveH(_defaultModel); } + int DLLEXPORT ENsaveH() { return EN_saveH(_defaultModel); } + int DLLEXPORT ENopenH() { return EN_openH(_defaultModel); } + int DLLEXPORT ENinitH(int flag) { return EN_initH(_defaultModel, flag); } + int DLLEXPORT ENrunH(long *t) { return EN_runH(_defaultModel, t); } + int DLLEXPORT ENnextH(long *tstep) { return EN_nextH(_defaultModel, tstep); } + int DLLEXPORT ENcloseH() { return EN_closeH(_defaultModel); } + int DLLEXPORT ENsavehydfile(char *filename) { return EN_savehydfile(_defaultModel, filename); } + int DLLEXPORT ENusehydfile(char *filename) { return EN_usehydfile(_defaultModel, filename); } + int DLLEXPORT ENsolveQ() { return EN_solveQ(_defaultModel); } + int DLLEXPORT ENopenQ() { return EN_openQ(_defaultModel); } + int DLLEXPORT ENinitQ(int saveflag) { return EN_initQ(_defaultModel, saveflag); } + int DLLEXPORT ENrunQ(long *t) { return EN_runQ(_defaultModel, t); } + int DLLEXPORT ENnextQ(long *tstep) { return EN_nextQ(_defaultModel, tstep); } + int DLLEXPORT ENstepQ(long *tleft) { return EN_stepQ(_defaultModel, tleft); } + int DLLEXPORT ENcloseQ() { return EN_closeQ(_defaultModel); } + int DLLEXPORT ENwriteline(char *line) { return EN_writeline(_defaultModel, line); } + int DLLEXPORT ENreport() { return EN_report(_defaultModel); } + int DLLEXPORT ENresetreport() { return EN_resetreport(_defaultModel); } + int DLLEXPORT ENsetreport(char *s) { return EN_setreport(_defaultModel, s); } + int DLLEXPORT ENgetversion(int *v) { return EN_getversion(v); } + int DLLEXPORT ENgetcontrol(int cindex, int *ctype, int *lindex, EN_API_FLOAT_TYPE *setting, int *nindex, EN_API_FLOAT_TYPE *level) { return EN_getcontrol(_defaultModel, cindex, ctype, lindex, setting, nindex, level); } + int DLLEXPORT ENgetcount(int code, int *count) { return EN_getcount(_defaultModel, (EN_CountType)code, count); } + int DLLEXPORT ENgetoption(int code, EN_API_FLOAT_TYPE *value) { return EN_getoption(_defaultModel, (EN_Option)code, value); } + int DLLEXPORT ENgettimeparam(int code, long *value) { return EN_gettimeparam(_defaultModel, code, value); } + int DLLEXPORT ENgetflowunits(int *code) { return EN_getflowunits(_defaultModel, code); } + int DLLEXPORT ENsetflowunits(int code) { return EN_setflowunits(_defaultModel, code); } + int DLLEXPORT ENgetpatternindex(char *id, int *index) { return EN_getpatternindex(_defaultModel, id, index); } + int DLLEXPORT ENgetpatternid(int index, char *id) { return EN_getpatternid(_defaultModel, index, id); } + int DLLEXPORT ENgetpatternlen(int index, int *len) { return EN_getpatternlen(_defaultModel, index, len); } + int DLLEXPORT ENgetpatternvalue(int index, int period, EN_API_FLOAT_TYPE *value) { return EN_getpatternvalue(_defaultModel, index, period, value); } + int DLLEXPORT ENgetcurveindex(char *id, int *index) { return EN_getcurveindex(_defaultModel, id, index); } + int DLLEXPORT ENgetcurveid(int index, char *id) { return EN_getcurveid(_defaultModel, index, id); } + int DLLEXPORT ENgetcurvelen(int index, int *len) { return EN_getcurvelen(_defaultModel, index, len); } + int DLLEXPORT ENgetcurvevalue(int index, int pnt, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y) { return EN_getcurvevalue(_defaultModel, index, pnt, x, y); } + int DLLEXPORT ENgetqualtype(int *qualcode, int *tracenode) { return EN_getqualtype(_defaultModel, qualcode, tracenode); } + int DLLEXPORT ENgetqualinfo(int *qualcode, char *chemname, char *chemunits, int *tracenode) { return EN_getqualinfo(_defaultModel, qualcode, chemname, chemunits, tracenode); } + int DLLEXPORT ENgeterror(int errcode, char *errmsg, int n) { return EN_geterror(errcode, errmsg, n); } + int DLLEXPORT ENgetstatistic(int code, EN_API_FLOAT_TYPE *value) { return EN_getstatistic(_defaultModel, code, value); } + int DLLEXPORT ENgetnodeindex(char *id, int *index) { return EN_getnodeindex(_defaultModel, id, index); } + int DLLEXPORT ENgetnodeid(int index, char *id) { return EN_getnodeid(_defaultModel, index, id); } + int DLLEXPORT ENgetnodetype(int index, int *code) { return EN_getnodetype(_defaultModel, index, code); } + int DLLEXPORT ENgetcoord(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y) { return EN_getcoord(_defaultModel, index, x, y); } + int DLLEXPORT ENsetcoord(int index, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y) { return EN_setcoord(_defaultModel, index, x, y); } + int DLLEXPORT ENgetnodevalue(int index, int code, EN_API_FLOAT_TYPE *value) { return EN_getnodevalue(_defaultModel, index, code, value); } + int DLLEXPORT ENgetlinkindex(char *id, int *index) { return EN_getlinkindex(_defaultModel, id, index); } + int DLLEXPORT ENgetlinkid(int index, char *id) { return EN_getlinkid(_defaultModel, index, id); } + int DLLEXPORT ENgetlinktype(int index, EN_LinkType *code) { return EN_getlinktype(_defaultModel, index, code); } + int DLLEXPORT ENgetlinknodes(int index, int *node1, int *node2) { return EN_getlinknodes(_defaultModel, index, node1, node2); } + int DLLEXPORT ENgetlinkvalue(int index, int code, EN_API_FLOAT_TYPE *value) { return EN_getlinkvalue(_defaultModel, index, (EN_LinkProperty)code, value); } + int DLLEXPORT ENgetcurve(int curveIndex, char *id, int *nValues, EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues) { return EN_getcurve(_defaultModel, curveIndex, id, nValues, xValues, yValues); } + int DLLEXPORT ENsetcontrol(int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level) { return EN_setcontrol(_defaultModel, cindex, ctype, lindex, setting, nindex, level); } + int DLLEXPORT ENsetnodevalue(int index, int code, EN_API_FLOAT_TYPE v) { return EN_setnodevalue(_defaultModel, index, code, v); } + int DLLEXPORT ENsetlinkvalue(int index, int code, EN_API_FLOAT_TYPE v) { return EN_setlinkvalue(_defaultModel, index, code, v); } + int DLLEXPORT ENaddpattern(char *id) { return EN_addpattern(_defaultModel, id); } + int DLLEXPORT ENsetpattern(int index, EN_API_FLOAT_TYPE *f, int n) { return EN_setpattern(_defaultModel, index, f, n); } + int DLLEXPORT ENsetpatternvalue(int index, int period, EN_API_FLOAT_TYPE value) { return EN_setpatternvalue(_defaultModel, index, period, value); } + int DLLEXPORT ENaddcurve(char *id) { return EN_addcurve(_defaultModel, id); } + int DLLEXPORT ENsetcurve(int index, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y, int n) { return EN_setcurve(_defaultModel, index, x, y, n); } + int DLLEXPORT ENsetcurvevalue(int index, int pnt, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y) { return EN_setcurvevalue(_defaultModel, index, pnt, x, y); } + int DLLEXPORT ENsettimeparam(int code, long value) { return EN_settimeparam(_defaultModel, code, value); } + int DLLEXPORT ENsetoption(int code, EN_API_FLOAT_TYPE v) { return EN_setoption(_defaultModel, code, v); } + int DLLEXPORT ENsetstatusreport(int code) { return EN_setstatusreport(_defaultModel, code); } + int DLLEXPORT ENsetqualtype(int qualcode, char *chemname, char *chemunits, char *tracenode) { return EN_setqualtype(_defaultModel, qualcode, chemname, chemunits, tracenode); } + int DLLEXPORT ENgetheadcurveindex(int index, int *curveindex) { return EN_getheadcurveindex(_defaultModel, index, curveindex); } + int DLLEXPORT ENsetheadcurveindex(int index, int curveindex) { return EN_setheadcurveindex(_defaultModel, index, curveindex); } + int DLLEXPORT ENgetpumptype(int index, int *type) { return EN_getpumptype(_defaultModel, index, type); } + int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands) { return EN_getnumdemands(_defaultModel, nodeIndex, numDemands); } + int DLLEXPORT ENgetbasedemand(int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE *baseDemand) { return EN_getbasedemand(_defaultModel, nodeIndex, demandIdx, baseDemand); } + int DLLEXPORT ENsetbasedemand(int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE baseDemand) { return EN_setbasedemand(_defaultModel, nodeIndex, demandIdx, baseDemand); } + int DLLEXPORT ENgetdemandpattern(int nodeIndex, int demandIdx, int *pattIdx) { return EN_getdemandpattern(_defaultModel, nodeIndex, demandIdx, pattIdx); } + int DLLEXPORT ENgetaveragepatternvalue(int index, EN_API_FLOAT_TYPE *value) { return EN_getaveragepatternvalue(_defaultModel, index, value); } -int DLLEXPORT ENgetrule(int index, int *nPremises, int *nTrueActions, int *nFalseActions, EN_API_FLOAT_TYPE *priority) { + +int DLLEXPORT ENgetrule(int index, int *nPremises, int *nTrueActions, + int *nFalseActions, EN_API_FLOAT_TYPE *priority) { return EN_getrule(_defaultModel, index, nPremises, nTrueActions, nFalseActions, priority); } @@ -415,19 +494,23 @@ int DLLEXPORT ENsetpremisevalue(int indexRule, int indexPremise, EN_API_FLOAT_TY return EN_setpremisevalue(_defaultModel, indexRule, indexPremise, value); } -int DLLEXPORT ENgettrueaction(int indexRule, int indexAction, int *indexLink, int *status, EN_API_FLOAT_TYPE *setting){ +int DLLEXPORT ENgettrueaction(int indexRule, int indexAction, int *indexLink, + int *status, EN_API_FLOAT_TYPE *setting){ return EN_gettrueaction(_defaultModel, indexRule, indexAction, indexLink, status, setting); } -int DLLEXPORT ENsettrueaction(int indexRule, int indexAction, int indexLink, int status, EN_API_FLOAT_TYPE setting){ +int DLLEXPORT ENsettrueaction(int indexRule, int indexAction, int indexLink, + int status, EN_API_FLOAT_TYPE setting){ return EN_settrueaction(_defaultModel, indexRule, indexAction, indexLink, status, setting); } -int DLLEXPORT ENgetfalseaction(int indexRule, int indexAction, int *indexLink, int *status, EN_API_FLOAT_TYPE *setting){ +int DLLEXPORT ENgetfalseaction(int indexRule, int indexAction, int *indexLink, + int *status, EN_API_FLOAT_TYPE *setting){ return EN_getfalseaction(_defaultModel, indexRule, indexAction, indexLink, status, setting); } -int DLLEXPORT ENsetfalseaction(int indexRule, int indexAction, int indexLink, int status, EN_API_FLOAT_TYPE setting){ +int DLLEXPORT ENsetfalseaction(int indexRule, int indexAction, int indexLink, + int status, EN_API_FLOAT_TYPE setting){ return EN_setfalseaction(_defaultModel, indexRule, indexAction, indexLink, status, setting); } @@ -438,16 +521,20 @@ int DLLEXPORT ENgetruleID(int indexRule, char* id){ int DLLEXPORT ENsetlinktype(char *id, EN_LinkType toType) { return EN_setlinktype(_defaultModel, id, toType); } + int DLLEXPORT ENaddnode(char *id, EN_NodeType nodeType) { return EN_addnode(_defaultModel, id, nodeType); } + int DLLEXPORT ENaddlink(char *id, EN_LinkType linkType, char *fromNode, char *toNode) { return EN_addlink(_defaultModel, id, linkType, fromNode, toNode); } + int DLLEXPORT ENdeletelink(int index) { return EN_deletelink(_defaultModel, index); } + int DLLEXPORT ENdeletenode(int index) { return EN_deletenode(_defaultModel, index); } @@ -734,7 +821,6 @@ int DLLEXPORT EN_solveH(EN_ProjectHandle ph) tstep = 0; ERRCODE(EN_runH(ph, &t)); ERRCODE(EN_nextH(ph, &tstep)); - /*** Updated 6/24/02 ***/ writecon("\b\b\b\b\b\b\b\b\b\b"); } while (tstep > 0); @@ -858,8 +944,10 @@ int DLLEXPORT EN_initH(EN_ProjectHandle ph, int flag) errcode = openhydfile(p); if (!errcode) p->save_options.Saveflag = TRUE; - else + else { errmsg(p, errcode); + return errcode; + } } /* Initialize hydraulics */ @@ -1333,6 +1421,14 @@ int DLLEXPORT EN_getoption(EN_ProjectHandle ph, EN_Option code, case EN_DEMANDMULT: v = hyd->Dmult; break; + + case EN_HEADERROR: + v = hyd->HeadErrorLimit * Ucf[HEAD]; + break; + case EN_FLOWCHANGE: + v = hyd->FlowChangeLimit * Ucf[FLOW]; + break; + default: return (251); } @@ -1627,11 +1723,12 @@ int DLLEXPORT EN_getqualtype(EN_ProjectHandle ph, int *qualcode, int *tracenode) return (0); } -int DLLEXPORT EN_getqualinfo(EN_ProjectHandle ph, int *qualcode, char *chemname, - char *chemunits, int *tracenode) { - EN_Project *p = (EN_Project*)ph; - ENgetqualtype(qualcode, tracenode); +int DLLEXPORT EN_getqualinfo(EN_Project *p, int *qualcode, char *chemname, + char *chemunits, int *tracenode) { + + EN_getqualtype(p, qualcode, tracenode); + if (p->quality.Qualflag == TRACE) { strncpy(chemname, "", MAXID); strncpy(chemunits, "dimensionless", MAXID); @@ -1665,7 +1762,7 @@ int DLLEXPORT EN_geterror(int errcode, char *errmsg, int n) { strncpy(errmsg, WARN6, n); break; default: - geterrmsg(n, newMsg); + geterrmsg(errcode, newMsg); strncpy(errmsg, newMsg, n); } if (strlen(errmsg) == 0) @@ -2720,7 +2817,7 @@ int DLLEXPORT EN_setlinkvalue(EN_ProjectHandle ph, int index, int code, r = Link[index].Diam / value; /* Ratio of old to new diam */ Link[index].Km *= SQR(r) * SQR(r); /* Adjust minor loss factor */ Link[index].Diam = value; /* Update diameter */ - resistance(p, index); /* Update resistance factor */ + resistcoeff(p, index); /* Update resistance coeff. */ } break; @@ -2729,7 +2826,7 @@ int DLLEXPORT EN_setlinkvalue(EN_ProjectHandle ph, int index, int code, if (value <= 0.0) return (202); Link[index].Len = value / Ucf[ELEV]; - resistance(p, index); + resistcoeff(p, index); } break; @@ -2740,7 +2837,7 @@ int DLLEXPORT EN_setlinkvalue(EN_ProjectHandle ph, int index, int code, Link[index].Kc = value; if (hyd->Formflag == DW) Link[index].Kc /= (1000.0 * Ucf[ELEV]); - resistance(p, index); + resistcoeff(p, index); } break; @@ -3259,6 +3356,18 @@ int DLLEXPORT EN_setoption(EN_ProjectHandle ph, int code, EN_API_FLOAT_TYPE v) return (202); hyd->Dmult = value; break; + + case EN_HEADERROR: + if (value < 0.0) + return (202); + hyd->HeadErrorLimit = value / Ucf[HEAD]; + break; + case EN_FLOWCHANGE: + if (value < 0.0) + return (202); + hyd->FlowChangeLimit = value / Ucf[FLOW]; + break; + default: return (251); } @@ -3518,7 +3627,7 @@ int openhydfile(EN_Project *p) out->HydFile = NULL; switch (out->Hydflag) { case SCRATCH: - getTmpName(p, out->HydFname); + getTmpName(p, out->HydFname); out->HydFile = fopen(out->HydFname, "w+b"); break; case SAVE: @@ -3936,7 +4045,6 @@ void freedata(EN_Project *p) ---------------------------------------------------------------- */ -/*** New function for 2.00.12 ***/ char *getTmpName(EN_Project *p, char *fname) // // Input: fname = file name string @@ -3944,7 +4052,25 @@ char *getTmpName(EN_Project *p, char *fname) // Purpose: creates a temporary file name with path prepended to it. // { - out_file_t *out = &p->out_files; + +#ifdef _WIN32 + + char* name = NULL; + + // --- use Windows _tempnam function to get a pointer to an + // unused file name that begins with "en" + name = _tempnam(NULL, "en"); + if (name == NULL) return NULL; + + // --- copy the file name to fname + if (strlen(name) < MAXFNAME) strncpy(fname, name, MAXFNAME); + else fname = NULL; + + // --- free the pointer returned by _tempnam + if (name) free(name); + +/* +/////////////////// DEPRECATED ///////////////////////////////////// // --- for Windows systems: #ifdef WINDOWS // --- use system function tmpnam() to create a temporary file name @@ -3970,6 +4096,7 @@ char *getTmpName(EN_Project *p, char *fname) // --- now add the prefix to the file name strcat(fname, name); +*/ // --- for non-Windows systems: #else @@ -4362,16 +4489,15 @@ int DLLEXPORT EN_addnode(EN_ProjectHandle ph, char *id, EN_NodeType nodeType) { qu->NodeQual = (double *)realloc(qu->NodeQual, (net->Nnodes + 2) * sizeof(double)); hyd->NodeHead = (double *)realloc(hyd->NodeHead, (net->Nnodes + 2) * sizeof(double)); - nIdx = net->Nnodes + 1; - node = &net->Node[nIdx]; - coord = &net->Coord[nIdx]; - if (nodeType == EN_JUNCTION) { net->Njuncs++; - + nIdx = net->Njuncs; + node = &net->Node[nIdx]; + coord = &net->Coord[nIdx]; + demand = (struct Sdemand *)malloc(sizeof(struct Sdemand)); demand->Base = 0.0; - demand->Pat = 0; + demand->Pat = hyd->DefPat; // Use default pattern demand->next = NULL; node->D = demand; @@ -4396,6 +4522,9 @@ int DLLEXPORT EN_addnode(EN_ProjectHandle ph, char *id, EN_NodeType nodeType) { } } } else { + nIdx = net->Nnodes++; + node = &net->Node[nIdx]; + coord = &net->Coord[nIdx]; net->Ntanks++; /* resize tanks array */ @@ -4436,8 +4565,7 @@ int DLLEXPORT EN_addnode(EN_ProjectHandle ph, char *id, EN_NodeType nodeType) { node->C0 = 0; node->Ke = 0; node->Rpt = 0; - - + coord->HaveCoords = FALSE; coord->X = 0; coord->Y = 0; diff --git a/src/funcs.h b/src/funcs.h index c000515..ef20044 100755 --- a/src/funcs.h +++ b/src/funcs.h @@ -31,32 +31,34 @@ AUTHOR: L. Rossman #include "types.h" -void initpointers(EN_Project *p); /* Initializes pointers */ -int allocdata(EN_Project *p); /* Allocates memory */ -void freeTmplist(STmplist *); /* Frees items in linked list */ -void freeFloatlist(SFloatlist *); /* Frees list of floats */ -void freedata(EN_Project *p); /* Frees allocated memory */ -int openfiles(EN_Project *p, const char *, const char *, const char *); /* Opens input & report files */ -int openhydfile(EN_Project *p); /* Opens hydraulics file */ -int openoutfile(EN_Project *p); /* Opens binary output file */ -int strcomp(const char *, const char *); /* Compares two strings */ -char* getTmpName(EN_Project *p, char* fname); /* Gets temporary file name */ -double interp(int, double *,double *, double); /* Interpolates a data curve */ +void initpointers(EN_Project *pr); /* Initializes pointers */ +int allocdata(EN_Project *pr); /* Allocates memory */ +void freeTmplist(STmplist *); /* Frees items in linked list */ +void freeFloatlist(SFloatlist *); /* Frees list of floats */ +void freedata(EN_Project *pr); /* Frees allocated memory */ +int openfiles(EN_Project *pr, const char *, + const char *,const char *); /* Opens input & report files */ +int openhydfile(EN_Project *pr); /* Opens hydraulics file */ +int openoutfile(EN_Project *pr); /* Opens binary output file */ +int strcomp(const char *, const char *); /* Compares two strings */ +char* getTmpName(EN_Project *p, char* fname); /* Gets temporary file name */ +double interp(int n, double x[], double y[], + double xx); /* Interpolates a data curve */ -int findnode(EN_Network *n, char *); /* Finds node's index from ID */ -int findlink(EN_Network *n, char *); /* Finds link's index from ID */ -int findtank(EN_Network *n, int); /* Find tank index from node index */ // (AH) -int findvalve(EN_Network *n, int); /* Find valve index from node index */ // (AH) -int findpump(EN_Network *n, int); /* Find pump index from node index */ // (AH) -char *geterrmsg(int errcode, char *msg); /* Gets text of error message */ -void errmsg(EN_Project *p, int); /* Reports program error */ -void writecon(const char *); /* Writes text to console */ -void writewin(void (*vp)(char *), char *); /* Passes text to calling app */ +int findnode(EN_Network *n, char *); /* Finds node's index from ID */ +int findlink(EN_Network *n, char *); /* Finds link's index from ID */ +int findtank(EN_Network *n, int); /* Find tank index from node index */ // (AH) +int findvalve(EN_Network *n, int); /* Find valve index from node index */ // (AH) +int findpump(EN_Network *n, int); /* Find pump index from node index */ // (AH) +char *geterrmsg(int errcode, char *msg); /* Gets text of error message */ +void errmsg(EN_Project *p, int); /* Reports program error */ +void writecon(const char *); /* Writes text to console */ +void writewin(void (*vp)(char *), char *); /* Passes text to calling app */ /* ------- INPUT1.C --------------------*/ int getdata(EN_Project *pr); /* Gets network data */ void setdefaults(EN_Project *pr); /* Sets default values */ -void initreport(report_options_t *r); /* Initializes report options */ +void initreport(report_options_t *r); /* Initializes report options */ void adjustdata(EN_Project *pr); /* Adjusts input data */ int inittanks(EN_Project *pr); /* Initializes tank levels */ void initunits(EN_Project *pr); /* Determines reporting units */ @@ -65,23 +67,24 @@ void convertunits(EN_Project *pr); /* Converts data to std. uni /* -------- INPUT2.C -------------------*/ int netsize(EN_Project *pr); /* Determines network size */ int readdata(EN_Project *pr); /* Reads in network data */ -int newline(EN_Project *pr, int, char *); /* Processes new line of data */ -int addnodeID(EN_Network *n, int, char *); /* Adds node ID to data base */ -int addlinkID(EN_Network *n, int, char *); /* Adds link ID to data base */ -int addpattern(parser_data_t *par, char *); /* Adds pattern to data base */ -int addcurve(parser_data_t *par, char *); /* Adds curve to data base */ -STmplist *findID(char *, STmplist *); /* Locates ID on linked list */ +int newline(EN_Project *pr, int, char *); /* Processes new line of data */ +int addnodeID(EN_Network *n, int, char *); /* Adds node ID to data base */ +int addlinkID(EN_Network *n, int, char *); /* Adds link ID to data base */ +int addpattern(parser_data_t *par, char *); /* Adds pattern to data base */ +int addcurve(parser_data_t *par, char *); /* Adds curve to data base */ +STmplist *findID(char *, STmplist *); /* Locates ID on linked list */ int unlinked(EN_Project *pr); /* Checks for unlinked nodes */ int getpumpparams(EN_Project *pr); /* Computes pump curve coeffs.*/ int getpatterns(EN_Project *pr); /* Gets pattern data from list*/ int getcurves(EN_Project *pr); /* Gets curve data from list */ -int findmatch(char *, char *[]); /* Finds keyword in line */ -int match(const char *, const char *); /* Checks for word match */ -int gettokens(char *s, char** Tok, int maxToks, char *comment); /* Tokenizes input line */ -int getfloat(char *, double *); /* Converts string to double */ -double hour(char *, char *); /* Converts time to hours */ -int setreport(EN_Project *pr, char *); /* Processes reporting command*/ -void inperrmsg(EN_Project *pr, int,int,char *); /* Input error message */ +int findmatch(char *, char *[]); /* Finds keyword in line */ +int match(const char *, const char *); /* Checks for word match */ +int gettokens(char *s, char** Tok, int maxToks, + char *comment); /* Tokenizes input line */ +int getfloat(char *, double *); /* Converts string to double */ +double hour(char *, char *); /* Converts time to hours */ +int setreport(EN_Project *pr, char *); /* Processes reporting command*/ +void inperrmsg(EN_Project *pr, int,int,char *); /* Input error message */ /* ---------- INPUT3.C -----------------*/ int juncdata(EN_Project *pr); /* Processes junction data */ @@ -104,22 +107,25 @@ int statusdata(EN_Project *pr); /* Processes link status dat int reportdata(EN_Project *pr); /* Processes report options */ int timedata(EN_Project *pr); /* Processes time options */ int optiondata(EN_Project *pr); /* Processes analysis options */ -int optionchoice(EN_Project *pr, int); /* Processes option choices */ -int optionvalue(EN_Project *pr, int); /* Processes option values */ -int getpumpcurve(EN_Project *pr, int); /* Constructs a pump curve */ -int powercurve(double, double, double,/* Coeffs. of power pump curve*/ +int optionchoice(EN_Project *pr, int); /* Processes option choices */ +int optionvalue(EN_Project *pr, int); /* Processes option values */ +int getpumpcurve(EN_Project *pr, int); /* Constructs a pump curve */ +int powercurve(double, double, double, /* Coeffs. of power pump curve*/ double, double, double *, double *, double *); -int valvecheck(EN_Project *pr, int, int, int); /* Checks valve placement */ -void changestatus(EN_Network *net, int, StatType, double); /* Changes status of a link */ +int valvecheck(EN_Project *pr, int, int, int); /* Checks valve placement */ +void changestatus(EN_Network *net, int, StatType, + double); /* Changes status of a link */ /* -------------- RULES.C --------------*/ void initrules(rules_t *rules); /* Initializes rule base */ -void addrule(parser_data_t *par, char *); /* Adds rule to rule base */ +void addrule(parser_data_t *par, char *); /* Adds rule to rule base */ int allocrules(EN_Project *pr); /* Allocates memory for rule */ int ruledata(EN_Project *pr); /* Processes rule input data */ -int checkrules(EN_Project *pr, long); /* Checks all rules */ +int checkrules(EN_Project *pr, long); /* Checks all rules */ void freerules(EN_Project *pr); /* Frees rule base memory */ +int writeRuleinInp(EN_Project *pr, FILE *f, /* Writes rule to an INP file */ + int RuleIdx); int writeRuleinInp(EN_Project *pr, FILE *f, int RuleIdx); @@ -127,167 +133,147 @@ int writeRuleinInp(EN_Project *pr, FILE *f, int RuleIdx); int writereport(EN_Project *pr); /* Writes formatted report */ void writelogo(EN_Project *pr); /* Writes program logo */ void writesummary(EN_Project *pr); /* Writes network summary */ -void writehydstat(EN_Project *pr, int,double); /* Writes hydraulic status */ +void writehydstat(EN_Project *pr, int,double); /* Writes hydraulic status */ void writeenergy(EN_Project *pr); /* Writes energy usage */ int writeresults(EN_Project *pr); /* Writes node/link results */ -void writeheader(EN_Project *pr, int,int); /* Writes heading on report */ -void writeline(EN_Project *pr, char *); /* Writes line to report file */ -void writerelerr(EN_Project *pr, int, double); /* Writes convergence error */ +void writeheader(EN_Project *pr, int,int); /* Writes heading on report */ +void writeline(EN_Project *pr, char *); /* Writes line to report file */ +void writerelerr(EN_Project *pr, int, double); /* Writes convergence error */ void writestatchange(EN_Project *pr, int,char,char); /* Writes link status change */ void writecontrolaction(EN_Project *pr, int, int); /* Writes control action taken*/ void writeruleaction(EN_Project *pr, int, char *); /* Writes rule action taken */ -int writehydwarn(EN_Project *pr, int,double); /* Writes hydraulic warnings */ +int writehydwarn(EN_Project *pr, int,double); /* Writes hydraulic warnings */ void writehyderr(EN_Project *pr, int); /* Writes hydraulic error msg.*/ -int disconnected(EN_Project *pr); /* Checks for disconnections */ +int disconnected(EN_Project *pr); /* Checks for disconnections */ void marknodes(EN_Project *pr, int, int *, char *); /* Identifies connected nodes */ void getclosedlink(EN_Project *pr, int, char *); /* Finds a disconnecting link */ void writelimits(EN_Project *pr, int,int); /* Writes reporting limits */ -int checklimits(report_options_t *rep, double *,int,int); /* Checks variable limits */ +int checklimits(report_options_t *rep, double *, + int,int); /* Checks variable limits */ void writetime(EN_Project *pr, char *); /* Writes current clock time */ -char *clocktime(char *, long); /* Converts time to hrs:min */ -char *fillstr(char *, char, int); /* Fills string with character*/ -int getnodetype(EN_Network *net, int); /* Determines node type */ +char *clocktime(char *, long); /* Converts time to hrs:min */ +char *fillstr(char *, char, int); /* Fills string with character*/ +int getnodetype(EN_Network *net, int); /* Determines node type */ /* --------- HYDRAUL.C -----------------*/ int openhyd(EN_Project *pr); /* Opens hydraulics solver */ - -/*** Updated 3/1/01 ***/ -void inithyd(EN_Project *pr, int initFlags); /* Re-sets initial conditions */ - -int runhyd(EN_Project *pr, long *); /* Solves 1-period hydraulics */ -int nexthyd(EN_Project *pr, long *); /* Moves to next time period */ +void inithyd(EN_Project *pr, int initFlags); /* Re-sets initial conditions */ +int runhyd(EN_Project *pr, long *); /* Solves 1-period hydraulics */ +int nexthyd(EN_Project *pr, long *); /* Moves to next time period */ void closehyd(EN_Project *pr); /* Closes hydraulics solver */ int allocmatrix(EN_Project *pr); /* Allocates matrix coeffs. */ void freematrix(EN_Project *pr); /* Frees matrix coeffs. */ -void initlinkflow(EN_Project *pr, int, char, double); /* Initializes link flow */ -void setlinkflow(EN_Project *pr, int, double); /* Sets link flow via headloss*/ -void setlinkstatus(EN_Project *pr, int, char, StatType *, double *); /* Sets link status */ - -void setlinksetting(EN_Project *pr, int, double, StatType *, double *); /* Sets pump/valve setting */ +void initlinkflow(EN_Project *pr, int, char, + double); /* Initializes link flow */ +void setlinkflow(EN_Project *pr, int, double); /* Sets link flow via headloss*/ +void setlinkstatus(EN_Project *pr, int, char, + StatType *, double *); /* Sets link status */ +void setlinksetting(EN_Project *pr, int, double, + StatType *, double *); /* Sets pump/valve setting */ -void resistance(EN_Project *pr, int); /* Computes resistance coeff. */ void demands(EN_Project *pr); /* Computes current demands */ int controls(EN_Project *pr); /* Controls link settings */ long timestep(EN_Project *pr); /* Computes new time step */ -int tanktimestep(EN_Project *pr, long *); /* Time till tanks fill/drain */ -void controltimestep(EN_Project *pr, long *); /* Time till control action */ -void ruletimestep(EN_Project *pr, long *); /* Time till rule action */ -void addenergy(EN_Project *pr, long); /* Accumulates energy usage */ -void getenergy(EN_Project *pr, int, double *, double *); /* Computes link energy use */ -void tanklevels(EN_Project *pr, long); /* Computes new tank levels */ -double tankvolume(EN_Project *pr, int,double); /* Finds tank vol. from grade */ -double tankgrade(EN_Project *pr, int,double); /* Finds tank grade from vol. */ -int netsolve(EN_Project *pr, int *,double *); /* Solves network equations */ -int badvalve(EN_Project *pr, int); /* Checks for bad valve */ -int valvestatus(EN_Project *pr); /* Updates valve status */ -int linkstatus(EN_Project *pr); /* Updates link status */ -StatType cvstatus(EN_Project *pr, StatType,double,double); /* Updates CV status */ -StatType pumpstatus(EN_Project *pr, int,double); /* Updates pump status */ -StatType prvstatus(EN_Project *pr, int,StatType,double,double,double); /* Updates PRV status */ - -StatType psvstatus(EN_Project *pr, int,StatType,double,double,double); /* Updates PSV status */ - -StatType fcvstatus(EN_Project *pr, int,StatType,double,double); /* Updates FCV status */ - -void tankstatus(EN_Project *pr, int,int,int); /* Checks if tank full/empty */ -int pswitch(EN_Project *pr); /* Pressure switch controls */ -double newflows(EN_Project *pr); /* Updates link flows */ -void newcoeffs(EN_Project *pr); /* Computes matrix coeffs. */ -void linkcoeffs(EN_Project *pr); /* Computes link coeffs. */ -void nodecoeffs(EN_Project *pr); /* Computes node coeffs. */ -void valvecoeffs(EN_Project *pr); /* Computes valve coeffs. */ -void pipecoeff(EN_Project *pr, int); /* Computes pipe coeff. */ -double DWcoeff(EN_Project *pr, int, double *); /* Computes D-W coeff. */ -void pumpcoeff(EN_Project *pr, int); /* Computes pump coeff. */ +int tanktimestep(EN_Project *pr, long *); /* Time till tanks fill/drain */ +void controltimestep(EN_Project *pr, long *); /* Time till control action */ +void ruletimestep(EN_Project *pr, long *); /* Time till rule action */ -/*** Updated 10/25/00 ***/ -/*** Updated 12/29/00 ***/ -void curvecoeff(EN_Project *pr, int,double,double *,double *); /* Computes curve coeffs. */ - +void addenergy(EN_Project *pr, long); /* Accumulates energy usage */ +void getenergy(EN_Project *pr, int, double *, + double *); /* Computes link energy use */ -void gpvcoeff(EN_Project *pr, int iLink); /* Computes GPV coeff. */ -void pbvcoeff(EN_Project *pr, int iLink); /* Computes PBV coeff. */ -void tcvcoeff(EN_Project *pr, int iLink); /* Computes TCV coeff. */ -void prvcoeff(EN_Project *pr, int iLink, int n1, int n2); /* Computes PRV coeff. */ -void psvcoeff(EN_Project *pr, int iLink, int n1, int n2); /* Computes PSV coeff. */ -void fcvcoeff(EN_Project *pr, int iLink, int n1, int n2); /* Computes FCV coeff. */ -void emittercoeffs(EN_Project *pr); /* Computes emitter coeffs. */ -double emitflowchange(EN_Project *pr, int); /* Computes new emitter flow */ +void tanklevels(EN_Project *pr, long); /* Computes new tank levels */ +double tankvolume(EN_Project *pr, int,double); /* Finds tank vol. from grade */ +double tankgrade(EN_Project *pr, int,double); /* Finds tank grade from vol. */ + +/* ----------- HYDSOLVER.C - ----------*/ +int hydsolve(EN_Project *pr, int *,double *); /* Solves network equations */ + +/* ----------- HYDCOEFFS.C --------------*/ +void resistcoeff(EN_Project *pr, int k); /* Finds pipe flow resistance */ +void hlosscoeff(EN_Project *pr, int k); /* Finds link head loss coeff */ +void matrixcoeffs(EN_Project *pr); /* Finds hyd. matrix coeffs. */ /* ----------- SMATRIX.C ---------------*/ int createsparse(EN_Project *pr); /* Creates sparse matrix */ int allocsparse(EN_Project *pr); /* Allocates matrix memory */ void freesparse(EN_Project *pr); /* Frees matrix memory */ -int buildlists(EN_Project *pr, int); /* Builds adjacency lists */ -int paralink(EN_Project *pr, int, int, int); /* Checks for parallel links */ +int buildlists(EN_Project *pr, int); /* Builds adjacency lists */ +int paralink(EN_Project *pr, int, int, int); /* Checks for parallel links */ void xparalinks(EN_Project *pr); /* Removes parallel links */ void freelists(EN_Project *pr); /* Frees adjacency lists */ void countdegree(EN_Project *pr); /* Counts links at each node */ int reordernodes(EN_Project *pr); /* Finds a node re-ordering */ -int mindegree(solver_t *s, int, int); /* Finds min. degree node */ -int growlist(EN_Project *pr, int); /* Augments adjacency list */ -int newlink(EN_Project *pr, Padjlist); /* Adds fill-ins for a node */ -int linked(EN_Network *net, int, int); /* Checks if 2 nodes linked */ -int addlink(EN_Network *net, int, int, int); /* Creates new fill-in */ -int storesparse(EN_Project *pr, int); /* Stores sparse matrix */ -int ordersparse(hydraulics_t *h, int); /* Orders matrix storage */ -void transpose(int,int *,int *, /* Transposes sparse matrix */ +int mindegree(solver_t *s, int, int); /* Finds min. degree node */ +int growlist(EN_Project *pr, int); /* Augments adjacency list */ +int newlink(EN_Project *pr, Padjlist); /* Adds fill-ins for a node */ +int linked(EN_Network *net, int, int); /* Checks if 2 nodes linked */ +int addlink(EN_Network *net, int, int, int); /* Creates new fill-in */ +int storesparse(EN_Project *pr, int); /* Stores sparse matrix */ +int ordersparse(hydraulics_t *h, int); /* Orders matrix storage */ +void transpose(int,int *,int *, /* Transposes sparse matrix */ int *,int *,int *,int *,int *); -int linsolve(solver_t *s, int); /* via Cholesky factorization */ +int linsolve(solver_t *s, int); /* Solves set of inear eqns. */ /* ----------- QUALITY.C ---------------*/ int openqual(EN_Project *pr); /* Opens WQ solver system */ void initqual(EN_Project *pr); /* Initializes WQ solver */ -int runqual(EN_Project *pr, long *); /* Gets current WQ results */ -int nextqual(EN_Project *pr, long *); /* Updates WQ by hyd.timestep */ -int stepqual(EN_Project *pr, long *); /* Updates WQ by WQ time step */ +int runqual(EN_Project *pr, long *); /* Gets current WQ results */ +int nextqual(EN_Project *pr, long *); /* Updates WQ by hyd.timestep */ +int stepqual(EN_Project *pr, long *); /* Updates WQ by WQ time step */ int closequal(EN_Project *pr); /* Closes WQ solver system */ -int gethyd(EN_Project *pr, long *, long *); /* Gets next hyd. results */ +int gethyd(EN_Project *pr, long *, long *); /* Gets next hyd. results */ char setReactflag(EN_Project *pr); /* Checks for reactive chem. */ -void transport(EN_Project *pr, long); /* Transports mass in network */ +void transport(EN_Project *pr, long); /* Transports mass in network */ void initsegs(EN_Project *pr); /* Initializes WQ segments */ void reorientsegs(EN_Project *pr); /* Re-orients WQ segments */ -void updatesegs(EN_Project *pr, long); /* Updates quality in segments*/ -void removesegs(EN_Project *pr, int); /* Removes a WQ segment */ -void addseg(EN_Project *pr, int,double,double); /* Adds a WQ segment to pipe */ -void accumulate(EN_Project *pr, long); /* Sums mass flow into node */ -void updatenodes(EN_Project *pr, long); /* Updates WQ at nodes */ -void sourceinput(EN_Project *pr, long); /* Computes source inputs */ -void release(EN_Project *pr, long); /* Releases mass from nodes */ -void updatetanks(EN_Project *pr, long); /* Updates WQ in tanks */ -void updatesourcenodes(EN_Project *pr, long); /* Updates WQ at source nodes */ -void tankmix1(EN_Project *pr, int, long); /* Complete mix tank model */ -void tankmix2(EN_Project *pr, int, long); /* 2-compartment tank model */ -void tankmix3(EN_Project *pr, int, long); /* FIFO tank model */ -void tankmix4(EN_Project *pr, int, long); /* LIFO tank model */ -double sourcequal(EN_Project *pr, Psource); /* Finds WQ input from source */ -double avgqual(EN_Project *pr, int); /* Finds avg. quality in pipe */ +void updatesegs(EN_Project *pr, long); /* Updates quality in segments*/ +void removesegs(EN_Project *pr, int); /* Removes a WQ segment */ +void addseg(EN_Project *pr, int,double,double); /* Adds a WQ segment to pipe */ +void accumulate(EN_Project *pr, long); /* Sums mass flow into node */ +void updatenodes(EN_Project *pr, long); /* Updates WQ at nodes */ +void sourceinput(EN_Project *pr, long); /* Computes source inputs */ +void release(EN_Project *pr, long); /* Releases mass from nodes */ +void updatetanks(EN_Project *pr, long); /* Updates WQ in tanks */ +void updatesourcenodes(EN_Project *pr, long); /* Updates WQ at source nodes */ +void tankmix1(EN_Project *pr, int, long); /* Complete mix tank model */ +void tankmix2(EN_Project *pr, int, long); /* 2-compartment tank model */ +void tankmix3(EN_Project *pr, int, long); /* FIFO tank model */ +void tankmix4(EN_Project *pr, int, long); /* LIFO tank model */ +double sourcequal(EN_Project *pr, Psource); /* Finds WQ input from source */ +double avgqual(EN_Project *pr, int); /* Finds avg. quality in pipe */ void ratecoeffs(EN_Project *pr); /* Finds wall react. coeffs. */ -double piperate(EN_Project *pr, int); /* Finds wall react. coeff. */ -double pipereact(EN_Project *pr, int,double,double,long);/* Reacts water in a pipe */ -double tankreact(EN_Project *pr, double,double,double,long); /* Reacts water in a tank */ -double bulkrate(EN_Project *pr, double,double,double); /* Finds bulk reaction rate */ -double wallrate(EN_Project *pr, double,double,double,double);/* Finds wall reaction rate */ - +double piperate(EN_Project *pr, int); /* Finds wall react. coeff. */ +double pipereact(EN_Project *pr, int,double, + double,long); /* Reacts water in a pipe */ +double tankreact(EN_Project *pr, double,double, + double,long); /* Reacts water in a tank */ +double bulkrate(EN_Project *pr, double,double, + double); /* Finds bulk reaction rate */ +double wallrate(EN_Project *pr, double,double, + double,double); /* Finds wall reaction rate */ /* ------------ OUTPUT.C ---------------*/ int savenetdata(EN_Project *pr); /* Saves basic data to file */ -int savehyd(EN_Project *pr, long *); /* Saves hydraulic solution */ -int savehydstep(EN_Project *pr, long *); /* Saves hydraulic timestep */ +int savehyd(EN_Project *pr, long *); /* Saves hydraulic solution */ +int savehydstep(EN_Project *pr, long *); /* Saves hydraulic timestep */ int saveenergy(EN_Project *pr); /* Saves energy usage */ -int readhyd(EN_Project *pr, long *); /* Reads hydraulics from file */ -int readhydstep(FILE *hydFile, long *); /* Reads time step from file */ +int readhyd(EN_Project *pr, long *); /* Reads hydraulics from file */ +int readhydstep(FILE *hydFile, long *); /* Reads time step from file */ int saveoutput(EN_Project *pr); /* Saves results to file */ -int nodeoutput(EN_Project *pr, int, REAL4 *, double); /* Saves node results to file */ -int linkoutput(EN_Project *pr, int, REAL4 *, double); /* Saves link results to file */ +int nodeoutput(EN_Project *pr, int, REAL4 *, + double); /* Saves node results to file */ +int linkoutput(EN_Project *pr, int, REAL4 *, + double); /* Saves link results to file */ int savefinaloutput(EN_Project *pr); /* Finishes saving output */ -int savetimestat(EN_Project *pr, REAL4 *, HdrType); /* Saves time stats to file */ -int savenetreacts(EN_Project *pr, double, double,double, double); - /* Saves react. rates to file */ +int savetimestat(EN_Project *pr, REAL4 *, + HdrType); /* Saves time stats to file */ +int savenetreacts(EN_Project *pr, double, + double,double, double); /* Saves react. rates to file */ int saveepilog(EN_Project *pr); /* Saves output file epilog */ /* ------------ INPFILE.C --------------*/ -int saveinpfile(EN_Project *pr, char *); /* Saves network to text file */ +int saveinpfile(EN_Project *pr, char *); /* Saves network to text file */ #endif diff --git a/src/hydcoeffs.c b/src/hydcoeffs.c new file mode 100644 index 0000000..9b830d9 --- /dev/null +++ b/src/hydcoeffs.c @@ -0,0 +1,933 @@ +/* +********************************************************************* + +HYDCOEFFS.C -- hydraulic coefficients for the EPANET Program + +******************************************************************* +*/ + +#include +#include +#ifndef __APPLE__ +#include +#else +#include +#endif +#include +#include "types.h" +#include "funcs.h" + +// Constants used for computing Darcy-Weisbach friction factor +const double A1 = 0.314159265359e04; // 1000*PI +const double A2 = 0.157079632679e04; // 500*PI +const double A3 = 0.502654824574e02; // 16*PI +const double A4 = 6.283185307; // 2*PI +const double A8 = 4.61841319859; // 5.74*(PI/4)^.9 +const double A9 = -8.685889638e-01; // -2/ln(10) +const double AA = -1.5634601348; // -2*.9*2/ln(10) +const double AB = 3.28895476345e-03; // 5.74/(4000^.9) +const double AC = -5.14214965799e-03; // AA*AB + +// External functions +//void resistcoeff(EN_Project *pr, int k); +//void hlosscoeff(EN_Project *pr, int k); +//void matrixcoeffs(EN_Project *pr); + +// Local functions +static void linkcoeffs(EN_Project *pr); +static void nodecoeffs(EN_Project *pr); +static void valvecoeffs(EN_Project *pr); +static void emittercoeffs(EN_Project *pr); + +static void pipecoeff(EN_Project *pr, int k); +static void DWpipecoeff(EN_Project *pr, int k); +static double frictionFactor(EN_Project *pr, int k, double *dfdq); + +static void pumpcoeff(EN_Project *pr, int k); +static void curvecoeff(EN_Project *pr, int i, double q, double *h0, double *r); + +static void valvecoeff(EN_Project *pr, int k); +static void gpvcoeff(EN_Project *pr, int k); +static void pbvcoeff(EN_Project *pr, int k); +static void tcvcoeff(EN_Project *pr, int k); +static void prvcoeff(EN_Project *pr, int k, int n1, int n2); +static void psvcoeff(EN_Project *pr, int k, int n1, int n2); +static void fcvcoeff(EN_Project *pr, int k, int n1, int n2); + + + +void resistcoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes link flow resistance coefficient +**-------------------------------------------------------------------- +*/ +{ + double e, d, L; + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + Slink *link = &net->Link[k]; + + switch (link->Type) { + + // ... Link is a pipe. Compute resistance based on headloss formula. + // Friction factor for D-W formula gets included during head loss + // calculation. + case EN_CVPIPE: + case EN_PIPE: + e = link->Kc; // Roughness coeff. + d = link->Diam; // Diameter + L = link->Len; // Length + switch (hyd->Formflag) + { + case HW: + link->R = 4.727*L / pow(e, hyd->Hexp) / pow(d, 4.871); + break; + case DW: + link->R = L / 2.0 / 32.2 / d / SQR(PI*SQR(d) / 4.0); + break; + case CM: + link->R = SQR(4.0*e / (1.49*PI*d*d)) * pow((d / 4.0), -1.333)*L; + } + break; + + // ... Link is a pump. Use huge resistance. + case EN_PUMP: + link->R = CBIG; + break; + + // ... For all other links (e.g. valves) use a small resistance + default: + link->R = CSMALL; + break; + } +} + + +void hlosscoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes P and Y coefficients for a link +**-------------------------------------------------------------- +*/ +{ + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link = &net->Link[k]; + + switch (link->Type) + { + case EN_CVPIPE: + case EN_PIPE: + pipecoeff(pr, k); + break; + case EN_PUMP: + pumpcoeff(pr, k); + break; + case EN_PBV: + pbvcoeff(pr, k); + break; + case EN_TCV: + tcvcoeff(pr, k); + break; + case EN_GPV: + gpvcoeff(pr, k); + break; + case EN_FCV: + case EN_PRV: + case EN_PSV: + if (hyd->LinkSetting[k] == MISSING) { + valvecoeff(pr, k); + } + else sol->P[k] = 0.0; + } +} + + +void matrixcoeffs(EN_Project *pr) +/* +**-------------------------------------------------------------- +** Input: none +** Output: none +** Purpose: computes coefficients of linearized network eqns. +**-------------------------------------------------------------- +*/ +{ + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + EN_Network *net = &pr->network; + + memset(sol->Aii, 0, (net->Nnodes + 1) * sizeof(double)); + memset(sol->Aij, 0, (hyd->Ncoeffs + 1) * sizeof(double)); + memset(sol->F, 0, (net->Nnodes + 1) * sizeof(double)); + memset(hyd->X_tmp, 0, (net->Nnodes + 1) * sizeof(double)); + linkcoeffs(pr); + emittercoeffs(pr); + nodecoeffs(pr); + valvecoeffs(pr); +} + + +void linkcoeffs(EN_Project *pr) +/* +**-------------------------------------------------------------- +** Input: none +** Output: none +** Purpose: computes matrix coefficients for links +**-------------------------------------------------------------- +*/ +{ + int k, n1, n2; + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link; + + // Examine each link of network */ + for (k = 1; k <= net->Nlinks; k++) + { + if (sol->P[k] == 0.0) continue; + link = &net->Link[k]; + n1 = link->N1; // Start node of link + n2 = link->N2; // End node of link + + // Update net nodal inflows (X), solution matrix (A) and RHS array (F) + // (Use covention that flow out of node is (-), flow into node is (+)) + hyd->X_tmp[n1] -= hyd->LinkFlows[k]; + hyd->X_tmp[n2] += hyd->LinkFlows[k]; + + // Off-diagonal coeff. + sol->Aij[sol->Ndx[k]] -= sol->P[k]; + + // Node n1 is junction + if (n1 <= net->Njuncs) + { + sol->Aii[sol->Row[n1]] += sol->P[k]; // Diagonal coeff. + sol->F[sol->Row[n1]] += sol->Y[k]; // RHS coeff. + } + + // Node n1 is a tank + else { + sol->F[sol->Row[n2]] += (sol->P[k] * hyd->NodeHead[n1]); + } + + // Node n2 is junction + if (n2 <= net->Njuncs) { + sol->Aii[sol->Row[n2]] += sol->P[k]; // Diagonal coeff. + sol->F[sol->Row[n2]] -= sol->Y[k]; // RHS coeff. + } + + // Node n2 is a tank + else { + sol->F[sol->Row[n1]] += (sol->P[k] * hyd->NodeHead[n2]); + } + } +} + + +void nodecoeffs(EN_Project *pr) +/* +**---------------------------------------------------------------- +** Input: none +** Output: none +** Purpose: completes calculation of nodal flow imbalance (X) +** & flow correction (F) arrays +**---------------------------------------------------------------- +*/ +{ + int i; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + EN_Network *net = &pr->network; + + // For junction nodes, subtract demand flow from net + // flow imbalance & add imbalance to RHS array F. + for (i = 1; i <= net->Njuncs; i++) + { + hyd->X_tmp[i] -= hyd->NodeDemand[i]; + sol->F[sol->Row[i]] += hyd->X_tmp[i]; + } +} + + +void valvecoeffs(EN_Project *pr) +/* +**-------------------------------------------------------------- +** Input: none +** Output: none +** Purpose: computes matrix coeffs. for PRVs, PSVs & FCVs +** whose status is not fixed to OPEN/CLOSED +**-------------------------------------------------------------- +*/ +{ + int i, k, n1, n2; + + hydraulics_t *hyd = &pr->hydraulics; + EN_Network *net = &pr->network; + Slink *link; + Svalve *valve; + + // Examine each valve + for (i = 1; i <= net->Nvalves; i++) + { + valve = &net->Valve[i]; + k = valve->Link; // Link index of valve + link = &net->Link[k]; + if (hyd->LinkSetting[k] == MISSING) { + continue; // Valve status fixed + } + n1 = link->N1; // Start & end nodes + n2 = link->N2; + switch (link->Type) // Call valve-specific function + { + case EN_PRV: + prvcoeff(pr, k, n1, n2); + break; + case EN_PSV: + psvcoeff(pr, k, n1, n2); + break; + case EN_FCV: + fcvcoeff(pr, k, n1, n2); + break; + default: continue; + } + } +} + + +void emittercoeffs(EN_Project *pr) +/* +**-------------------------------------------------------------- +** Input: none +** Output: none +** Purpose: computes matrix coeffs. for emitters +** +** Note: Emitters consist of a fictitious pipe connected to +** a fictitious reservoir whose elevation equals that +** of the junction. The headloss through this pipe is +** Ke*(Flow)^hyd->Qexp, where Ke = emitter headloss coeff. +**-------------------------------------------------------------- +*/ +{ + int i; + double ke; + double p; + double q; + double y; + double z; + + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + EN_Network *net = &pr->network; + Snode *node; + + for (i = 1; i <= net->Njuncs; i++) + { + node = &net->Node[i]; + if (node->Ke == 0.0) { + continue; + } + ke = MAX(CSMALL, node->Ke); // emitter coeff. + q = hyd->EmitterFlows[i]; // emitter flow + z = ke * pow(ABS(q), hyd->Qexp); // emitter head loss + p = hyd->Qexp * z / ABS(q); // head loss gradient + if (p < hyd->RQtol) { + p = 1.0 / hyd->RQtol; + } + else { + p = 1.0 / p; // inverse head loss gradient + } + y = SGN(q)*z*p; // head loss / gradient + sol->Aii[sol->Row[i]] += p; // addition to main diagonal + sol->F[sol->Row[i]] += y + p * node->El; // addition to r.h.s. + hyd->X_tmp[i] -= q; // addition to net node inflow + } +} + + +void pipecoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes P & Y coefficients for pipe k +** +** P = inverse head loss gradient = 1/(dh/dQ) +** Y = flow correction term = h*P +**-------------------------------------------------------------- +*/ +{ + double hpipe, // Normal head loss + hml, // Minor head loss + ml, // Minor loss coeff. + p, // q*(dh/dq) + q, // Abs. value of flow + r; // Resistance coeff. + + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link = &pr->network.Link[k]; + + // For closed pipe use headloss formula: h = CBIG*q + if (hyd->LinkStatus[k] <= CLOSED) + { + sol->P[k] = 1.0 / CBIG; + sol->Y[k] = hyd->LinkFlows[k]; + return; + } + + // ... head loss formula is Darcy-Weisbach + if (hyd->Formflag == DW) { + DWpipecoeff(pr, k); + return; + } + + // Evaluate headloss coefficients + q = ABS(hyd->LinkFlows[k]); // Absolute flow + ml = link->Km; // Minor loss coeff. + r = link->R; // Resistance coeff. + + // Use large P coefficient for small flow resistance product + if ( (r+ml)*q < hyd->RQtol) + { + sol->P[k] = 1.0 / hyd->RQtol; + sol->Y[k] = hyd->LinkFlows[k] / hyd->Hexp; + return; + } + + // Compute P and Y coefficients + hpipe = r*pow(q, hyd->Hexp); // Friction head loss + p = hyd->Hexp*hpipe; // Q*dh(friction)/dQ + if (ml > 0.0) + { + hml = ml*q*q; // Minor head loss + p += 2.0*hml; // Q*dh(Total)/dQ + } + else hml = 0.0; + p = hyd->LinkFlows[k] / p; // 1 / (dh/dQ) + sol->P[k] = ABS(p); + sol->Y[k] = p*(hpipe + hml); +} + + +void DWpipecoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes pipe head loss coeffs. for Darcy-Weisbach +** formula. +**-------------------------------------------------------------- +*/ +{ + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link = &pr->network.Link[k]; + + double q = ABS(hyd->LinkFlows[k]); + double dfdq = 0.0; + double r, r1, f, ml, p, hloss; + + ml = link->Km; // Minor loss coeff. + r = link->R; // Resistance coeff. + f = frictionFactor(pr,k,&dfdq); // D-W friction factor + r1 = f*r+ml; + + // Use large P coefficient for small flow resistance product + if (r1*q < hyd->RQtol) + { + sol->P[k] = 1.0/hyd->RQtol; + sol->Y[k] = hyd->LinkFlows[k]/hyd->Hexp; + return; + } + + // Compute P and Y coefficients + hloss = r1*SQR(q); // Total head loss + p = 2.0*r1*q; // |dHloss/dQ| + // + dfdq*r*q*q; // Ignore df/dQ term + p = 1.0 / p; + sol->P[k] = p; + sol->Y[k] = SGN(hyd->LinkFlows[k]) * hloss * p; +} + + +double frictionFactor(EN_Project *pr, int k, double *dfdq) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: returns friction factor and +** replaces dfdq (derivative of f w.r.t. flow) +** Purpose: computes Darcy-Weisbach friction factor and its +** derivative as a function of Reynolds Number (Re). +** +** Note: Current formulas for dfdq need to be corrected +** so dfdq returned as 0. +**-------------------------------------------------------------- +*/ +{ + double q, // Abs. value of flow + f; // Friction factor + double x1,x2,x3,x4, + y1,y2,y3, + fa,fb,r; + double s,w; + + hydraulics_t *hyd = &pr->hydraulics; + Slink *link = &pr->network.Link[k]; + + *dfdq = 0.0; + if (link->Type > EN_PIPE) + return(1.0); // Only apply to pipes + q = ABS(hyd->LinkFlows[k]); + s = hyd->Viscos * link->Diam; + w = q/s; // w = Re(Pi/4) + + // For Re >= 4000 use Colebrook Formula + if (w >= A1) + { + y1 = A8/pow(w,0.9); + y2 = link->Kc/(3.7*link->Diam) + y1; + y3 = A9*log(y2); + f = 1.0/SQR(y3); + /* *dfdq = (2.0+AA*y1/(y2*y3))*f; */ /* df/dq */ + } + + // For Re > 2000 use Interpolation Formula + else if (w > A2) + { + y2 = link->Kc/(3.7*link->Diam) + AB; + y3 = A9*log(y2); + fa = 1.0/SQR(y3); + fb = (2.0+AC/(y2*y3))*fa; + r = w/A2; + x1 = 7.0*fa - fb; + x2 = 0.128 - 17.0*fa + 2.5*fb; + x3 = -0.128 + 13.0*fa - (fb+fb); + x4 = r*(0.032 - 3.0*fa + 0.5*fb); + f = x1 + r*(x2 + r*(x3+x4)); + /* *dfdq = (x1 + x1 + r*(3.0*x2 + r*(4.0*x3 + 5.0*x4))); */ + } + + // For Re > 8 (Laminar Flow) use Hagen-Poiseuille Formula + else if (w > A4) + { + f = A3*s/q; // 16 * PI * Viscos * Diam / Flow + /* *dfdq = A3*s; */ + } + else + { + f = 8.0; + *dfdq = 0.0; + } + return(f); + +} + + +void pumpcoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes P & Y coeffs. for pump in link k +**-------------------------------------------------------------- +*/ +{ + int p; // Pump index + double h0, // Shutoff head + q, // Abs. value of flow + r, // Flow resistance coeff. + n; // Flow exponent coeff. + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + double setting = hyd->LinkSetting[k]; + Spump *pump; + + // Use high resistance pipe if pump closed or cannot deliver head + if (hyd->LinkStatus[k] <= CLOSED || setting == 0.0) { + sol->P[k] = 1.0 / CBIG; + sol->Y[k] = hyd->LinkFlows[k]; + return; + } + + q = ABS(hyd->LinkFlows[k]); + q = MAX(q, TINY); + + // Obtain reference to pump object + p = findpump(&pr->network, k); + pump = &pr->network.Pump[p]; + + // Get pump curve coefficients for custom pump curve. + if (pump->Ptype == CUSTOM) + { + // Find intercept (h0) & slope (r) of pump curve + // line segment which contains speed-adjusted flow. + curvecoeff(pr, pump->Hcurve, q / setting, &h0, &r); + + // Determine head loss coefficients. + pump->H0 = -h0; + pump->R = -r; + pump->N = 1.0; + } + + // Adjust head loss coefficients for pump speed. + h0 = SQR(setting) * pump->H0; + n = pump->N; + r = pump->R * pow(setting, 2.0 - n); + if (n != 1.0) { + r = n * r * pow(q, n - 1.0); + } + + // Compute inverse headloss gradient (P) and flow correction factor (Y) + sol->P[k] = 1.0 / MAX(r, hyd->RQtol); + sol->Y[k] = hyd->LinkFlows[k] / n + sol->P[k] * h0; +} + + +void curvecoeff(EN_Project *pr, int i, double q, double *h0, double *r) +/* +**------------------------------------------------------------------- +** Input: i = curve index +** q = flow rate +** Output: *h0 = head at zero flow (y-intercept) +** *r = dHead/dFlow (slope) +** Purpose: computes intercept and slope of head v. flow curve +** at current flow. +**------------------------------------------------------------------- +*/ +{ + int k1, k2, npts; + double *x, *y; + Scurve *curve; + + // Remember that curve is stored in untransformed units + q *= pr->Ucf[FLOW]; + curve = &pr->network.Curve[i]; + x = curve->X; // x = flow + y = curve->Y; // y = head + npts = curve->Npts; + + // Find linear segment of curve that brackets flow q + k2 = 0; + while (k2 < npts && x[k2] < q) + k2++; + + if (k2 == 0) + k2++; + + else if (k2 == npts) + k2--; + + k1 = k2 - 1; + + // Compute slope and intercept of this segment + *r = (y[k2] - y[k1]) / (x[k2] - x[k1]); + *h0 = y[k1] - (*r)*x[k1]; + + // Convert units + *h0 = (*h0) / pr->Ucf[HEAD]; + *r = (*r) * pr->Ucf[FLOW] / pr->Ucf[HEAD]; +} + + +void gpvcoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes P & Y coeffs. for general purpose valve +**-------------------------------------------------------------- +*/ +{ + double h0, // Headloss curve intercept + q, // Abs. value of flow + r; // Flow resistance coeff. + + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + + // Treat as a pipe if valve closed + if (hyd->LinkStatus[k] == CLOSED) { + valvecoeff(pr, k); + } + + // Otherwise utilize headloss curve + // whose index is stored in K + else { + // Find slope & intercept of headloss curve. + q = ABS(hyd->LinkFlows[k]); + q = MAX(q, TINY); + curvecoeff(pr, (int)ROUND(hyd->LinkSetting[k]), q, &h0, &r); + + // Compute inverse headloss gradient (P) + // and flow correction factor (Y). + sol->P[k] = 1.0 / MAX(r, hyd->RQtol); + sol->Y[k] = sol->P[k] * (h0 + r*q) * SGN(hyd->LinkFlows[k]); + } +} + + +void pbvcoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes P & Y coeffs. for pressure breaker valve +**-------------------------------------------------------------- +*/ +{ + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link = &pr->network.Link[k]; + + // If valve fixed OPEN or CLOSED then treat as a pipe + if (hyd->LinkSetting[k] == MISSING || hyd->LinkSetting[k] == 0.0) { + valvecoeff(pr, k); + } + + // If valve is active + else { + // Treat as a pipe if minor loss > valve setting + if (link->Km * SQR(hyd->LinkFlows[k]) > hyd->LinkSetting[k]) { + valvecoeff(pr, k); + } + // Otherwise force headloss across valve to be equal to setting + else { + sol->P[k] = CBIG; + sol->Y[k] = hyd->LinkSetting[k] * CBIG; + } + } +} + + +void tcvcoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes P & Y coeffs. for throttle control valve +**-------------------------------------------------------------- +*/ +{ + double km; + hydraulics_t *hyd = &pr->hydraulics; + Slink *link = &pr->network.Link[k]; + + // Save original loss coeff. for open valve + km = link->Km; + + // If valve not fixed OPEN or CLOSED, compute its loss coeff. + if (hyd->LinkSetting[k] != MISSING) { + link->Km = 0.02517 * hyd->LinkSetting[k] / (SQR(link->Diam)*SQR(link->Diam)); + } + + // Then apply usual valve formula + valvecoeff(pr, k); + + // Restore original loss coeff. + link->Km = km; +} + + +void prvcoeff(EN_Project *pr, int k, int n1, int n2) +/* +**-------------------------------------------------------------- +** Input: k = link index +** n1 = upstream node of valve +** n2 = downstream node of valve +** Output: none +** Purpose: computes solution matrix coeffs. for pressure +** reducing valves +**-------------------------------------------------------------- +*/ +{ + int i, j; // Rows of solution matrix + double hset; // Valve head setting + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + + i = sol->Row[n1]; // Matrix rows of nodes + j = sol->Row[n2]; + hset = pr->network.Node[n2].El + + hyd->LinkSetting[k]; // Valve setting + + if (hyd->LinkStatus[k] == ACTIVE) + { + + // Set coeffs. to force head at downstream + // node equal to valve setting & force flow + // to equal to flow imbalance at downstream node. + + sol->P[k] = 0.0; + sol->Y[k] = hyd->LinkFlows[k] + hyd->X_tmp[n2]; // Force flow balance + sol->F[j] += (hset * CBIG); // Force head = hset + sol->Aii[j] += CBIG; // at downstream node + if (hyd->X_tmp[n2] < 0.0) { + sol->F[i] += hyd->X_tmp[n2]; + } + return; + } + + // For OPEN, CLOSED, or XPRESSURE valve + // compute matrix coeffs. using the valvecoeff() function. + + valvecoeff(pr, k); + sol->Aij[sol->Ndx[k]] -= sol->P[k]; + sol->Aii[i] += sol->P[k]; + sol->Aii[j] += sol->P[k]; + sol->F[i] += (sol->Y[k] - hyd->LinkFlows[k]); + sol->F[j] -= (sol->Y[k] - hyd->LinkFlows[k]); +} + + +void psvcoeff(EN_Project *pr, int k, int n1, int n2) +/* +**-------------------------------------------------------------- +** Input: k = link index +** n1 = upstream node of valve +** n2 = downstream node of valve +** Output: none +** Purpose: computes solution matrix coeffs. for pressure +** sustaining valve +**-------------------------------------------------------------- +*/ +{ + int i, j; // Rows of solution matrix + double hset; // Valve head setting + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + + i = sol->Row[n1]; // Matrix rows of nodes + j = sol->Row[n2]; + hset = pr->network.Node[n1].El + + hyd->LinkSetting[k]; // Valve setting + + if (hyd->LinkStatus[k] == ACTIVE) + { + // Set coeffs. to force head at upstream + // node equal to valve setting & force flow + // equal to flow imbalance at upstream node. + + sol->P[k] = 0.0; + sol->Y[k] = hyd->LinkFlows[k] - hyd->X_tmp[n1]; // Force flow balance + sol->F[i] += (hset * CBIG); // Force head = hset + sol->Aii[i] += CBIG; // at upstream node + if (hyd->X_tmp[n1] > 0.0) { + sol->F[j] += hyd->X_tmp[n1]; + } + return; + } + + // For OPEN, CLOSED, or XPRESSURE valve + // compute matrix coeffs. using the valvecoeff() function. + + valvecoeff(pr, k); + sol->Aij[sol->Ndx[k]] -= sol->P[k]; + sol->Aii[i] += sol->P[k]; + sol->Aii[j] += sol->P[k]; + sol->F[i] += (sol->Y[k] - hyd->LinkFlows[k]); + sol->F[j] -= (sol->Y[k] - hyd->LinkFlows[k]); +} + + +void fcvcoeff(EN_Project *pr, int k, int n1, int n2) +/* +**-------------------------------------------------------------- +** Input: k = link index +** n1 = upstream node of valve +** n2 = downstream node of valve +** Output: none +** Purpose: computes solution matrix coeffs. for flow control +** valve +**-------------------------------------------------------------- +*/ +{ + int i, j; // Rows in solution matrix + double q; // Valve flow setting + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + + q = hyd->LinkSetting[k]; + i = hyd->solver.Row[n1]; + j = hyd->solver.Row[n2]; + + // If valve active, break network at valve and treat + // flow setting as external demand at upstream node + // and external supply at downstream node. + + if (hyd->LinkStatus[k] == ACTIVE) + { + hyd->X_tmp[n1] -= q; + sol->F[i] -= q; + hyd->X_tmp[n2] += q; + sol->F[j] += q; + sol->P[k] = 1.0 / CBIG; + sol->Aij[sol->Ndx[k]] -= sol->P[k]; + sol->Aii[i] += sol->P[k]; + sol->Aii[j] += sol->P[k]; + sol->Y[k] = hyd->LinkFlows[k] - q; + } + + // Otherwise treat valve as an open pipe + + else + { + valvecoeff(pr, k); + sol->Aij[sol->Ndx[k]] -= sol->P[k]; + sol->Aii[i] += sol->P[k]; + sol->Aii[j] += sol->P[k]; + sol->F[i] += (sol->Y[k] - hyd->LinkFlows[k]); + sol->F[j] -= (sol->Y[k] - hyd->LinkFlows[k]); + } +} + + +void valvecoeff(EN_Project *pr, int k) +/* +**-------------------------------------------------------------- +** Input: k = link index +** Output: none +** Purpose: computes solution matrix coeffs. for a completely +** open, closed, or throttled control valve. +**-------------------------------------------------------------- +*/ +{ + double p; + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link = &net->Link[k]; + + double flow = hyd->LinkFlows[k]; + + // Valve is closed. Use a very small matrix coeff. + if (hyd->LinkStatus[k] <= CLOSED) + { + sol->P[k] = 1.0 / CBIG; + sol->Y[k] = flow; + return; + } + + // Account for any minor headloss through the valve + if (link->Km > 0.0) + { + p = 2.0 * link->Km * fabs(flow); + if (p < hyd->RQtol) { + p = hyd->RQtol; + } + sol->P[k] = 1.0 / p; + sol->Y[k] = flow / 2.0; + } + else + { + sol->P[k] = 1.0 / hyd->RQtol; + sol->Y[k] = flow; + } +} diff --git a/src/hydraul.c b/src/hydraul.c index 8f1bcd7..545ed37 100755 --- a/src/hydraul.c +++ b/src/hydraul.c @@ -29,13 +29,13 @@ AUTHOR: L. Rossman closehyd() -- called from ENcloseH() in EPANET.C tankvolume() -- called from ENsetnodevalue() in EPANET.C setlinkstatus(), - setlinksetting(), - resistance()-- all called from ENsetlinkvalue() in EPANET.C + setlinksetting() -- all called from ENsetlinkvalue() in EPANET.C External functions called by this module are: createsparse() -- see SMATRIX.C freesparse() -- see SMATRIX.C - linsolve() -- see SMATRIX.C + resistcoeff() -- see HYDCOEFFS.C + hydsolve() -- see HYDSOLVER.C checkrules() -- see RULES.C interp() -- see EPANET.C savehyd() -- see OUTPUT.C @@ -54,34 +54,11 @@ AUTHOR: L. Rossman #include #endif #include -#include "hash.h" #include "text.h" #include "types.h" -#include "epanet2.h" #include "funcs.h" -#define EXTERN extern -#include "vars.h" #define QZERO 1.e-6 /* Equivalent to zero flow */ -#define CBIG 1.e8 /* Big coefficient */ -#define CSMALL 1.e-6 /* Small coefficient */ - -/* Constants used for computing Darcy-Weisbach friction factor */ -#define A1 0.314159265359e04 /* 1000*PI */ -#define A2 0.157079632679e04 /* 500*PI */ -#define A3 0.502654824574e02 /* 16*PI */ -#define A4 6.283185307 /* 2*PI */ -#define A8 4.61841319859 /* 5.74*(PI/4)^.9 */ -#define A9 -8.685889638e-01 /* -2/ln(10) */ -#define AA -1.5634601348 /* -2*.9*2/ln(10) */ -#define AB 3.28895476345e-03 /* 5.74/(4000^.9) */ -#define AC -5.14214965799e-03 /* AA*AB */ - -/*** Updated 3/1/01 ***/ - -/* Function to find flow coeffs. through open/closed valves */ -void valvecoeff(EN_Project *pr, int k); - int openhyd(EN_Project *pr) /* @@ -92,15 +69,15 @@ int openhyd(EN_Project *pr) *-------------------------------------------------------------- */ { - int i; - int errcode = 0; - ERRCODE(createsparse(pr)); /* See SMATRIX.C */ - ERRCODE(allocmatrix(pr)); /* Allocate solution matrices */ - for (i=1; i <= pr->network.Nlinks; i++) { /* Initialize flows */ - Slink *link = &pr->network.Link[i]; - initlinkflow(pr, i, link->Stat, link->Kc); - } - return(errcode); + int i; + int errcode = 0; + ERRCODE(createsparse(pr)); /* See SMATRIX.C */ + ERRCODE(allocmatrix(pr)); /* Allocate solution matrices */ + for (i=1; i <= pr->network.Nlinks; i++) { /* Initialize flows */ + Slink *link = &pr->network.Link[i]; + initlinkflow(pr, i, link->Stat, link->Kc); + } + return(errcode); } @@ -115,72 +92,80 @@ void inithyd(EN_Project *pr, int initflag) **-------------------------------------------------------------- */ { - int i,j; + int i,j; - time_options_t *time = &pr->time_options; - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - out_file_t *out = &pr->out_files; + time_options_t *time = &pr->time_options; + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + out_file_t *out = &pr->out_files; + Stank *tank; + Slink *link; + Spump *pump; - /* Initialize tanks */ - for (i=1; i <= net->Ntanks; i++) { - Stank *tank = &net->Tank[i]; - tank->V = tank->V0; - hyd->NodeHead[tank->Node] = tank->H0; - hyd->NodeDemand[tank->Node] = 0.0; - hyd->OldStat[net->Nlinks+i] = TEMPCLOSED; - } - - /* Initialize emitter flows */ - memset(hyd->EmitterFlows,0,(net->Nnodes+1)*sizeof(double)); - for (i=1; i <= net->Njuncs; i++) { - if (net->Node[i].Ke > 0.0) { - hyd->EmitterFlows[i] = 1.0; + /* Initialize tanks */ + for (i=1; i <= net->Ntanks; i++) { + tank = &net->Tank[i]; + tank->V = tank->V0; + hyd->NodeHead[tank->Node] = tank->H0; + hyd->NodeDemand[tank->Node] = 0.0; + hyd->OldStat[net->Nlinks+i] = TEMPCLOSED; } - } - /* Initialize links */ - for (i=1; i <= net->Nlinks; i++) { - Slink *link = &net->Link[i]; - /* Initialize status and setting */ - hyd->LinkStatus[i] = link->Stat; - hyd->LinkSetting[i] = link->Kc; - /* Start active control valves in ACTIVE position */ - if ( - (link->Type == EN_PRV || link->Type == EN_PSV - || link->Type == EN_FCV) - && (link->Kc != MISSING) - ) hyd->LinkStatus[i] = ACTIVE; + /* Initialize emitter flows */ + memset(hyd->EmitterFlows,0,(net->Nnodes+1)*sizeof(double)); + for (i=1; i <= net->Njuncs; i++) { + if (net->Node[i].Ke > 0.0) { + hyd->EmitterFlows[i] = 1.0; + } + } + + /* Initialize links */ + for (i=1; i <= net->Nlinks; i++) { + link = &net->Link[i]; + + /* Initialize status and setting */ + hyd->LinkStatus[i] = link->Stat; + hyd->LinkSetting[i] = link->Kc; + + /* Compute flow resistance */ + resistcoeff(pr, i); + + /* Start active control valves in ACTIVE position */ + if ( + (link->Type == EN_PRV || link->Type == EN_PSV + || link->Type == EN_FCV) && (link->Kc != MISSING) + ) hyd->LinkStatus[i] = ACTIVE; /*** Updated 3/1/01 ***/ - /* Initialize flows if necessary */ - if (hyd->LinkStatus[i] <= CLOSED) hyd->LinkFlows[i] = QZERO; - else if (ABS(hyd->LinkFlows[i]) <= QZERO || initflag > 0) - initlinkflow(pr, i, hyd->LinkStatus[i], hyd->LinkSetting[i]); + /* Initialize flows if necessary */ + if (hyd->LinkStatus[i] <= CLOSED) hyd->LinkFlows[i] = QZERO; + else if (ABS(hyd->LinkFlows[i]) <= QZERO || initflag > 0) + initlinkflow(pr, i, hyd->LinkStatus[i], hyd->LinkSetting[i]); - /* Save initial status */ - hyd->OldStat[i] = hyd->LinkStatus[i]; - } + /* Save initial status */ + hyd->OldStat[i] = hyd->LinkStatus[i]; + } - /* Reset pump energy usage */ - for (i=1; i <= net->Npumps; i++) - { - for (j=0; j<6; j++) { - net->Pump[i].Energy[j] = 0.0; - } - } + /* Initialize pump energy usage */ + for (i=1; i <= net->Npumps; i++) + { + pump = &net->Pump[i]; + for (j = 0; j < MAX_ENERGY_STATS; j++) { + pump->Energy[j] = 0.0; + } + } - /* Re-position hydraulics file */ - if (pr->save_options.Saveflag) { - fseek(out->HydFile,out->HydOffset,SEEK_SET); - } + /* Re-position hydraulics file */ + if (pr->save_options.Saveflag) { + fseek(out->HydFile,out->HydOffset,SEEK_SET); + } /*** Updated 3/1/01 ***/ - /* Initialize current time */ - hyd->Haltflag = 0; - time->Htime = 0; - time->Hydstep = 0; - time->Rtime = time->Rstep; + /* Initialize current time */ + hyd->Haltflag = 0; + time->Htime = 0; + time->Hydstep = 0; + time->Rtime = time->Rstep; } @@ -194,42 +179,42 @@ int runhyd(EN_Project *pr, long *t) **-------------------------------------------------------------- */ { - int iter; /* Iteration count */ - int errcode; /* Error code */ - double relerr; /* Solution accuracy */ + int iter; /* Iteration count */ + int errcode; /* Error code */ + double relerr; /* Solution accuracy */ - hydraulics_t *hyd = &pr->hydraulics; - time_options_t *time = &pr->time_options; - report_options_t *rep = &pr->report; + hydraulics_t *hyd = &pr->hydraulics; + time_options_t *time = &pr->time_options; + report_options_t *rep = &pr->report; - /* Find new demands & control actions */ - *t = time->Htime; - demands(pr); - controls(pr); + /* Find new demands & control actions */ + *t = time->Htime; + demands(pr); + controls(pr); - /* Solve network hydraulic equations */ - errcode = netsolve(pr,&iter,&relerr); - if (!errcode) { - /* Report new status & save results */ - if (rep->Statflag) { - writehydstat(pr,iter,relerr); - } + /* Solve network hydraulic equations */ + errcode = hydsolve(pr,&iter,&relerr); + if (!errcode) { + /* Report new status & save results */ + if (rep->Statflag) { + writehydstat(pr,iter,relerr); + } - /* solution info */ - hyd->relativeError = relerr; - hyd->iterations = iter; + /* solution info */ + hyd->relativeError = relerr; + hyd->iterations = iter; /*** Updated 3/1/01 ***/ - /* If system unbalanced and no extra trials */ - /* allowed, then activate the Haltflag. */ - if (relerr > hyd->Hacc && hyd->ExtraIter == -1) { - hyd->Haltflag = 1; - } + /* If system unbalanced and no extra trials */ + /* allowed, then activate the Haltflag. */ + if (relerr > hyd->Hacc && hyd->ExtraIter == -1) { + hyd->Haltflag = 1; + } - /* Report any warning conditions */ - if (!errcode) { - errcode = writehydwarn(pr,iter,relerr); - } + /* Report any warning conditions */ + if (!errcode) { + errcode = writehydwarn(pr,iter,relerr); + } } return(errcode); } /* end of runhyd */ @@ -459,7 +444,8 @@ void setlinkflow(EN_Project *pr, int k, double dh) dh = -dh * pr->Ucf[HEAD] / SQR(hyd->LinkSetting[k]); i = net->Pump[p].Hcurve; curve = &net->Curve[i]; - hyd->LinkFlows[k] = interp(curve->Npts,curve->Y,curve->X,dh) * hyd->LinkSetting[k] / pr->Ucf[FLOW]; + hyd->LinkFlows[k] = interp(curve->Npts,curve->Y,curve->X,dh) * + hyd->LinkSetting[k] / pr->Ucf[FLOW]; } /* Otherwise use inverse of power curve */ @@ -565,55 +551,6 @@ void setlinksetting(EN_Project *pr, int index, double value, StatType *s, doubl } -void resistance(EN_Project *pr, int k) -/* -**-------------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes link flow resistance -**-------------------------------------------------------------------- -*/ -{ - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - - double e,d,L; - - Slink *link = &net->Link[k]; - link->R = CSMALL; - - - switch (link->Type) { - /* Link is a pipe. Compute resistance based on headloss formula. */ - /* Friction factor for D-W formula gets included during solution */ - /* process in pipecoeff() function. */ - case EN_CVPIPE: - case EN_PIPE: - e = link->Kc; /* Roughness coeff. */ - d = link->Diam; /* Diameter */ - L = link->Len; /* Length */ - switch(hyd->Formflag) - { - case HW: - link->R = 4.727*L/pow(e,hyd->Hexp)/pow(d,4.871); - break; - case DW: - link->R = L/2.0/32.2/d/SQR(PI*SQR(d)/4.0); - break; - case CM: - link->R = SQR(4.0*e/(1.49*PI*d*d)) * pow((d/4.0),-1.333)*L; - } - break; - - /* Link is a pump. Use negligible resistance. */ - case EN_PUMP: - link->R = CBIG; //CSMALL; - break; - default: - break; - } -} - void demands(EN_Project *pr) /* @@ -628,7 +565,7 @@ void demands(EN_Project *pr) long k,p; double djunc, sum; Pdemand demand; - + EN_Network *net = &pr->network; hydraulics_t *hyd = &pr->hydraulics; time_options_t *top = &pr->time_options; @@ -680,6 +617,7 @@ void demands(EN_Project *pr) setlinksetting(pr, i, net->Pattern[j].F[k], &hyd->LinkStatus[i], &hyd->LinkSetting[i]); } } + } /* End of demands */ @@ -698,7 +636,8 @@ int controls(EN_Project *pr) double k1, k2; char s1, s2; Slink *link; - + Scontrol *control; + EN_Network *net = &pr->network; time_options_t *top = &pr->time_options; hydraulics_t *hyd = &pr->hydraulics; @@ -707,13 +646,13 @@ int controls(EN_Project *pr) setsum = 0; for (i=1; i <= net->Ncontrols; i++) { - Scontrol *control = &net->Control[i]; + control = &net->Control[i]; /* Make sure that link is defined */ reset = 0; - if ( (k = control->Link) <= 0) { - continue; - } - link = &net->Link[k]; + if ( (k = control->Link) <= 0) { + continue; + } + link = &net->Link[k]; /* Link is controlled by tank level */ if ((n = control->Node) > 0 && n > net->Njuncs) { @@ -1027,7 +966,7 @@ void addenergy(EN_Project *pr, long hstep) { int i,j,k; long m,n; - double c0,c, /* Energy cost (cost/kwh) */ + double c0,c, /* Energy cost (cost/kwh) */ f0, /* Energy cost factor */ dt, /* Time interval (hr) */ e, /* Pump efficiency (fraction) */ @@ -1037,6 +976,7 @@ void addenergy(EN_Project *pr, long hstep) EN_Network *net = &pr->network; hydraulics_t *hyd = &pr->hydraulics; + Spump *pump; /* Determine current time interval in hours */ if (pr->time_options.Dur == 0) { @@ -1052,7 +992,7 @@ void addenergy(EN_Project *pr, long hstep) if (dt == 0.0) { return; } - n = (pr->time_options.Htime + pr->time_options.Pstart) / pr->time_options.Pstep; + n = (pr->time_options.Htime + pr->time_options.Pstart) / pr->time_options.Pstep; /* Compute default energy cost at current time */ c0 = hyd->Ecost; @@ -1066,17 +1006,17 @@ void addenergy(EN_Project *pr, long hstep) /* Examine each pump */ for (j=1; j <= net->Npumps; j++) { - Spump *pump = &net->Pump[j]; /* Skip closed pumps */ + pump = &net->Pump[j]; k = pump->Link; - if (hyd->LinkStatus[k] <= CLOSED) { + if (hyd->LinkStatus[k] <= CLOSED) { continue; - } + } q = MAX(QZERO, ABS(hyd->LinkFlows[k])); /* Find pump-specific energy cost */ - if (pump->Ecost > 0.0) { - c = pump->Ecost; + if (pump->Ecost > 0.0) { + c = pump->Ecost; } else { c = c0; @@ -1095,12 +1035,12 @@ void addenergy(EN_Project *pr, long hstep) psum += p; /* Update pump's cumulative statistics */ - pump->Energy[0] += dt; /* Time on-line */ - pump->Energy[1] += e*dt; /* Effic.-hrs */ - pump->Energy[2] += p/q*dt; /* kw/cfs-hrs */ - pump->Energy[3] += p*dt; /* kw-hrs */ - pump->Energy[4] = MAX(pump->Energy[4],p); - pump->Energy[5] += c*p*dt; /* cost-hrs. */ + pump->Energy[PCNT_ONLINE] += dt; + pump->Energy[PCNT_EFFIC] += e*dt; + pump->Energy[KWH_PER_FLOW] += p/q*dt; + pump->Energy[TOTAL_KWH] += p*dt; + pump->Energy[MAX_KW] = MAX(pump->Energy[MAX_KW],p); + pump->Energy[TOTAL_COST] += c*p*dt; } /* Update maximum kw value */ @@ -1118,12 +1058,16 @@ void getenergy(EN_Project *pr, int k, double *kw, double *eff) **---------------------------------------------------------------- */ { - int i,j; - double dh, q, e; - double q4eff; //q4eff=flow at nominal speed to compute efficiency + int i, // efficiency curve index + j; // pump index + double dh, // head across pump (ft) + q, // flow through pump (cfs) + e; // pump efficiency + double q4eff; // flow at nominal pump speed of 1.0 + double speed; // current speed setting Scurve *curve; - EN_Network *net = &pr->network; + EN_Network *net = &pr->network; hydraulics_t *hyd = &pr->hydraulics; Slink *link = &net->Link[k]; @@ -1146,12 +1090,15 @@ void getenergy(EN_Project *pr, int k, double *kw, double *eff) { j = findpump(net,k); e = hyd->Epump; + speed = hyd->LinkSetting[k]; if ( (i = net->Pump[j].Ecurve) > 0) - { - q4eff = q / hyd->LinkSetting[k]; + { + q4eff = q / speed * pr->Ucf[FLOW]; curve = &net->Curve[i]; - e = interp(curve->Npts,curve->X, curve->Y, q4eff * pr->Ucf[FLOW]); - } + e = interp(curve->Npts,curve->X, curve->Y, q4eff); + /* Sarbu and Borza pump speed adjustment */ + e = 100.0 - ((100.0-e) * pow(1.0/speed, 0.1)); + } e = MIN(e, 100.0); e = MAX(e, 1.0); e /= 100.0; @@ -1218,6 +1165,8 @@ double tankvolume(EN_Project *pr, int i, double h) int j; EN_Network *net = &pr->network; Stank *tank = &net->Tank[i]; + Scurve *curve; + /* Use level*area if no volume curve */ j = tank->Vcurve; if (j == 0) { @@ -1227,8 +1176,10 @@ double tankvolume(EN_Project *pr, int i, double h) /* If curve exists, interpolate on h to find volume v */ /* remembering that volume curve is in original units.*/ else { - Scurve *curve = &net->Curve[j]; - return(interp(curve->Npts, curve->X, curve->Y, (h - net->Node[tank->Node].El) * pr->Ucf[HEAD]) / pr->Ucf[VOLUME]); + curve = &net->Curve[j]; + return(interp(curve->Npts, curve->X, curve->Y, + (h - net->Node[tank->Node].El) * + pr->Ucf[HEAD]) / pr->Ucf[VOLUME]); } } /* End of tankvolume */ @@ -1264,1688 +1215,4 @@ double tankgrade(EN_Project *pr, int i, double v) } /* End of tankgrade */ -int netsolve(EN_Project *pr, int *iter, double *relerr) -/* -**------------------------------------------------------------------- -** Input: none -** Output: *iter = # of iterations to reach solution -** *relerr = convergence error in solution -** returns error code -** Purpose: solves network nodal equations for heads and flows -** using Todini's Gradient algorithm -** -*** Updated 9/7/00 *** -*** Updated 2.00.11 *** -*** Updated 2.00.12 *** -** Notes: Status checks on CVs, pumps and pipes to tanks are made -** every hyd->CheckFreq iteration, up until MaxCheck iterations -** are reached. Status checks on control valves are made -** every iteration if DampLimit = 0 or only when the -** convergence error is at or below DampLimit. If DampLimit -** is > 0 then future computed flow changes are only 60% of -** their full value. A complete status check on all links -** is made when convergence is achieved. If convergence is -** not achieved in hyd->MaxIter trials and hyd->ExtraIter > 0 then -** another hyd->ExtraIter trials are made with no status changes -** made to any links and a warning message is generated. -** -** This procedure calls linsolve() which appears in SMATRIX.C. -**------------------------------------------------------------------- -*/ -{ - int i; /* Node index */ - int errcode = 0; /* Node causing solution error */ - int nextcheck; /* Next status check trial */ - int maxtrials; /* Max. trials for convergence */ - double newerr; /* New convergence error */ - int valveChange; /* Valve status change flag */ - int statChange; - - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - solver_t *sol = &hyd->solver; - report_options_t *rep = &pr->report; - - /* Initialize status checking & relaxation factor */ - nextcheck = hyd->CheckFreq; - hyd->RelaxFactor = 1.0; - - /* Repeat iterations until convergence or trial limit is exceeded. */ - /* (hyd->ExtraIter used to increase trials in case of status cycling.) */ - if (pr->report.Statflag == FULL) { - writerelerr(pr,0,0); - } - maxtrials = hyd->MaxIter; - if (hyd->ExtraIter > 0) { - maxtrials += hyd->ExtraIter; - } - *iter = 1; - while (*iter <= maxtrials) { - /* - ** Compute coefficient matrices A & F and solve A*H = F - ** where H = heads, A = Jacobian coeffs. derived from - ** head loss gradients, & F = flow correction terms. - ** Solution for H is returned in F from call to linsolve(). - */ - newcoeffs(pr); - errcode = linsolve(&hyd->solver,net->Njuncs); - - /* Take action depending on error code */ - if (errcode < 0) { - break; /* Memory allocation problem */ - } - if (errcode > 0) { /* Ill-conditioning problem */ - /* If control valve causing problem, fix its status & continue, */ - /* otherwise end the iterations with no solution. */ - if (badvalve(pr,sol->Order[errcode])) { - continue; - } - else break; - } - - /* Update current solution. */ - /* (Row[i] = row of solution matrix corresponding to node i). */ - for (i=1; i<=net->Njuncs; i++) { - hyd->NodeHead[i] = sol->F[sol->Row[i]]; /* Update heads */ - } - newerr = newflows(pr); /* Update flows */ - *relerr = newerr; - - /* Write convergence error to status report if called for */ - if (rep->Statflag == FULL) { - writerelerr(pr, *iter,*relerr); - } - - /* Apply solution damping & check for change in valve status */ - hyd->RelaxFactor = 1.0; - valveChange = FALSE; - if ( hyd->DampLimit > 0.0 ) { - if( *relerr <= hyd->DampLimit ) { - hyd->RelaxFactor = 0.6; - valveChange = valvestatus(pr); - } - } - else { - valveChange = valvestatus(pr); - } - - /* Check for convergence */ - if (*relerr <= hyd->Hacc) { - /* We have convergence. Quit if we are into extra iterations. */ - if (*iter > hyd->MaxIter) { - break; - } - - /* Quit if no status changes occur. */ - statChange = FALSE; - if (valveChange) { - statChange = TRUE; - } - if (linkstatus(pr)) { - statChange = TRUE; - } - if (pswitch(pr)) { - statChange = TRUE; - } - if (!statChange) { - break; - } - - /* We have a status change so continue the iterations */ - nextcheck = *iter + hyd->CheckFreq; - } - - /* No convergence yet. See if its time for a periodic status */ - /* check on pumps, CV's, and pipes connected to tanks. */ - else if (*iter <= hyd->MaxCheck && *iter == nextcheck) - { - linkstatus(pr); - nextcheck += hyd->CheckFreq; - } - (*iter)++; - } - - /* Iterations ended. Report any errors. */ - if (errcode < 0) errcode = 101; /* Memory allocation error */ - else if (errcode > 0) - { - writehyderr(pr, sol->Order[errcode]); /* Ill-conditioned eqns. error */ - errcode = 110; - } - - /* Add any emitter flows to junction demands */ - for (i=1; i<=net->Njuncs; i++) { - hyd->NodeDemand[i] += hyd->EmitterFlows[i]; - } - return(errcode); -} /* End of netsolve */ - - -int badvalve(EN_Project *pr, int n) -/* - **----------------------------------------------------------------- -** Input: n = node index -** Output: returns 1 if node n belongs to an active control valve, -** 0 otherwise -** Purpose: determines if a node belongs to an active control valve -** whose setting causes an inconsistent set of eqns. If so, -** the valve status is fixed open and a warning condition -** is generated. -**----------------------------------------------------------------- -*/ -{ - int i,k,n1,n2; - Slink *link; - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - report_options_t *rep = &pr->report; - time_options_t *time = &pr->time_options; - - for (i=1; i <= net->Nvalves; i++) { - k = net->Valve[i].Link; - link = &net->Link[k]; - n1 = link->N1; - n2 = link->N2; - if (n == n1 || n == n2) { - EN_LinkType t = link->Type; - if (t == EN_PRV || t == EN_PSV || t == EN_FCV) { - if (hyd->LinkStatus[k] == ACTIVE) { - if (rep->Statflag == FULL) { - sprintf(pr->Msg,FMT61,clocktime(rep->Atime,time->Htime),link->ID); - writeline(pr, pr->Msg); - } - if (link->Type == EN_FCV) { - hyd->LinkStatus[k] = XFCV; - } - else { - hyd->LinkStatus[k] = XPRESSURE; - } - return(1); - } - } - return(0); - } - } - return(0); -} - - -int valvestatus(EN_Project *pr) -/* -**----------------------------------------------------------------- -** Input: none -** Output: returns 1 if any pressure or flow control valve -** changes status, 0 otherwise -** Purpose: updates status for PRVs & PSVs whose status -** is not fixed to OPEN/CLOSED -**----------------------------------------------------------------- -*/ -{ - int change = FALSE, /* Status change flag */ - i,k, /* Valve & link indexes */ - n1,n2; /* Start & end nodes */ - StatType status; /* Valve status settings */ - double hset; /* Valve head setting */ - Slink *link; - - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - report_options_t *rep = &pr->report; - - for (i=1; i <= net->Nvalves; i++) /* Examine each valve */ - { - k = net->Valve[i].Link; /* Link index of valve */ - link = &net->Link[k]; - if (hyd->LinkSetting[k] == MISSING) { - continue; /* Valve status fixed */ - } - n1 = link->N1; /* Start & end nodes */ - n2 = link->N2; - status = hyd->LinkStatus[k]; /* Save current status */ - -// if (s != CLOSED /* No change if flow is */ -// && ABS(hyd->LinkFlows[k]) < hyd->Qtol) continue; /* negligible. */ - - switch (link->Type) /* Evaluate new status: */ - { - case EN_PRV: - hset = net->Node[n2].El + hyd->LinkSetting[k]; - hyd->LinkStatus[k] = prvstatus(pr,k,status,hset,hyd->NodeHead[n1],hyd->NodeHead[n2]); - break; - case EN_PSV: - hset = net->Node[n1].El + hyd->LinkSetting[k]; - hyd->LinkStatus[k] = psvstatus(pr,k,status,hset,hyd->NodeHead[n1],hyd->NodeHead[n2]); - break; - -//// FCV status checks moved back into the linkstatus() function //// -// case FCV: S[k] = fcvstatus(k,s,hyd->NodeHead[n1],hyd->NodeHead[n2]); -// break; - - default: - continue; - } - -/*** Updated 9/7/00 ***/ - /* Do not reset flow in valve if its status changes. */ - /* This strategy improves convergence. */ - - /* Check for status change */ - if (status != hyd->LinkStatus[k]) - { - if (rep->Statflag == FULL) { - writestatchange(pr, k,status,hyd->LinkStatus[k]); - } - change = TRUE; - } - } - return(change); -} /* End of valvestatus() */ - - -/*** Updated 9/7/00 ***/ -int linkstatus(EN_Project *pr) -/* -**-------------------------------------------------------------- -** Input: none -** Output: returns 1 if any link changes status, 0 otherwise -** Purpose: determines new status for pumps, CVs, FCVs & pipes -** to tanks. -**-------------------------------------------------------------- -*/ -{ - int change = FALSE, /* Status change flag */ - k, /* Link index */ - n1, /* Start node index */ - n2; /* End node index */ - double dh; /* Head difference */ - StatType status; /* Current status */ - - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - report_options_t *rep = &pr->report; - - /* Examine each Slink */ - for (k=1; k <= net->Nlinks; k++) - { - Slink *link = &net->Link[k]; - n1 = link->N1; - n2 = link->N2; - dh = hyd->NodeHead[n1] - hyd->NodeHead[n2]; - - /* Re-open temporarily closed links (status = XHEAD or TEMPCLOSED) */ - status = hyd->LinkStatus[k]; - if (status == XHEAD || status == TEMPCLOSED) { - hyd->LinkStatus[k] = OPEN; - } - - /* Check for status changes in CVs and pumps */ - if (link->Type == EN_CVPIPE) { - hyd->LinkStatus[k] = cvstatus(pr,hyd->LinkStatus[k],dh,hyd->LinkFlows[k]); - } - if (link->Type == EN_PUMP && hyd->LinkStatus[k] >= OPEN && hyd->LinkSetting[k] > 0.0) { - hyd->LinkStatus[k] = pumpstatus(pr,k,-dh); - } - - /* Check for status changes in non-fixed FCVs */ - if (link->Type == EN_FCV && hyd->LinkSetting[k] != MISSING) { // - hyd->LinkStatus[k] = fcvstatus(pr,k,status,hyd->NodeHead[n1],hyd->NodeHead[n2]); // - } - - /* Check for flow into (out of) full (empty) tanks */ - if (n1 > net->Njuncs || n2 > net->Njuncs) { - tankstatus(pr,k,n1,n2); - } - - /* Note change in link status; do not revise link flow */ - if (status != hyd->LinkStatus[k]) { - change = TRUE; - if (rep->Statflag == FULL) { - writestatchange(pr,k,status,hyd->LinkStatus[k]); - } - - //if (S[k] <= CLOSED) hyd->LinkFlows[k] = QZERO; - //else setlinkflow(k, dh); - } - } - return(change); -} /* End of linkstatus */ - - -StatType cvstatus(EN_Project *pr, StatType s, double dh, double q) -/* -**-------------------------------------------------- -** Input: s = current status -** dh = headloss -** q = flow -** Output: returns new link status -** Purpose: updates status of a check valve. -**-------------------------------------------------- -*/ -{ - hydraulics_t *hyd = &pr->hydraulics; - - /* Prevent reverse flow through CVs */ - if (ABS(dh) > hyd->Htol) - { - if (dh < -hyd->Htol) { - return(CLOSED); - } - else if (q < -hyd->Qtol) { - return(CLOSED); - } - else { - return(OPEN); - } - } - else - { - if (q < -hyd->Qtol) { - return(CLOSED); - } - else { - return(s); - } - } -} - - -StatType pumpstatus(EN_Project *pr, int k, double dh) -/* -**-------------------------------------------------- -** Input: k = link index -** dh = head gain -** Output: returns new pump status -** Purpose: updates status of an open pump. -**-------------------------------------------------- -*/ -{ - int p; - double hmax; - hydraulics_t *hyd = &pr->hydraulics; - EN_Network *net = &pr->network; - - /* Prevent reverse flow through pump */ - p = findpump(net,k); - if (net->Pump[p].Ptype == CONST_HP) { - hmax = BIG; - } - else { - hmax = SQR(hyd->LinkSetting[k]) * net->Pump[p].Hmax; - } - if (dh > hmax + hyd->Htol) { - return(XHEAD); - } - -/*** Flow higher than pump curve no longer results in a status change ***/ - /* Check if pump cannot deliver flow */ - //if (hyd->LinkFlows[k] > K[k]*Pump[p].Qmax + hyd->Qtol) return(XFLOW); - return(OPEN); -} - - -StatType prvstatus(EN_Project *pr, int k, StatType s, double hset, double h1, double h2) -/* -**----------------------------------------------------------- -** Input: k = link index -** s = current status -** hset = valve head setting -** h1 = head at upstream node -** h2 = head at downstream node -** Output: returns new valve status -** Purpose: updates status of a pressure reducing valve. -**----------------------------------------------------------- -*/ -{ - StatType status; /* New valve status */ - double hml; /* Minor headloss */ - hydraulics_t *hyd = &pr->hydraulics; - - double htol = hyd->Htol; - Slink *link = &pr->network.Link[k]; - - status = s; - if (hyd->LinkSetting[k] == MISSING) - return(status); /* Status fixed by user */ - hml = link->Km*SQR(hyd->LinkFlows[k]); /* Head loss when open */ - - /*** Status rules below have changed. ***/ - - switch (s) - { - case ACTIVE: - if (hyd->LinkFlows[k] < -hyd->Qtol) { - status = CLOSED; - } - else if (h1-hml < hset-htol) { - status = OPEN; - } - else { - status = ACTIVE; - } - break; - case OPEN: - if (hyd->LinkFlows[k] < -hyd->Qtol) { - status = CLOSED; - } - else if (h2 >= hset+htol) { - status = ACTIVE; - } - else { - status = OPEN; - } - break; - case CLOSED: - if ( h1 >= hset+htol && h2 < hset-htol) { - status = ACTIVE; - } - else if (h1 < hset-htol && h1 > h2+htol) { - status = OPEN; - } - else { - status = CLOSED; - } - break; - case XPRESSURE: - if (hyd->LinkFlows[k] < -hyd->Qtol) { - status = CLOSED; - } - break; - default: - break; - } - return(status); -} - - -StatType psvstatus(EN_Project *pr, int k, StatType s, double hset, double h1, double h2) -/* -**----------------------------------------------------------- -** Input: k = link index -** s = current status -** hset = valve head setting -** h1 = head at upstream node -** h2 = head at downstream node -** Output: returns new valve status -** Purpose: updates status of a pressure sustaining valve. -**----------------------------------------------------------- -*/ -{ - StatType status; /* New valve status */ - double hml; /* Minor headloss */ - hydraulics_t *hyd = &pr->hydraulics; - - double htol = hyd->Htol; - - Slink *link = &pr->network.Link[k]; - - status = s; - if (hyd->LinkSetting[k] == MISSING) { - return(status); /* Status fixed by user */ - } - hml = link->Km*SQR(hyd->LinkFlows[k]); /* Head loss when open */ - - /*** Status rules below have changed. ***/ - - switch (s) - { - case ACTIVE: - if (hyd->LinkFlows[k] < -hyd->Qtol) { - status = CLOSED; - } - else if (h2+hml > hset+htol) { - status = OPEN; - } - else { - status = ACTIVE; - } - break; - case OPEN: - if (hyd->LinkFlows[k] < -hyd->Qtol) { - status = CLOSED; - } - else if (h1 < hset-htol) { - status = ACTIVE; - } - else { - status = OPEN; - } - break; - case CLOSED: - if (h2 > hset+htol && h1 > h2+htol) { - status = OPEN; - } - else if (h1 >= hset+htol && h1 > h2+htol) { - status = ACTIVE; - } - else { - status = CLOSED; - } - break; - case XPRESSURE: - if (hyd->LinkFlows[k] < -hyd->Qtol) { - status = CLOSED; - } - break; - default: - break; - } - return(status); -} - - -StatType fcvstatus(EN_Project *pr, int k, StatType s, double h1, double h2) -/* -**----------------------------------------------------------- -** Input: k = link index -** s = current status -** h1 = head at upstream node -** h2 = head at downstream node -** Output: returns new valve status -** Purpose: updates status of a flow control valve. -** -** Valve status changes to XFCV if flow reversal. -** If current status is XFCV and current flow is -** above setting, then valve becomes active. -** If current status is XFCV, and current flow -** positive but still below valve setting, then -** status remains same. -**----------------------------------------------------------- -*/ -{ - StatType status; /* New valve status */ - hydraulics_t *hyd = &pr->hydraulics; - - status = s; - if (h1 - h2 < -hyd->Htol) { - status = XFCV; - } - else if ( hyd->LinkFlows[k] < -hyd->Qtol ) { - status = XFCV; - } - else if (s == XFCV && hyd->LinkFlows[k] >= hyd->LinkSetting[k]) { - status = ACTIVE; - } - return(status); -} - - -/*** Updated 9/7/00 ***/ -/*** Updated 11/19/01 ***/ -void tankstatus(EN_Project *pr, int k, int n1, int n2) -/* -**---------------------------------------------------------------- -** Input: k = link index -** n1 = start node of link -** n2 = end node of link -** Output: none -** Purpose: closes link flowing into full or out of empty tank -**---------------------------------------------------------------- -*/ -{ - int i,n; - double h,q; - Stank *tank; - - hydraulics_t *hyd = &pr->hydraulics; - EN_Network *net = &pr->network; - Slink *link = &net->Link[k]; - - /* Make node n1 be the tank */ - q = hyd->LinkFlows[k]; - i = n1 - net->Njuncs; - if (i <= 0) { - i = n2 - net->Njuncs; - if (i <= 0) { - return; - } - n = n1; - n1 = n2; - n2 = n; - q = -q; - } - h = hyd->NodeHead[n1] - hyd->NodeHead[n2]; - tank = &net->Tank[i]; - /* Skip reservoirs & closed links */ - if (tank->A == 0.0 || hyd->LinkStatus[k] <= CLOSED) { - return; - } - - /* If tank full, then prevent flow into it */ - if (hyd->NodeHead[n1] >= tank->Hmax - hyd->Htol) - { - - /* Case 1: Link is a pump discharging into tank */ - if ( link->Type == EN_PUMP ) { - if (link->N2 == n1) - hyd->LinkStatus[k] = TEMPCLOSED; - } - - /* Case 2: Downstream head > tank head */ - /* (i.e., an open outflow check valve would close) */ - else if (cvstatus(pr, OPEN, h, q) == CLOSED) { - hyd->LinkStatus[k] = TEMPCLOSED; - } - } - - /* If tank empty, then prevent flow out of it */ - if (hyd->NodeHead[n1] <= tank->Hmin + hyd->Htol) { - - /* Case 1: Link is a pump discharging from tank */ - if ( link->Type == EN_PUMP) { - if (link->N1 == n1) { - hyd->LinkStatus[k] = TEMPCLOSED; - } - } - - /* Case 2: Tank head > downstream head */ - /* (i.e., a closed outflow check valve would open) */ - else if (cvstatus(pr, CLOSED, h, q) == OPEN) { - hyd->LinkStatus[k] = TEMPCLOSED; - } - } -} /* End of tankstatus */ - - -int pswitch(EN_Project *pr) -/* -**-------------------------------------------------------------- -** Input: none -** Output: returns 1 if status of any link changes, 0 if not -** Purpose: adjusts settings of links controlled by junction -** pressures after a hydraulic solution is found -**-------------------------------------------------------------- -*/ -{ - int i, /* Control statement index */ - k, /* Link being controlled */ - n, /* Node controlling Slink */ - reset, /* Flag on control conditions */ - change, /* Flag for status or setting change */ - anychange = 0; /* Flag for 1 or more changes */ - char s; /* Current link status */ - - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - report_options_t *rep = &pr->report; - - /* Check each control statement */ - for (i=1; i <= net->Ncontrols; i++) - { - reset = 0; - if ( (k = net->Control[i].Link) <= 0) { - continue; - } - - /* Determine if control based on a junction, not a tank */ - if ( (n = net->Control[i].Node) > 0 && n <= net->Njuncs) { - /* Determine if control conditions are satisfied */ - if (net->Control[i].Type == LOWLEVEL - && hyd->NodeHead[n] <= net->Control[i].Grade + hyd->Htol ) { - reset = 1; - } - if (net->Control[i].Type == HILEVEL - && hyd->NodeHead[n] >= net->Control[i].Grade - hyd->Htol ) { - reset = 1; - } - } - - /* Determine if control forces a status or setting change */ - if (reset == 1) - { - Slink *link = &net->Link[k]; - change = 0; - s = hyd->LinkStatus[k]; - if (link->Type == EN_PIPE) { - if (s != net->Control[i].Status) { - change = 1; - } - } - if (link->Type == EN_PUMP) { - if (hyd->LinkSetting[k] != net->Control[i].Setting) { - change = 1; - } - } - if (link->Type >= EN_PRV) { - if (hyd->LinkSetting[k] != net->Control[i].Setting) { - change = 1; - } - else if (hyd->LinkSetting[k] == MISSING && s != net->Control[i].Status) { - change = 1; - } - } - - /* If a change occurs, update status & setting */ - if (change) { - hyd->LinkStatus[k] = net->Control[i].Status; - if (link->Type > EN_PIPE) { - hyd->LinkSetting[k] = net->Control[i].Setting; - } - if (rep->Statflag == FULL) { - writestatchange(pr, k,s,hyd->LinkStatus[k]); - } - - /* Re-set flow if status has changed */ -// if (S[k] != s) initlinkflow(k, S[k], K[k]); - anychange = 1; - } - } - } - return(anychange); -} /* End of pswitch */ - - -double newflows(EN_Project *pr) -/* -**---------------------------------------------------------------- -** Input: none -** Output: returns solution convergence error -** Purpose: updates link flows after new nodal heads computed -**---------------------------------------------------------------- -*/ -{ - double dh, /* Link head loss */ - dq; /* Link flow change */ - double dqsum, /* Network flow change */ - qsum; /* Network total flow */ - int k, n, n1, n2; - - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - - /* Initialize net inflows (i.e., demands) at tanks */ - for (n = net->Njuncs + 1; n <= net->Nnodes; n++) { - hyd->NodeDemand[n] = 0.0; - } - - /* Initialize sum of flows & corrections */ - qsum = 0.0; - dqsum = 0.0; - - /* Update flows in all links */ - for (k=1; k<=net->Nlinks; k++) - { - Slink *link = &net->Link[k]; - /* - ** Apply flow update formula: - ** dq = Y - P*(new head loss) - ** P = 1/(dh/dq) - ** Y = P*(head loss based on current flow) - ** where P & Y were computed in newcoeffs(). - */ - - n1 = link->N1; - n2 = link->N2; - dh = hyd->NodeHead[n1] - hyd->NodeHead[n2]; - dq = s->Y[k] - s->P[k] * dh; - - /* Adjust flow change by the relaxation factor */ - dq *= hyd->RelaxFactor; - - /* Prevent flow in constant HP pumps from going negative */ - if (link->Type == EN_PUMP) { - n = findpump(net,k); - if (net->Pump[n].Ptype == CONST_HP && dq > hyd->LinkFlows[k]) { - dq = hyd->LinkFlows[k]/2.0; - } - } - hyd->LinkFlows[k] -= dq; - - /* Update sum of absolute flows & flow corrections */ - qsum += ABS(hyd->LinkFlows[k]); - dqsum += ABS(dq); - - /* Update net flows to tanks */ - if ( hyd->LinkStatus[k] > CLOSED ) - { - if (n1 > net->Njuncs) { - hyd->NodeDemand[n1] -= hyd->LinkFlows[k]; - } - if (n2 > net->Njuncs) { - hyd->NodeDemand[n2] += hyd->LinkFlows[k]; - } - } - - } - - /* Update emitter flows */ - for (k=1; k<=net->Njuncs; k++) - { - if (net->Node[k].Ke == 0.0) { - continue; - } - dq = emitflowchange(pr,k); - hyd->EmitterFlows[k] -= dq; - qsum += ABS(hyd->EmitterFlows[k]); - dqsum += ABS(dq); - } - - /* Return ratio of total flow corrections to total flow */ - if (qsum > hyd->Hacc) { - return(dqsum/qsum); - } - else { - return(dqsum); - } -} /* End of newflows */ - - -void newcoeffs(EN_Project *pr) -/* -**-------------------------------------------------------------- -** Input: none -** Output: none -** Purpose: computes coefficients of linearized network eqns. -**-------------------------------------------------------------- -*/ -{ - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - EN_Network *n = &pr->network; - - memset(s->Aii,0,(n->Nnodes+1)*sizeof(double)); /* Reset coeffs. to 0 */ - memset(s->Aij,0,(hyd->Ncoeffs+1)*sizeof(double)); - memset(s->F,0,(n->Nnodes+1)*sizeof(double)); - memset(hyd->X_tmp,0,(n->Nnodes+1)*sizeof(double)); - memset(s->P,0,(n->Nlinks+1)*sizeof(double)); - memset(s->Y,0,(n->Nlinks+1)*sizeof(double)); - linkcoeffs(pr); /* Compute link coeffs. */ - emittercoeffs(pr); /* Compute emitter coeffs.*/ - nodecoeffs(pr); /* Compute node coeffs. */ - valvecoeffs(pr); /* Compute valve coeffs. */ -} /* End of newcoeffs */ - - -void linkcoeffs(EN_Project *pr) -/* -**-------------------------------------------------------------- -** Input: none -** Output: none -** Purpose: computes solution matrix coefficients for links -**-------------------------------------------------------------- -*/ -{ - int k,n1,n2; - - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - EN_Network *n = &pr->network; - - /* Examine each link of network */ - for (k=1; k<=net->Nlinks; k++) - { - Slink *link = &net->Link[k]; - n1 = link->N1; /* Start node of Slink */ - n2 = link->N2; /* End node of link */ - - /* Compute P[k] = 1 / (dh/dQ) and Y[k] = h * P[k] */ - /* for each link k (where h = link head loss). */ - /* FCVs, PRVs, and PSVs with non-fixed status */ - /* are analyzed later. */ - - switch (link->Type) - { - case EN_CVPIPE: - case EN_PIPE: - pipecoeff(pr, k); - break; - case EN_PUMP: - pumpcoeff(pr, k); - break; - case EN_PBV: - pbvcoeff(pr, k); - break; - case EN_TCV: - tcvcoeff(pr, k); - break; - case EN_GPV: - gpvcoeff(pr, k); - break; - case EN_FCV: - case EN_PRV: - case EN_PSV: /* If valve status fixed then treat as pipe, otherwise ignore the valve for now. */ - if (hyd->LinkSetting[k] == MISSING) { - valvecoeff(pr, k); //pipecoeff(k); - } - else { - continue; - } - break; - default: - continue; - } - - /* Update net nodal inflows (X), solution matrix (A) and RHS array (F) */ - /* (Use covention that flow out of node is (-), flow into node is (+)) */ - hyd->X_tmp[n1] -= hyd->LinkFlows[k]; - hyd->X_tmp[n2] += hyd->LinkFlows[k]; - s->Aij[s->Ndx[k]] -= s->P[k]; /* Off-diagonal coeff. */ - if (n1 <= n->Njuncs) /* Node n1 is junction */ - { - s->Aii[s->Row[n1]] += s->P[k]; /* Diagonal coeff. */ - s->F[s->Row[n1]] += s->Y[k]; /* RHS coeff. */ - } - else { - s->F[s->Row[n2]] += (s->P[k]*hyd->NodeHead[n1]); /* Node n1 is a tank */ - } - if (n2 <= n->Njuncs) { /* Node n2 is junction */ - s->Aii[s->Row[n2]] += s->P[k]; /* Diagonal coeff. */ - s->F[s->Row[n2]] -= s->Y[k]; /* RHS coeff. */ - } - else { - s->F[s->Row[n1]] += (s->P[k] * hyd->NodeHead[n2]); /* Node n2 is a tank */ - } - } -} /* End of linkcoeffs */ - - -void nodecoeffs(EN_Project *pr) -/* -**---------------------------------------------------------------- -** Input: none -** Output: none -** Purpose: completes calculation of nodal flow imbalance (X) -** & flow correction (F) arrays -**---------------------------------------------------------------- -*/ -{ - int i; - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - EN_Network *n = &pr->network; - - /* For junction nodes, subtract demand flow from net */ - /* flow imbalance & add imbalance to RHS array F. */ - for (i=1; i <= n->Njuncs; i++) - { - hyd->X_tmp[i] -= hyd->NodeDemand[i]; - s->F[s->Row[i]] += hyd->X_tmp[i]; - } -} /* End of nodecoeffs */ - - -void valvecoeffs(EN_Project *pr) -/* -**-------------------------------------------------------------- -** Input: none -** Output: none -** Purpose: computes matrix coeffs. for PRVs, PSVs & FCVs -** whose status is not fixed to OPEN/CLOSED -**-------------------------------------------------------------- -*/ -{ - int i,k,n1,n2; - - hydraulics_t *hyd = &pr->hydraulics; - EN_Network *n = &pr->network; - Slink *link; - Svalve *valve; - - for (i=1; i<=n->Nvalves; i++) /* Examine each valve */ - { - valve = &n->Valve[i]; - k = valve->Link; /* Link index of valve */ - link = &n->Link[k]; - if (hyd->LinkSetting[k] == MISSING) { - continue; /* Valve status fixed */ - } - n1 = link->N1; /* Start & end nodes */ - n2 = link->N2; - switch (link->Type) /* Call valve-specific */ - { /* function */ - case EN_PRV: - prvcoeff(pr, k,n1,n2); - break; - case EN_PSV: - psvcoeff(pr, k,n1,n2); - break; - case EN_FCV: - fcvcoeff(pr, k,n1,n2); - break; - default: continue; - } - } -} /* End of valvecoeffs */ - - -void emittercoeffs(EN_Project *pr) -/* -**-------------------------------------------------------------- -** Input: none -** Output: none -** Purpose: computes matrix coeffs. for emitters -** -** Note: Emitters consist of a fictitious pipe connected to -** a fictitious reservoir whose elevation equals that -** of the junction. The headloss through this pipe is -** Ke*(Flow)^hyd->Qexp, where Ke = emitter headloss coeff. -**-------------------------------------------------------------- -*/ -{ - int i; - double ke; - double p; - double q; - double y; - double z; - - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - EN_Network *n = &pr->network; - - for (i=1; i <= n->Njuncs; i++) - { - Snode *node = &n->Node[i]; - if (node->Ke == 0.0) { - continue; - } - ke = MAX(CSMALL, node->Ke); - q = hyd->EmitterFlows[i]; - z = ke * pow(ABS(q),hyd->Qexp); - p = hyd->Qexp * z / ABS(q); - if (p < hyd->RQtol) { - p = 1.0 / hyd->RQtol; - } - else { - p = 1.0 / p; - } - y = SGN(q)*z*p; - s->Aii[s->Row[i]] += p; - s->F[s->Row[i]] += y + p * node->El; - hyd->X_tmp[i] -= q; - } -} - - -double emitflowchange(EN_Project *pr, int i) -/* -**-------------------------------------------------------------- -** Input: i = node index -** Output: returns change in flow at an emitter node -** Purpose: computes flow change at an emitter node -**-------------------------------------------------------------- -*/ -{ - double ke, p; - hydraulics_t *hyd = &pr->hydraulics; - EN_Network *n = &pr->network; - Snode *node = &n->Node[i]; - - ke = MAX(CSMALL, node->Ke); - p = hyd->Qexp * ke * pow(ABS(hyd->EmitterFlows[i]),(hyd->Qexp - 1.0)); - if (p < hyd->RQtol) { - p = 1/hyd->RQtol; - } - else { - p = 1.0/p; - } - return(hyd->EmitterFlows[i] / hyd->Qexp - p * (hyd->NodeHead[i] - node->El)); -} - - -void pipecoeff(EN_Project *pr, int k) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes P & Y coefficients for pipe k -** -** P = inverse head loss gradient = 1/(dh/dQ) -** Y = flow correction term = h*P -**-------------------------------------------------------------- -*/ -{ - double hpipe, /* Normal head loss */ - hml, /* Minor head loss */ - ml, /* Minor loss coeff. */ - p, /* q*(dh/dq) */ - q, /* Abs. value of flow */ - r, /* Resistance coeff. */ - r1, /* Total resistance factor */ - f, /* D-W friction factor */ - dfdq; /* Derivative of fric. fact. */ - - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - Slink *link = &pr->network.Link[k]; - - /* For closed pipe use headloss formula: h = CBIG*q */ - if (hyd->LinkStatus[k] <= CLOSED) - { - s->P[k] = 1.0/CBIG; - s->Y[k] = hyd->LinkFlows[k]; - return; - } - - /* Evaluate headloss coefficients */ - q = ABS(hyd->LinkFlows[k]); /* Absolute flow */ - ml = link->Km; /* Minor loss coeff. */ - r = link->R; /* Resistance coeff. */ - f = 1.0; /* D-W friction factor */ - if (hyd->Formflag == DW) f = DWcoeff(pr,k,&dfdq); - r1 = f*r+ml; - - /* Use large P coefficient for small flow resistance product */ - if (r1*q < hyd->RQtol) - { - s->P[k] = 1.0/hyd->RQtol; - s->Y[k] = hyd->LinkFlows[k]/hyd->Hexp; - return; - } - - /* Compute P and Y coefficients */ - if (hyd->Formflag == DW) /* D-W eqn. */ - { - hpipe = r1*SQR(q); /* Total head loss */ - p = 2.0*r1*q; /* |dh/dQ| */ - /* + dfdq*r*q*q;*/ /* Ignore df/dQ term */ - p = 1.0/p; - s->P[k] = p; - s->Y[k] = SGN(hyd->LinkFlows[k])*hpipe*p; - } - else /* H-W or C-M eqn. */ - { - hpipe = r*pow(q,hyd->Hexp); /* Friction head loss */ - p = hyd->Hexp*hpipe; /* Q*dh(friction)/dQ */ - if (ml > 0.0) - { - hml = ml*q*q; /* Minor head loss */ - p += 2.0*hml; /* Q*dh(Total)/dQ */ - } - else hml = 0.0; - p = hyd->LinkFlows[k]/p; /* 1 / (dh/dQ) */ - s->P[k] = ABS(p); - s->Y[k] = p*(hpipe + hml); - } -} /* End of pipecoeff */ - - -double DWcoeff(EN_Project *pr, int k, double *dfdq) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: returns Darcy-Weisbach friction factor -** Purpose: computes Darcy-Weisbach friction factor -** -** Uses interpolating polynomials developed by -** E. Dunlop for transition flow from 2000 < Re < 4000. -** -** df/dq term is ignored as it slows convergence rate. -**-------------------------------------------------------------- -*/ -{ - double q, /* Abs. value of flow */ - f; /* Friction factor */ - double x1,x2,x3,x4, - y1,y2,y3, - fa,fb,r; - double s,w; - - hydraulics_t *hyd = &pr->hydraulics; - Slink *link = &pr->network.Link[k]; - - *dfdq = 0.0; - if (link->Type > EN_PIPE) - return(1.0); /* Only apply to pipes */ - q = ABS(hyd->LinkFlows[k]); - s = hyd->Viscos * link->Diam; - w = q/s; /* w = Re(Pi/4) */ - if (w >= A1) /* Re >= 4000; Colebrook Formula */ - { - y1 = A8/pow(w,0.9); - y2 = link->Kc/(3.7*link->Diam) + y1; - y3 = A9*log(y2); - f = 1.0/SQR(y3); - /* *dfdq = (2.0+AA*y1/(y2*y3))*f; */ /* df/dq */ - } - else if (w > A2) /* Re > 2000; Interpolation formula */ - { - y2 = link->Kc/(3.7*link->Diam) + AB; - y3 = A9*log(y2); - fa = 1.0/SQR(y3); - fb = (2.0+AC/(y2*y3))*fa; - r = w/A2; - x1 = 7.0*fa - fb; - x2 = 0.128 - 17.0*fa + 2.5*fb; - x3 = -0.128 + 13.0*fa - (fb+fb); - x4 = r*(0.032 - 3.0*fa + 0.5*fb); - f = x1 + r*(x2 + r*(x3+x4)); - /* *dfdq = (x1 + x1 + r*(3.0*x2 + r*(4.0*x3 + 5.0*x4))); */ - } - else if (w > A4) /* Laminar flow: Hagen-Poiseuille Formula */ - { - f = A3*s/q; - /* *dfdq = A3*s; */ - } - else - { - f = 8.0; - *dfdq = 0.0; - } - return(f); -} /* End of DWcoeff */ - - -/*** Updated 10/25/00 ***/ -/*** Updated 12/29/00 ***/ -void pumpcoeff(EN_Project *pr, int k) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes P & Y coeffs. for pump in link k -**-------------------------------------------------------------- -*/ -{ - int p; /* Pump index */ - double h0, /* Shutoff head */ - q, /* Abs. value of flow */ - r, /* Flow resistance coeff. */ - n; /* Flow exponent coeff. */ - hydraulics_t *hyd; - solver_t *s; - double setting; - Spump *pump; - - hyd = &pr->hydraulics; - s = &hyd->solver; - - setting = hyd->LinkSetting[k]; - - /* Use high resistance pipe if pump closed or cannot deliver head */ - if (hyd->LinkStatus[k] <= CLOSED || setting == 0.0) { - s->P[k] = 1.0/CBIG; - s->Y[k] = hyd->LinkFlows[k]; - return; - } - - q = ABS(hyd->LinkFlows[k]); - q = MAX(q,TINY); - p = findpump(&pr->network,k); - - pump = &pr->network.Pump[p]; - /* Get pump curve coefficients for custom pump curve. */ - if (pump->Ptype == CUSTOM) - { - /* Find intercept (h0) & slope (r) of pump curve */ - /* line segment which contains speed-adjusted flow. */ - curvecoeff(pr,pump->Hcurve, q/setting, &h0, &r); - - /* Determine head loss coefficients. */ - pump->H0 = -h0; - pump->R = -r; - pump->N = 1.0; - } - - /* Adjust head loss coefficients for pump speed. */ - h0 = SQR(setting) * pump->H0; - n = pump->N; - r = pump->R * pow(setting,2.0-n); - if (n != 1.0) { - r = n * r * pow(q,n-1.0); - } - - /* Compute inverse headloss gradient (P) and flow correction factor (Y) */ - s->P[k] = 1.0/MAX(r,hyd->RQtol); - s->Y[k] = hyd->LinkFlows[k]/n + s->P[k]*h0; -} /* End of pumpcoeff */ - - -/*** Updated 10/25/00 ***/ -/*** Updated 12/29/00 ***/ -void curvecoeff(EN_Project *p, int i, double q, double *h0, double *r) -/* -**------------------------------------------------------------------- -** Input: i = curve index -** q = flow rate -** Output: *h0 = head at zero flow (y-intercept) -** *r = dHead/dFlow (slope) -** Purpose: computes intercept and slope of head v. flow curve -** at current flow. -**------------------------------------------------------------------- -*/ -{ - int k1, k2, npts; - double *x, *y; - Scurve *curve; - - /* Remember that curve is stored in untransformed units */ - q *= p->Ucf[FLOW]; - curve = &p->network.Curve[i]; - x = curve->X; /* x = flow */ - y = curve->Y; /* y = head */ - npts = curve->Npts; - - /* Find linear segment of curve that brackets flow q */ - k2 = 0; - while (k2 < npts && x[k2] < q) - k2++; - - if (k2 == 0) - k2++; - - else if (k2 == npts) - k2--; - - k1 = k2 - 1; - - /* Compute slope and intercept of this segment */ - *r = (y[k2]-y[k1]) / (x[k2]-x[k1]); - *h0 = y[k1] - (*r)*x[k1]; - - /* Convert units */ - *h0 = (*h0) / p->Ucf[HEAD]; - *r = (*r)*p->Ucf[FLOW]/p->Ucf[HEAD]; -} /* End of curvecoeff */ - - -void gpvcoeff(EN_Project *p, int k) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes P & Y coeffs. for general purpose valve -**-------------------------------------------------------------- -*/ -{ - double h0, /* Headloss curve intercept */ - q, /* Abs. value of flow */ - r; /* Flow resistance coeff. */ - - hydraulics_t *hyd = &p->hydraulics; - solver_t *s = &hyd->solver; - -/*** Updated 9/7/00 ***/ - /* Treat as a pipe if valve closed */ - if (hyd->LinkStatus[k] == CLOSED) { - valvecoeff(p,k); //pipecoeff(k); - } - /* Otherwise utilize headloss curve */ - /* whose index is stored in K */ - else { - /* Find slope & intercept of headloss curve. */ - q = ABS(hyd->LinkFlows[k]); - q = MAX(q,TINY); - -/*** Updated 10/25/00 ***/ -/*** Updated 12/29/00 ***/ - curvecoeff(p,(int)ROUND(hyd->LinkSetting[k]),q,&h0,&r); - - /* Compute inverse headloss gradient (P) */ - /* and flow correction factor (Y). */ - s->P[k] = 1.0 / MAX(r,hyd->RQtol); - s->Y[k] = s->P[k]*(h0 + r*q) * SGN(hyd->LinkFlows[k]); - } -} - - -void pbvcoeff(EN_Project *p, int k) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes P & Y coeffs. for pressure breaker valve -**-------------------------------------------------------------- -*/ -{ - - Slink *link = &p->network.Link[k]; - hydraulics_t *hyd = &p->hydraulics; - solver_t *s = &hyd->solver; - - /* If valve fixed OPEN or CLOSED then treat as a pipe */ - if (hyd->LinkSetting[k] == MISSING || hyd->LinkSetting[k] == 0.0) { - valvecoeff(p,k); //pipecoeff(k); - } - - /* If valve is active */ - else { - /* Treat as a pipe if minor loss > valve setting */ - if (link->Km * SQR(hyd->LinkFlows[k]) > hyd->LinkSetting[k]) { - valvecoeff(p,k); //pipecoeff(k); - } - /* Otherwise force headloss across valve to be equal to setting */ - else { - s->P[k] = CBIG; - s->Y[k] = hyd->LinkSetting[k] * CBIG; - } - } -} /* End of pbvcoeff */ - - -void tcvcoeff(EN_Project *p, int k) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes P & Y coeffs. for throttle control valve -**-------------------------------------------------------------- -*/ -{ - double km; - Slink *link = &p->network.Link[k]; - hydraulics_t *hyd = &p->hydraulics; - - /* Save original loss coeff. for open valve */ - km = link->Km; - - /* If valve not fixed OPEN or CLOSED, compute its loss coeff. */ - if (hyd->LinkSetting[k] != MISSING) { - link->Km = 0.02517 * hyd->LinkSetting[k] / (SQR(link->Diam)*SQR(link->Diam)); - } - - /* Then apply usual pipe formulas */ - valvecoeff(p,k); //pipecoeff(k); - - /* Restore original loss coeff. */ - link->Km = km; -} /* End of tcvcoeff */ - - -void prvcoeff(EN_Project *p, int k, int n1, int n2) -/* -**-------------------------------------------------------------- -** Input: k = link index -** n1 = upstream node of valve -** n2 = downstream node of valve -** Output: none -** Purpose: computes solution matrix coeffs. for pressure -** reducing valves -**-------------------------------------------------------------- -*/ -{ - int i,j; /* Rows of solution matrix */ - double hset; /* Valve head setting */ - hydraulics_t *hyd = &p->hydraulics; - solver_t *s = &hyd->solver; - - i = s->Row[n1]; /* Matrix rows of nodes */ - j = s->Row[n2]; - hset = p->network.Node[n2].El + hyd->LinkSetting[k]; /* Valve setting */ - - if (hyd->LinkStatus[k] == ACTIVE) - { - /* - Set coeffs. to force head at downstream - node equal to valve setting & force flow (when updated in - newflows()) equal to flow imbalance at downstream node. - */ - s->P[k] = 0.0; - s->Y[k] = hyd->LinkFlows[k] + hyd->X_tmp[n2]; /* Force flow balance */ - s->F[j] += (hset * CBIG); /* Force head = hset */ - s->Aii[j] += CBIG; /* at downstream node */ - if (hyd->X_tmp[n2] < 0.0) { - s->F[i] += hyd->X_tmp[n2]; - } - return; - } - - /* - For OPEN, CLOSED, or XPRESSURE valve - compute matrix coeffs. using the valvecoeff() function. - */ - valvecoeff(p,k); /*pipecoeff(k);*/ - s->Aij[s->Ndx[k]] -= s->P[k]; - s->Aii[i] += s->P[k]; - s->Aii[j] += s->P[k]; - s->F[i] += (s->Y[k] - hyd->LinkFlows[k]); - s->F[j] -= (s->Y[k] - hyd->LinkFlows[k]); -} /* End of prvcoeff */ - - -void psvcoeff(EN_Project *p, int k, int n1, int n2) -/* -**-------------------------------------------------------------- -** Input: k = link index -** n1 = upstream node of valve -** n2 = downstream node of valve -** Output: none -** Purpose: computes solution matrix coeffs. for pressure -** sustaining valve -**-------------------------------------------------------------- -*/ -{ - int i,j; /* Rows of solution matrix */ - double hset; /* Valve head setting */ - - hydraulics_t *hyd = &p->hydraulics; - solver_t *s = &hyd->solver; - - i = s->Row[n1]; /* Matrix rows of nodes */ - j = s->Row[n2]; - hset = p->network.Node[n1].El + hyd->LinkSetting[k]; /* Valve setting */ - - if (hyd->LinkStatus[k] == ACTIVE) - { - /* - Set coeffs. to force head at upstream - node equal to valve setting & force flow (when updated in - newflows()) equal to flow imbalance at upstream node. - */ - s->P[k] = 0.0; - s->Y[k] = hyd->LinkFlows[k] - hyd->X_tmp[n1]; /* Force flow balance */ - s->F[i] += (hset*CBIG); /* Force head = hset */ - s->Aii[i] += CBIG; /* at upstream node */ - if (hyd->X_tmp[n1] > 0.0) { - s->F[j] += hyd->X_tmp[n1]; - } - return; - } - - /* - For OPEN, CLOSED, or XPRESSURE valve - compute matrix coeffs. using the valvecoeff() function. - */ - valvecoeff(p,k); /*pipecoeff(k);*/ - s->Aij[s->Ndx[k]] -= s->P[k]; - s->Aii[i] += s->P[k]; - s->Aii[j] += s->P[k]; - s->F[i] += (s->Y[k] - hyd->LinkFlows[k]); - s->F[j] -= (s->Y[k] - hyd->LinkFlows[k]); -} /* End of psvcoeff */ - - -void fcvcoeff(EN_Project *p, int k, int n1, int n2) -/* -**-------------------------------------------------------------- -** Input: k = link index -** n1 = upstream node of valve -** n2 = downstream node of valve -** Output: none -** Purpose: computes solution matrix coeffs. for flow control -** valve -**-------------------------------------------------------------- -*/ -{ - int i,j; /* Rows in solution matrix */ - double q; /* Valve flow setting */ - - hydraulics_t *hyd = &p->hydraulics; - solver_t *s = &hyd->solver; - - q = hyd->LinkSetting[k]; - i = hyd->solver.Row[n1]; - j = hyd->solver.Row[n2]; - - /* - If valve active, break network at valve and treat - flow setting as external demand at upstream node - and external supply at downstream node. - */ - if (hyd->LinkStatus[k] == ACTIVE) - { - hyd->X_tmp[n1] -= q; - s->F[i] -= q; - hyd->X_tmp[n2] += q; - s->F[j] += q; - /*P[k] = 0.0;*/ - s->P[k] = 1.0/CBIG; - s->Aij[s->Ndx[k]] -= s->P[k]; - s->Aii[i] += s->P[k]; - s->Aii[j] += s->P[k]; - s->Y[k] = hyd->LinkFlows[k] - q; - } - /* - Otherwise treat valve as an open pipe - */ - else - { - valvecoeff(p,k); //pipecoeff(k); - s->Aij[s->Ndx[k]] -= s->P[k]; - s->Aii[i] += s->P[k]; - s->Aii[j] += s->P[k]; - s->F[i] += (s->Y[k] - hyd->LinkFlows[k]); - s->F[j] -= (s->Y[k] - hyd->LinkFlows[k]); - } -} /* End of fcvcoeff */ - - -/*** New function added. ***/ -void valvecoeff(EN_Project *pr, int k) -/* -**-------------------------------------------------------------- -** Input: k = link index -** Output: none -** Purpose: computes solution matrix coeffs. for a completely -** open, closed, or throttled control valve. -**-------------------------------------------------------------- -*/ -{ - double p; - - EN_Network *n = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - solver_t *s = &hyd->solver; - - Slink *link = &n->Link[k]; - - double flow = hyd->LinkFlows[k]; - - // Valve is closed. Use a very small matrix coeff. - if (hyd->LinkStatus[k] <= CLOSED) - { - s->P[k] = 1.0/CBIG; - s->Y[k] = flow; - return; - } - - // Account for any minor headloss through the valve - if (link->Km > 0.0) - { - p = 2.0 * link->Km * fabs(flow); - if ( p < hyd->RQtol ) { - p = hyd->RQtol; - } - s->P[k] = 1.0 / p; - s->Y[k] = flow / 2.0; - } - else - { - s->P[k] = 1.0 / hyd->RQtol; - s->Y[k] = flow; - } -} - /**************** END OF HYDRAUL.C ***************/ - diff --git a/src/hydsolver.c b/src/hydsolver.c new file mode 100644 index 0000000..0adf780 --- /dev/null +++ b/src/hydsolver.c @@ -0,0 +1,1049 @@ +/* +********************************************************************* + +HYDSOLVER.C -- Equilibrium hydraulic solver for the EPANET Program + +This module contains a pipe network hydraulic solver that computes +flows and pressures within the network at a specific point in time. + +The solver implements Todini's Global Gradient Algorithm. +******************************************************************* +*/ + +#include +#include +#ifndef __APPLE__ +#include +#else +#include +#endif +#include +#include "text.h" +#include "types.h" +#include "funcs.h" + +// Error in network being hydraulically balanced +typedef struct { + double maxheaderror; + double maxflowerror; + double maxflowchange; + int maxheadlink; + int maxflownode; + int maxflowlink; +} Hydbalance; + +// External functions +//int hydsolve(EN_Project *pr, int *iter, double *relerr); + +// Local functions +static int badvalve(EN_Project *pr, int); +static int valvestatus(EN_Project *pr); +static int linkstatus(EN_Project *pr); +static StatType cvstatus(EN_Project *pr, StatType, double, double); +static StatType pumpstatus(EN_Project *pr, int, double); +static StatType prvstatus(EN_Project *pr, int, StatType, double, double, double); +static StatType psvstatus(EN_Project *pr, int, StatType, double, double, double); +static StatType fcvstatus(EN_Project *pr, int, StatType, double, double); +static void tankstatus(EN_Project *pr, int, int, int); +static int pswitch(EN_Project *pr); + +static double newflows(EN_Project *pr, Hydbalance *hbal); +static double emitflowchange(EN_Project *pr, int i); +static void checkhydbalance(EN_Project *pr, Hydbalance *hbal); +static int hasconverged(EN_Project *pr, double *relerr, Hydbalance *hbal); +static void reporthydbal(EN_Project *pr, Hydbalance *hbal); + + +int hydsolve(EN_Project *pr, int *iter, double *relerr) +/* +**------------------------------------------------------------------- +** Input: none +** Output: *iter = # of iterations to reach solution +** *relerr = convergence error in solution +** returns error code +** Purpose: solves network nodal equations for heads and flows +** using Todini's Gradient algorithm +** +*** Updated 9/7/00 *** +*** Updated 2.00.11 *** +*** Updated 2.00.12 *** +** Notes: Status checks on CVs, pumps and pipes to tanks are made +** every hyd->CheckFreq iteration, up until MaxCheck iterations +** are reached. Status checks on control valves are made +** every iteration if DampLimit = 0 or only when the +** convergence error is at or below DampLimit. If DampLimit +** is > 0 then future computed flow changes are only 60% of +** their full value. A complete status check on all links +** is made when convergence is achieved. If convergence is +** not achieved in hyd->MaxIter trials and hyd->ExtraIter > 0 then +** another hyd->ExtraIter trials are made with no status changes +** made to any links and a warning message is generated. +** +** This procedure calls linsolve() which appears in SMATRIX.C. +**------------------------------------------------------------------- +*/ +{ + int i; /* Node index */ + int errcode = 0; /* Node causing solution error */ + int nextcheck; /* Next status check trial */ + int maxtrials; /* Max. trials for convergence */ + double newerr; /* New convergence error */ + int valveChange; /* Valve status change flag */ + int statChange; /* Non-valve status change flag */ + Hydbalance hydbal; /* Hydraulic balance errors */ + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + report_options_t *rep = &pr->report; + + /* Initialize status checking & relaxation factor */ + nextcheck = hyd->CheckFreq; + hyd->RelaxFactor = 1.0; + + /* Repeat iterations until convergence or trial limit is exceeded. */ + /* (hyd->ExtraIter used to increase trials in case of status cycling.) */ + if (pr->report.Statflag == FULL) { + writerelerr(pr, 0, 0); + } + maxtrials = hyd->MaxIter; + if (hyd->ExtraIter > 0) { + maxtrials += hyd->ExtraIter; + } + *iter = 1; + while (*iter <= maxtrials) { + /* + ** Compute coefficient matrices A & F and solve A*H = F + ** where H = heads, A = Jacobian coeffs. derived from + ** head loss gradients, & F = flow correction terms. + ** Solution for H is returned in F from call to linsolve(). + */ + for (i = 1; i <= net->Nlinks; i++) { + hlosscoeff(pr, i); + } + matrixcoeffs(pr); + errcode = linsolve(&hyd->solver, net->Njuncs); + + /* Take action depending on error code */ + if (errcode < 0) { + break; /* Memory allocation problem */ + } + if (errcode > 0) { /* Ill-conditioning problem */ + /* If control valve causing problem, fix its status & continue, */ + /* otherwise end the iterations with no solution. */ + if (badvalve(pr, sol->Order[errcode])) { + continue; + } + else break; + } + + /* Update current solution. */ + /* (Row[i] = row of solution matrix corresponding to node i). */ + for (i = 1; i <= net->Njuncs; i++) { + hyd->NodeHead[i] = sol->F[sol->Row[i]]; /* Update heads */ + } + newerr = newflows(pr, &hydbal); /* Update flows */ + *relerr = newerr; + + /* Write convergence error to status report if called for */ + if (rep->Statflag == FULL) { + writerelerr(pr, *iter, *relerr); + } + + /* Apply solution damping & check for change in valve status */ + hyd->RelaxFactor = 1.0; + valveChange = FALSE; + if (hyd->DampLimit > 0.0) { + if (*relerr <= hyd->DampLimit) { + hyd->RelaxFactor = 0.6; + valveChange = valvestatus(pr); + } + } + else { + valveChange = valvestatus(pr); + } + + /* Check for convergence */ + if (hasconverged(pr, relerr, &hydbal)) { + /* We have convergence. Quit if we are into extra iterations. */ + if (*iter > hyd->MaxIter) { + break; + } + + /* Quit if no status changes occur. */ + statChange = FALSE; + if (valveChange) { + statChange = TRUE; + } + if (linkstatus(pr)) { + statChange = TRUE; + } + if (pswitch(pr)) { + statChange = TRUE; + } + if (!statChange) { + break; + } + + /* We have a status change so continue the iterations */ + nextcheck = *iter + hyd->CheckFreq; + } + + /* No convergence yet. See if its time for a periodic status */ + /* check on pumps, CV's, and pipes connected to tanks. */ + else if (*iter <= hyd->MaxCheck && *iter == nextcheck) + { + linkstatus(pr); + nextcheck += hyd->CheckFreq; + } + (*iter)++; + } + + /* Iterations ended. Report any errors. */ + if (errcode < 0) errcode = 101; /* Memory allocation error */ + else if (errcode > 0) + { + writehyderr(pr, sol->Order[errcode]); /* Ill-conditioned eqns. error */ + errcode = 110; + } + + /* Add any emitter flows to junction demands */ + for (i = 1; i <= net->Njuncs; i++) { + hyd->NodeDemand[i] += hyd->EmitterFlows[i]; + } + return(errcode); +} /* End of netsolve */ + + +int badvalve(EN_Project *pr, int n) +/* +**----------------------------------------------------------------- +** Input: n = node index +** Output: returns 1 if node n belongs to an active control valve, +** 0 otherwise +** Purpose: determines if a node belongs to an active control valve +** whose setting causes an inconsistent set of eqns. If so, +** the valve status is fixed open and a warning condition +** is generated. +**----------------------------------------------------------------- +*/ +{ + int i, k, n1, n2; + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + report_options_t *rep = &pr->report; + time_options_t *time = &pr->time_options; + Slink *link; + + for (i = 1; i <= net->Nvalves; i++) { + k = net->Valve[i].Link; + link = &net->Link[k]; + n1 = link->N1; + n2 = link->N2; + if (n == n1 || n == n2) { + EN_LinkType t = link->Type; + if (t == EN_PRV || t == EN_PSV || t == EN_FCV) { + if (hyd->LinkStatus[k] == ACTIVE) { + if (rep->Statflag == FULL) { + sprintf(pr->Msg, FMT61, clocktime(rep->Atime, time->Htime), link->ID); + writeline(pr, pr->Msg); + } + if (link->Type == EN_FCV) { + hyd->LinkStatus[k] = XFCV; + } + else { + hyd->LinkStatus[k] = XPRESSURE; + } + return(1); + } + } + return(0); + } + } + return(0); +} + + +int valvestatus(EN_Project *pr) +/* +**----------------------------------------------------------------- +** Input: none +** Output: returns 1 if any pressure or flow control valve +** changes status, 0 otherwise +** Purpose: updates status for PRVs & PSVs whose status +** is not fixed to OPEN/CLOSED +**----------------------------------------------------------------- +*/ +{ + int change = FALSE, /* Status change flag */ + i, k, /* Valve & link indexes */ + n1, n2; /* Start & end nodes */ + StatType status; /* Valve status settings */ + double hset; /* Valve head setting */ + Slink *link; + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + report_options_t *rep = &pr->report; + + for (i = 1; i <= net->Nvalves; i++) /* Examine each valve */ + { + k = net->Valve[i].Link; /* Link index of valve */ + link = &net->Link[k]; + if (hyd->LinkSetting[k] == MISSING) { + continue; /* Valve status fixed */ + } + n1 = link->N1; /* Start & end nodes */ + n2 = link->N2; + status = hyd->LinkStatus[k]; /* Save current status */ + +// if (s != CLOSED /* No change if flow is */ +// && ABS(hyd->LinkFlows[k]) < hyd->Qtol) continue; /* negligible. */ + + switch (link->Type) /* Evaluate new status: */ + { + case EN_PRV: + hset = net->Node[n2].El + hyd->LinkSetting[k]; + hyd->LinkStatus[k] = prvstatus(pr, k, status, hset, hyd->NodeHead[n1], hyd->NodeHead[n2]); + break; + case EN_PSV: + hset = net->Node[n1].El + hyd->LinkSetting[k]; + hyd->LinkStatus[k] = psvstatus(pr, k, status, hset, hyd->NodeHead[n1], hyd->NodeHead[n2]); + break; + +//// FCV status checks moved back into the linkstatus() function //// +// case FCV: S[k] = fcvstatus(k,s,hyd->NodeHead[n1],hyd->NodeHead[n2]); +// break; + + default: + continue; + } + + /*** Updated 9/7/00 ***/ + /* Do not reset flow in valve if its status changes. */ + /* This strategy improves convergence. */ + + /* Check for status change */ + if (status != hyd->LinkStatus[k]) + { + if (rep->Statflag == FULL) { + writestatchange(pr, k, status, hyd->LinkStatus[k]); + } + change = TRUE; + } + } + return(change); +} /* End of valvestatus() */ + + +/*** Updated 9/7/00 ***/ +int linkstatus(EN_Project *pr) +/* +**-------------------------------------------------------------- +** Input: none +** Output: returns 1 if any link changes status, 0 otherwise +** Purpose: determines new status for pumps, CVs, FCVs & pipes +** to tanks. +**-------------------------------------------------------------- +*/ +{ + int change = FALSE, /* Status change flag */ + k, /* Link index */ + n1, /* Start node index */ + n2; /* End node index */ + double dh; /* Head difference */ + StatType status; /* Current status */ + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + report_options_t *rep = &pr->report; + Slink *link; + + /* Examine each Slink */ + for (k = 1; k <= net->Nlinks; k++) + { + link = &net->Link[k]; + n1 = link->N1; + n2 = link->N2; + dh = hyd->NodeHead[n1] - hyd->NodeHead[n2]; + + /* Re-open temporarily closed links (status = XHEAD or TEMPCLOSED) */ + status = hyd->LinkStatus[k]; + if (status == XHEAD || status == TEMPCLOSED) { + hyd->LinkStatus[k] = OPEN; + } + + /* Check for status changes in CVs and pumps */ + if (link->Type == EN_CVPIPE) { + hyd->LinkStatus[k] = cvstatus(pr, hyd->LinkStatus[k], dh, hyd->LinkFlows[k]); + } + if (link->Type == EN_PUMP && hyd->LinkStatus[k] >= OPEN && hyd->LinkSetting[k] > 0.0) { + hyd->LinkStatus[k] = pumpstatus(pr, k, -dh); + } + + /* Check for status changes in non-fixed FCVs */ + if (link->Type == EN_FCV && hyd->LinkSetting[k] != MISSING) { + hyd->LinkStatus[k] = fcvstatus(pr, k, status, hyd->NodeHead[n1], hyd->NodeHead[n2]); // + } + + /* Check for flow into (out of) full (empty) tanks */ + if (n1 > net->Njuncs || n2 > net->Njuncs) { + tankstatus(pr, k, n1, n2); + } + + /* Note change in link status; do not revise link flow */ + if (status != hyd->LinkStatus[k]) { + change = TRUE; + if (rep->Statflag == FULL) { + writestatchange(pr, k, status, hyd->LinkStatus[k]); + } + + //if (S[k] <= CLOSED) hyd->LinkFlows[k] = QZERO; + //else setlinkflow(k, dh); + } + } + return(change); +} /* End of linkstatus */ + + +StatType cvstatus(EN_Project *pr, StatType s, double dh, double q) +/* +**-------------------------------------------------- +** Input: s = current status +** dh = headloss +** q = flow +** Output: returns new link status +** Purpose: updates status of a check valve. +**-------------------------------------------------- +*/ +{ + hydraulics_t *hyd = &pr->hydraulics; + + /* Prevent reverse flow through CVs */ + if (ABS(dh) > hyd->Htol) + { + if (dh < -hyd->Htol) { + return(CLOSED); + } + else if (q < -hyd->Qtol) { + return(CLOSED); + } + else { + return(OPEN); + } + } + else + { + if (q < -hyd->Qtol) { + return(CLOSED); + } + else { + return(s); + } + } +} + + +StatType pumpstatus(EN_Project *pr, int k, double dh) +/* +**-------------------------------------------------- +** Input: k = link index +** dh = head gain +** Output: returns new pump status +** Purpose: updates status of an open pump. +**-------------------------------------------------- +*/ +{ + int p; + double hmax; + hydraulics_t *hyd = &pr->hydraulics; + EN_Network *net = &pr->network; + + /* Prevent reverse flow through pump */ + p = findpump(net, k); + if (net->Pump[p].Ptype == CONST_HP) { + hmax = BIG; + } + else { + hmax = SQR(hyd->LinkSetting[k]) * net->Pump[p].Hmax; + } + if (dh > hmax + hyd->Htol) { + return(XHEAD); + } + + /*** Flow higher than pump curve no longer results in a status change ***/ + /* Check if pump cannot deliver flow */ + //if (hyd->LinkFlows[k] > K[k]*Pump[p].Qmax + hyd->Qtol) return(XFLOW); + return(OPEN); +} + + +StatType prvstatus(EN_Project *pr, int k, StatType s, double hset, double h1, double h2) +/* +**----------------------------------------------------------- +** Input: k = link index +** s = current status +** hset = valve head setting +** h1 = head at upstream node +** h2 = head at downstream node +** Output: returns new valve status +** Purpose: updates status of a pressure reducing valve. +**----------------------------------------------------------- +*/ +{ + StatType status; /* New valve status */ + double hml; /* Minor headloss */ + hydraulics_t *hyd = &pr->hydraulics; + + double htol = hyd->Htol; + Slink *link = &pr->network.Link[k]; + + status = s; + if (hyd->LinkSetting[k] == MISSING) + return(status); /* Status fixed by user */ + hml = link->Km*SQR(hyd->LinkFlows[k]); /* Head loss when open */ + + /*** Status rules below have changed. ***/ + + switch (s) + { + case ACTIVE: + if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = CLOSED; + } + else if (h1 - hml < hset - htol) { + status = OPEN; + } + else { + status = ACTIVE; + } + break; + case OPEN: + if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = CLOSED; + } + else if (h2 >= hset + htol) { + status = ACTIVE; + } + else { + status = OPEN; + } + break; + case CLOSED: + if (h1 >= hset + htol && h2 < hset - htol) { + status = ACTIVE; + } + else if (h1 < hset - htol && h1 > h2 + htol) { + status = OPEN; + } + else { + status = CLOSED; + } + break; + case XPRESSURE: + if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = CLOSED; + } + break; + default: + break; + } + return(status); +} + + +StatType psvstatus(EN_Project *pr, int k, StatType s, double hset, double h1, double h2) +/* +**----------------------------------------------------------- +** Input: k = link index +** s = current status +** hset = valve head setting +** h1 = head at upstream node +** h2 = head at downstream node +** Output: returns new valve status +** Purpose: updates status of a pressure sustaining valve. +**----------------------------------------------------------- +*/ +{ + StatType status; /* New valve status */ + double hml; /* Minor headloss */ + hydraulics_t *hyd = &pr->hydraulics; + + double htol = hyd->Htol; + + Slink *link = &pr->network.Link[k]; + + status = s; + if (hyd->LinkSetting[k] == MISSING) { + return(status); /* Status fixed by user */ + } + hml = link->Km*SQR(hyd->LinkFlows[k]); /* Head loss when open */ + +/*** Status rules below have changed. ***/ + + switch (s) + { + case ACTIVE: + if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = CLOSED; + } + else if (h2 + hml > hset + htol) { + status = OPEN; + } + else { + status = ACTIVE; + } + break; + case OPEN: + if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = CLOSED; + } + else if (h1 < hset - htol) { + status = ACTIVE; + } + else { + status = OPEN; + } + break; + case CLOSED: + if (h2 > hset + htol && h1 > h2 + htol) { + status = OPEN; + } + else if (h1 >= hset + htol && h1 > h2 + htol) { + status = ACTIVE; + } + else { + status = CLOSED; + } + break; + case XPRESSURE: + if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = CLOSED; + } + break; + default: + break; + } + return(status); +} + + +StatType fcvstatus(EN_Project *pr, int k, StatType s, double h1, double h2) +/* +**----------------------------------------------------------- +** Input: k = link index +** s = current status +** h1 = head at upstream node +** h2 = head at downstream node +** Output: returns new valve status +** Purpose: updates status of a flow control valve. +** +** Valve status changes to XFCV if flow reversal. +** If current status is XFCV and current flow is +** above setting, then valve becomes active. +** If current status is XFCV, and current flow +** positive but still below valve setting, then +** status remains same. +**----------------------------------------------------------- +*/ +{ + StatType status; /* New valve status */ + hydraulics_t *hyd = &pr->hydraulics; + + status = s; + if (h1 - h2 < -hyd->Htol) { + status = XFCV; + } + else if (hyd->LinkFlows[k] < -hyd->Qtol) { + status = XFCV; + } + else if (s == XFCV && hyd->LinkFlows[k] >= hyd->LinkSetting[k]) { + status = ACTIVE; + } + return(status); +} + + +/*** Updated 9/7/00 ***/ +/*** Updated 11/19/01 ***/ +void tankstatus(EN_Project *pr, int k, int n1, int n2) +/* +**---------------------------------------------------------------- +** Input: k = link index +** n1 = start node of link +** n2 = end node of link +** Output: none +** Purpose: closes link flowing into full or out of empty tank +**---------------------------------------------------------------- +*/ +{ + int i, n; + double h, q; + Stank *tank; + + hydraulics_t *hyd = &pr->hydraulics; + EN_Network *net = &pr->network; + Slink *link = &net->Link[k]; + + /* Make node n1 be the tank */ + q = hyd->LinkFlows[k]; + i = n1 - net->Njuncs; + if (i <= 0) { + i = n2 - net->Njuncs; + if (i <= 0) { + return; + } + n = n1; + n1 = n2; + n2 = n; + q = -q; + } + h = hyd->NodeHead[n1] - hyd->NodeHead[n2]; + tank = &net->Tank[i]; + /* Skip reservoirs & closed links */ + if (tank->A == 0.0 || hyd->LinkStatus[k] <= CLOSED) { + return; + } + + /* If tank full, then prevent flow into it */ + if (hyd->NodeHead[n1] >= tank->Hmax - hyd->Htol) + { + + /* Case 1: Link is a pump discharging into tank */ + if (link->Type == EN_PUMP) { + if (link->N2 == n1) + hyd->LinkStatus[k] = TEMPCLOSED; + } + + /* Case 2: Downstream head > tank head */ + /* (i.e., an open outflow check valve would close) */ + else if (cvstatus(pr, OPEN, h, q) == CLOSED) { + hyd->LinkStatus[k] = TEMPCLOSED; + } + } + + /* If tank empty, then prevent flow out of it */ + if (hyd->NodeHead[n1] <= tank->Hmin + hyd->Htol) { + + /* Case 1: Link is a pump discharging from tank */ + if (link->Type == EN_PUMP) { + if (link->N1 == n1) { + hyd->LinkStatus[k] = TEMPCLOSED; + } + } + + /* Case 2: Tank head > downstream head */ + /* (i.e., a closed outflow check valve would open) */ + else if (cvstatus(pr, CLOSED, h, q) == OPEN) { + hyd->LinkStatus[k] = TEMPCLOSED; + } + } +} /* End of tankstatus */ + + +int pswitch(EN_Project *pr) +/* +**-------------------------------------------------------------- +** Input: none +** Output: returns 1 if status of any link changes, 0 if not +** Purpose: adjusts settings of links controlled by junction +** pressures after a hydraulic solution is found +**-------------------------------------------------------------- +*/ +{ + int i, /* Control statement index */ + k, /* Link being controlled */ + n, /* Node controlling Slink */ + reset, /* Flag on control conditions */ + change, /* Flag for status or setting change */ + anychange = 0; /* Flag for 1 or more changes */ + char s; /* Current link status */ + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + report_options_t *rep = &pr->report; + Slink *link; + + /* Check each control statement */ + for (i = 1; i <= net->Ncontrols; i++) + { + reset = 0; + if ((k = net->Control[i].Link) <= 0) { + continue; + } + + /* Determine if control based on a junction, not a tank */ + if ((n = net->Control[i].Node) > 0 && n <= net->Njuncs) { + /* Determine if control conditions are satisfied */ + if (net->Control[i].Type == LOWLEVEL + && hyd->NodeHead[n] <= net->Control[i].Grade + hyd->Htol) { + reset = 1; + } + if (net->Control[i].Type == HILEVEL + && hyd->NodeHead[n] >= net->Control[i].Grade - hyd->Htol) { + reset = 1; + } + } + + /* Determine if control forces a status or setting change */ + if (reset == 1) + { + link = &net->Link[k]; + change = 0; + s = hyd->LinkStatus[k]; + if (link->Type == EN_PIPE) { + if (s != net->Control[i].Status) { + change = 1; + } + } + if (link->Type == EN_PUMP) { + if (hyd->LinkSetting[k] != net->Control[i].Setting) { + change = 1; + } + } + if (link->Type >= EN_PRV) { + if (hyd->LinkSetting[k] != net->Control[i].Setting) { + change = 1; + } + else if (hyd->LinkSetting[k] == MISSING && s != net->Control[i].Status) { + change = 1; + } + } + + /* If a change occurs, update status & setting */ + if (change) { + hyd->LinkStatus[k] = net->Control[i].Status; + if (link->Type > EN_PIPE) { + hyd->LinkSetting[k] = net->Control[i].Setting; + } + if (rep->Statflag == FULL) { + writestatchange(pr, k, s, hyd->LinkStatus[k]); + } + + /* Re-set flow if status has changed */ + // if (S[k] != s) initlinkflow(k, S[k], K[k]); + anychange = 1; + } + } + } + return(anychange); +} /* End of pswitch */ + + +double newflows(EN_Project *pr, Hydbalance *hbal) +/* +**---------------------------------------------------------------- +** Input: none +** Output: returns solution convergence error +** Purpose: updates link flows after new nodal heads computed +**---------------------------------------------------------------- +*/ +{ + double dh, /* Link head loss */ + dq; /* Link flow change */ + double dqsum, /* Network flow change */ + qsum; /* Network total flow */ + int k, n, n1, n2; + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link; + + /* Initialize net inflows (i.e., demands) at tanks */ + for (n = net->Njuncs + 1; n <= net->Nnodes; n++) { + hyd->NodeDemand[n] = 0.0; + } + + /* Initialize sum of flows & corrections */ + qsum = 0.0; + dqsum = 0.0; + + hbal->maxflowchange = 0.0; + hbal->maxflowlink = 1; + + /* Update flows in all links */ + for (k = 1; k <= net->Nlinks; k++) + { + link = &net->Link[k]; + /* + ** Apply flow update formula: + ** dq = Y - P*(new head loss) + ** P = 1/(dh/dq) + ** Y = P*(head loss based on current flow) + ** where P & Y were computed in newcoeffs(). + */ + + n1 = link->N1; + n2 = link->N2; + dh = hyd->NodeHead[n1] - hyd->NodeHead[n2]; + dq = sol->Y[k] - sol->P[k] * dh; + + /* Adjust flow change by the relaxation factor */ + dq *= hyd->RelaxFactor; + + /* Prevent flow in constant HP pumps from going negative */ + if (link->Type == EN_PUMP) { + n = findpump(net, k); + if (net->Pump[n].Ptype == CONST_HP && dq > hyd->LinkFlows[k]) { + dq = hyd->LinkFlows[k] / 2.0; + } + } + hyd->LinkFlows[k] -= dq; + + /* Update sum of absolute flows & flow corrections */ + qsum += ABS(hyd->LinkFlows[k]); + dqsum += ABS(dq); + + /* Update identity of link with max. flow change */ + if (ABS(dq) > hbal->maxflowchange) { + hbal->maxflowchange = ABS(dq); + hbal->maxflowlink = k; + } + + /* Update net flows to tanks */ + if (hyd->LinkStatus[k] > CLOSED) + { + if (n1 > net->Njuncs) { + hyd->NodeDemand[n1] -= hyd->LinkFlows[k]; + } + if (n2 > net->Njuncs) { + hyd->NodeDemand[n2] += hyd->LinkFlows[k]; + } + } + } + + /* Update emitter flows */ + for (k = 1; k <= net->Njuncs; k++) + { + if (net->Node[k].Ke == 0.0) { + continue; + } + dq = emitflowchange(pr, k); + hyd->EmitterFlows[k] -= dq; + qsum += ABS(hyd->EmitterFlows[k]); + dqsum += ABS(dq); + } + + /* Return ratio of total flow corrections to total flow */ + if (qsum > hyd->Hacc) { + return(dqsum / qsum); + } + else { + return(dqsum); + } +} /* End of newflows */ + + +double emitflowchange(EN_Project *pr, int i) +/* +**-------------------------------------------------------------- +** Input: i = node index +** Output: returns change in flow at an emitter node +** Purpose: computes flow change at an emitter node +**-------------------------------------------------------------- +*/ +{ + double ke, p; + hydraulics_t *hyd = &pr->hydraulics; + EN_Network *n = &pr->network; + Snode *node = &n->Node[i]; + + ke = MAX(CSMALL, node->Ke); + p = hyd->Qexp * ke * pow(ABS(hyd->EmitterFlows[i]), (hyd->Qexp - 1.0)); + if (p < hyd->RQtol) { + p = 1 / hyd->RQtol; + } + else { + p = 1.0 / p; + } + return(hyd->EmitterFlows[i] / hyd->Qexp - p * (hyd->NodeHead[i] - node->El)); +} + + +void checkhydbalance(EN_Project *pr, Hydbalance *hbal) +/* +**-------------------------------------------------------------- +** Input: hbal = hydraulic balance errors +** Output: none +** Purpose: finds the link with the largest head imbalance +**-------------------------------------------------------------- +*/ +{ + int k, n1, n2; + double dh, headerror, headloss; + + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + solver_t *sol = &hyd->solver; + Slink *link; + hbal->maxheaderror = 0.0; + hbal->maxheadlink = 1; + for (k = 1; k <= net->Nlinks; k++) { + if (hyd->LinkStatus[k] <= CLOSED) continue; + hlosscoeff(pr, k); + if (sol->P[k] == 0.0) continue; + link = &net->Link[k]; + n1 = link->N1; + n2 = link->N2; + dh = hyd->NodeHead[n1] - hyd->NodeHead[n2]; + headloss = sol->Y[k] / sol->P[k]; + headerror = ABS(dh - headloss); + if (headerror > hbal->maxheaderror) { + hbal->maxheaderror = headerror; + hbal->maxheadlink = k; + } + } +} + + +int hasconverged(EN_Project *pr, double *relerr, Hydbalance *hbal) +/* +**-------------------------------------------------------------- +** Input: relerr = current total relative flow change +** hbal = current hydraulic balance errors +** Output: returns 1 if system has converged or 0 if not +** Purpose: checks various criteria to see if system has +** become hydraulically balanced +**-------------------------------------------------------------- +*/ +{ + hydraulics_t *hyd = &pr->hydraulics; + + if (*relerr > hyd->Hacc) return 0; + checkhydbalance(pr, hbal); + if (pr->report.Statflag == FULL) { + reporthydbal(pr, hbal); + } + if (hyd->HeadErrorLimit > 0.0 && + hbal->maxheaderror > hyd->HeadErrorLimit) return 0; + if (hyd->FlowChangeLimit > 0.0 && + hbal->maxflowchange > hyd->FlowChangeLimit) return 0; + return 1; +} + + +void reporthydbal(EN_Project *pr, Hydbalance *hbal) +/* +**-------------------------------------------------------------- +** Input: hbal = current hydraulic balance errors +** Output: none +** Purpose: identifies links with largest flow change and +** largest head loss error. +**-------------------------------------------------------------- +*/ +{ + double qchange = hbal->maxflowchange * pr->Ucf[FLOW]; + double herror = hbal->maxheaderror * pr->Ucf[HEAD]; + int qlink = hbal->maxflowlink; + int hlink = hbal->maxheadlink; + if (qlink >= 1) { + sprintf(pr->Msg, FMT66, qchange, pr->network.Link[qlink].ID); + writeline(pr, pr->Msg); + } + if (hlink >= 1) { + sprintf(pr->Msg, FMT67, herror, pr->network.Link[hlink].ID); + writeline(pr, pr->Msg); + } +} diff --git a/src/inpfile.c b/src/inpfile.c index 1a2b17d..8bf894d 100644 --- a/src/inpfile.c +++ b/src/inpfile.c @@ -618,6 +618,12 @@ int saveinpfile(EN_Project *pr, char *fname) fprintf(f, "\n CHECKFREQ %-d", hyd->CheckFreq); fprintf(f, "\n MAXCHECK %-d", hyd->MaxCheck); fprintf(f, "\n DAMPLIMIT %-.8f", hyd->DampLimit); + if (hyd->HeadErrorLimit > 0.0) { + fprintf(f, "\n HEADERROR %-.8f", hyd->HeadErrorLimit * pr->Ucf[HEAD]); + } + if (hyd->FlowChangeLimit > 0.0) { + fprintf(f, "\n FLOWCHANGE %-.8f", hyd->FlowChangeLimit * pr->Ucf[FLOW]); + } /* Write [REPORT] section */ diff --git a/src/input1.c b/src/input1.c index 6da3bae..b59096a 100644 --- a/src/input1.c +++ b/src/input1.c @@ -40,10 +40,9 @@ AUTHOR: L. Rossman --------------------- Module Global Variables ---------------------- */ -#define MAXITER \ - 200 /* Default max. # hydraulic iterations */ -#define HACC 0.001 /* Default hydraulics convergence ratio */ -#define HTOL 0.0005 /* Default hydraulic head tolerance (ft) */ +#define MAXITER 200 /* Default max. # hydraulic iterations */ +#define HACC 0.001 /* Default hydraulics convergence ratio */ +#define HTOL 0.0005 /* Default hydraulic head tolerance (ft) */ /*** Updated 11/19/01 ***/ #define QTOL 0.0001 /* Default flow rate tolerance (cfs) */ @@ -62,8 +61,7 @@ AUTHOR: L. Rossman #define RQTOL 1E-7 /* Default low flow resistance tolerance */ #define CHECKFREQ 2 /* Default status check frequency */ #define MAXCHECK 10 /* Default # iterations for status checks */ -#define DAMPLIMIT \ - 0 /* Default damping threshold */ +#define DAMPLIMIT 0 /* Default damping threshold */ extern char *Fldname[]; /* Defined in enumstxt.h in EPANET.C */ extern char *RptFlowUnitsTxt[]; @@ -119,19 +117,23 @@ void setdefaults(EN_Project *pr) strncpy(qu->ChemUnits, u_MGperL, MAXID); strncpy(par->DefPatID, DEFPATID, MAXID); out->Hydflag = SCRATCH; /* No external hydraulics file */ - qu->Qualflag = NONE; /* No quality simulation */ + qu->Qualflag = NONE; /* No quality simulation */ hyd->Formflag = HW; /* Use Hazen-Williams formula */ par->Unitsflag = US; /* US unit system */ par->Flowflag = GPM; /* Flow units are gpm */ par->Pressflag = PSI; /* Pressure units are psi */ rep->Tstatflag = SERIES; /* Generate time series output */ pr->Warnflag = FALSE; /* Warning flag is off */ - hyd->Htol = HTOL; /* Default head tolerance */ - hyd->Qtol = QTOL; /* Default flow tolerance */ - hyd->Hacc = HACC; /* Default hydraulic accuracy */ + hyd->Htol = HTOL; /* Default head tolerance */ + hyd->Qtol = QTOL; /* Default flow tolerance */ + hyd->Hacc = HACC; /* Default hydraulic accuracy */ + + hyd->FlowChangeLimit = 0.0; /* Default flow change limit */ + hyd->HeadErrorLimit = 0.0; /* Default head error limit */ + qu->Ctol = MISSING; /* No pre-set quality tolerance */ - hyd->MaxIter = MAXITER; /* Default max. hydraulic trials */ - hyd->ExtraIter = -1; /* Stop if network unbalanced */ + hyd->MaxIter = MAXITER; /* Default max. hydraulic trials */ + hyd->ExtraIter = -1; /* Stop if network unbalanced */ time->Dur = 0; /* 0 sec duration (steady state) */ time->Tstart = 0; /* Starting time of day */ time->Pstart = 0; /* Starting pattern period */ @@ -531,8 +533,8 @@ void initunits(EN_Project *pr) pr->Ucf[POWER] = wcf; pr->Ucf[VOLUME] = hcf * hcf * hcf; if (time->Hstep < 1800) /* Report time in mins. */ - { /* if hydraulic time step */ - pr->Ucf[TIME] = 1.0 / 60.0; /* is less than 1/2 hour. */ + { /* if hydraulic time step */ + pr->Ucf[TIME] = 1.0 / 60.0; /* is less than 1/2 hour. */ strcpy(rep->Field[TIME].Units, u_MINUTES); } else { pr->Ucf[TIME] = 1.0 / 3600.0; @@ -606,6 +608,10 @@ void convertunits(EN_Project *pr) tank->V1max *= tank->Vmax; } + /* Convert hydraulic convergence criteria */ + hyd->FlowChangeLimit /= pr->Ucf[FLOW]; + hyd->HeadErrorLimit /= pr->Ucf[HEAD]; + /* Convert WQ option concentration units */ qu->Climit /= pr->Ucf[QUALITY]; qu->Ctol /= pr->Ucf[QUALITY]; @@ -678,8 +684,9 @@ void convertunits(EN_Project *pr) } +////// Moved to inithyd() in hydraul.c /////// /* Compute flow resistances */ - resistance(pr, k); + //resistance(pr, k); } /* Convert units on control settings */ diff --git a/src/input3.c b/src/input3.c index 6871bab..9c66f63 100644 --- a/src/input3.c +++ b/src/input3.c @@ -112,7 +112,7 @@ int juncdata(EN_Project *pr) } demand->Base = y; demand->Pat = p; - demand->next = node->D; + demand->next = NULL; node->D = demand; hyd->NodeDemand[Njuncs] = y; @@ -737,6 +737,7 @@ int demanddata(EN_Project *pr) int j, n, p = 0; double y; Pdemand demand; + Pdemand cur_demand; STmplist *pat; /* Extract data from tokens */ @@ -778,13 +779,17 @@ int demanddata(EN_Project *pr) hyd->NodeDemand[j] = MISSING; // marker - next iteration will append a new category. } else { // add new demand to junction + cur_demand = net->Node[j].D; + while (cur_demand->next != NULL) { + cur_demand = cur_demand->next; + } demand = (struct Sdemand *)malloc(sizeof(struct Sdemand)); if (demand == NULL) return (101); demand->Base = y; demand->Pat = p; - demand->next = net->Node[j].D; - net->Node[j].D = demand; + demand->next = NULL; + cur_demand->next = demand; } return (0); } /* end of demanddata */ @@ -1908,6 +1913,10 @@ int optionvalue(EN_Project *pr, int n) ** SPECIFIC GRAVITY value ** TRIALS value ** ACCURACY value + +** HEADLIMIT value +** FLOWLIMIT value + ** TOLERANCE value ** SEGMENTS value (not used) ** ------ Undocumented Options ----- @@ -1923,18 +1932,20 @@ int optionvalue(EN_Project *pr, int n) hydraulics_t *hyd = &pr->hydraulics; quality_t *qu = &pr->quality; parser_data_t *par = &pr->parser; + char* tok0 = par->Tok[0]; int nvalue = 1; /* Index of token with numerical value */ double y; /* Check for obsolete SEGMENTS keyword */ - if (match(par->Tok[0], w_SEGMENTS)) - return (0); + //if (match(par->Tok[0], w_SEGMENTS)) + if (match(tok0, w_SEGMENTS)) + return (0); /* Check for missing value (which is permissible) */ - if (match(par->Tok[0], w_SPECGRAV) || match(par->Tok[0], w_EMITTER) || - match(par->Tok[0], w_DEMAND)) + if (match(tok0, w_SPECGRAV) || match(tok0, w_EMITTER) || + match(tok0, w_DEMAND)) nvalue = 2; if (n < nvalue) return (0); @@ -1944,7 +1955,7 @@ int optionvalue(EN_Project *pr, int n) return (213); /* Check for WQ tolerance option (which can be 0) */ - if (match(par->Tok[0], w_TOLERANCE)) { + if (match(tok0, w_TOLERANCE)) { if (y < 0.0) return (213); qu->Ctol = y; /* Quality tolerance*/ @@ -1952,7 +1963,7 @@ int optionvalue(EN_Project *pr, int n) } /* Check for Diffusivity option */ - if (match(par->Tok[0], w_DIFFUSIVITY)) { + if (match(tok0, w_DIFFUSIVITY)) { if (y < 0.0) return (213); qu->Diffus = y; @@ -1960,42 +1971,59 @@ int optionvalue(EN_Project *pr, int n) } /* Check for Damping Limit option */ - if (match(par->Tok[0], w_DAMPLIMIT)) { + if (match(tok0, w_DAMPLIMIT)) { hyd->DampLimit = y; return (0); } + + /* Check for flow change limit*/ + else if (match(tok0, w_FLOWCHANGE)) + { + if (y < 0.0) return 213; + hyd->FlowChangeLimit = y; + return 0; + } + + /* Check for head error limit*/ + else if (match(tok0, w_HEADERROR)) + { + if (y < 0.0) return 213; + hyd->HeadErrorLimit = y; + return 0; + } /* All other options must be > 0 */ if (y <= 0.0) return (213); /* Assign value to specified option */ - if (match(par->Tok[0], w_VISCOSITY)) + if (match(tok0, w_VISCOSITY)) hyd->Viscos = y; /* Viscosity */ - else if (match(par->Tok[0], w_SPECGRAV)) + else if (match(tok0, w_SPECGRAV)) hyd->SpGrav = y; /* Spec. gravity */ - else if (match(par->Tok[0], w_TRIALS)) + else if (match(tok0, w_TRIALS)) hyd->MaxIter = (int)y; /* Max. trials */ - else if (match(par->Tok[0], w_ACCURACY)) /* Accuracy */ + else if (match(tok0, w_ACCURACY)) /* Accuracy */ { y = MAX(y, 1.e-5); y = MIN(y, 1.e-1); hyd->Hacc = y; - } else if (match(par->Tok[0], w_HTOL)) + } + else if (match(tok0, w_HTOL)) hyd->Htol = y; - else if (match(par->Tok[0], w_QTOL)) + else if (match(tok0, w_QTOL)) hyd->Qtol = y; - else if (match(par->Tok[0], w_RQTOL)) { + else if (match(tok0, w_RQTOL)) { if (y >= 1.0) return (213); hyd->RQtol = y; - } else if (match(par->Tok[0], w_CHECKFREQ)) + } else if (match(tok0, w_CHECKFREQ)) hyd->CheckFreq = (int)y; - else if (match(par->Tok[0], w_MAXCHECK)) + else if (match(tok0, w_MAXCHECK)) hyd->MaxCheck = (int)y; - else if (match(par->Tok[0], w_EMITTER)) + else if (match(tok0, w_EMITTER)) hyd->Qexp = 1.0 / y; - else if (match(par->Tok[0], w_DEMAND)) + else if (match(tok0, w_DEMAND)) hyd->Dmult = y; else return (201); diff --git a/src/output.c b/src/output.c index 7e231ac..39687cf 100644 --- a/src/output.c +++ b/src/output.c @@ -70,7 +70,8 @@ int savenetdata(EN_Project *pr) ibuf[0] = MAGICNUMBER; /*** CODEVERSION replaces VERSION ***/ - ibuf[1] = CODEVERSION; + //ibuf[1] = CODEVERSION; + ibuf[1] = 20012; // keep version at 2.00.12 so that GUI will run ibuf[2] = net->Nnodes; ibuf[3] = net->Ntanks; @@ -251,60 +252,75 @@ int saveenergy(EN_Project *pr) */ { - EN_Network *net = &pr->network; - hydraulics_t *hyd = &pr->hydraulics; - out_file_t *out = &pr->out_files; - parser_data_t *par = &pr->parser; + EN_Network *net = &pr->network; + hydraulics_t *hyd = &pr->hydraulics; + out_file_t *out = &pr->out_files; + parser_data_t *par = &pr->parser; time_options_t *time = &pr->time_options; - FILE *outFile = out->OutFile; + FILE *outFile = out->OutFile; + Spump *pump; int i, j; INT4 index; - REAL4 x[6]; /* work array */ - double hdur, /* total time->Duration in hours */ - t; /* pumping time->Duration */ + REAL4 x[MAX_ENERGY_STATS]; // work array + double hdur, // total simulation duration in hours + t; // total pumping time duration hdur = time->Dur / 3600.0; for (i = 1; i <= net->Npumps; i++) { - Spump *pump = &net->Pump[i]; + pump = &net->Pump[i]; if (hdur == 0.0) { - for (j = 0; j < 5; j++) - x[j] = (REAL4)pump->Energy[j]; - x[5] = (REAL4)(pump->Energy[5] * 24.0); - } else { - t = pump->Energy[0]; - x[0] = (REAL4)(t / hdur); - x[1] = 0.0f; - x[2] = 0.0f; - x[3] = 0.0f; - x[4] = 0.0f; - if (t > 0.0) { - x[1] = (REAL4)(pump->Energy[1] / t); - x[2] = (REAL4)(pump->Energy[2] / t); - x[3] = (REAL4)(pump->Energy[3] / t); - } - x[4] = (REAL4)pump->Energy[4]; - x[5] = (REAL4)(pump->Energy[5] * 24.0 / hdur); + pump->Energy[TOTAL_COST] *= 24.0; } - x[0] *= 100.0f; - x[1] *= 100.0f; - /* Compute Kw-hr per MilGal (or per cubic meter) */ - if (par->Unitsflag == SI) - x[2] *= (REAL4)(1000.0 / LPSperCFS / 3600.0); - else - x[2] *= (REAL4)(1.0e6 / GPMperCFS / 60.0); - for (j = 0; j < 6; j++) - pump->Energy[j] = x[j]; + else { + // ... convert total hrs. online to fraction of total time online + t = pump->Energy[PCNT_ONLINE]; //currently holds total hrs. online + pump->Energy[PCNT_ONLINE] = t / hdur; + + // ... convert cumulative values to time-averaged ones + if (t > 0.0) { + pump->Energy[PCNT_EFFIC] /= t; + pump->Energy[KWH_PER_FLOW] /= t; + pump->Energy[TOTAL_KWH] /= t; + } + + // ... convert total cost to cost per day + pump->Energy[TOTAL_COST] *= 24.0 / hdur; + } + + // ... express time online and avg. efficiency as percentages + pump->Energy[PCNT_ONLINE] *= 100.0; + pump->Energy[PCNT_EFFIC] *= 100.0; + + // ... compute KWH per Million Gallons or per Cubic Meter + if (par->Unitsflag == SI) { + pump->Energy[KWH_PER_FLOW] *= (1000. / LPSperCFS / 3600.); + } + else { + pump->Energy[KWH_PER_FLOW] *= (1.0e6 / GPMperCFS / 60.); + } + + // ... save energy stats to REAL4 work array + for (j = 0; j < MAX_ENERGY_STATS; j++) { + x[j] = (REAL4)pump->Energy[j]; + } + + // ... save energy results to output file index = pump->Link; - if (fwrite(&index, sizeof(INT4), 1, outFile) < 1) + if (fwrite(&index, sizeof(INT4), 1, outFile) < 1) { return (308); - if (fwrite(x, sizeof(REAL4), 6, outFile) < 6) + } + if (fwrite(x, sizeof(REAL4), MAX_ENERGY_STATS, outFile) < MAX_ENERGY_STATS) { return (308); + } } + + // ... compute and save demand charge hyd->Emax = hyd->Emax * hyd->Dcost; x[0] = (REAL4)hyd->Emax; - if (fwrite(&x[0], sizeof(REAL4), 1, outFile) < 1) + if (fwrite(&x[0], sizeof(REAL4), 1, outFile) < 1) { return (308); + } return (0); } diff --git a/src/quality.c b/src/quality.c index 5308e2c..03e29b6 100644 --- a/src/quality.c +++ b/src/quality.c @@ -161,6 +161,9 @@ void initqual(EN_Project *pr) net->Node[i].S->Smass = 0.0; } + qu->QTempVolumes = + calloc(net->Ntanks, + sizeof(double)); // keep track of next tank volumes. qu->QTankVolumes = calloc(net->Ntanks, sizeof(double)); // keep track of previous step's tank volumes. @@ -287,7 +290,7 @@ int nextqual(EN_Project *pr, long *tstep) { long hydstep; /* Hydraulic solution time step */ int errcode = 0; - double *tankVolumes; + //double *tankVolumes = NULL; int i; EN_Network *net; hydraulics_t *hyd; @@ -315,10 +318,10 @@ int nextqual(EN_Project *pr, long *tstep) // if we're operating in stepwise mode, capture the tank levels so we can // restore them later. if (hyd->OpenHflag) { - tankVolumes = calloc(net->Ntanks, sizeof(double)); + //tankVolumes = calloc(net->Ntanks, sizeof(double)); for (i = 1; i <= net->Ntanks; ++i) { if (net->Tank[i].A != 0) { // skip reservoirs - tankVolumes[i - 1] = net->Tank[i].V; + qu->QTempVolumes[i - 1] = net->Tank[i].V; } } @@ -359,7 +362,7 @@ int nextqual(EN_Project *pr, long *tstep) for (i = 1; i <= net->Ntanks; i++) { if (net->Tank[i].A != 0) { // skip reservoirs again int n = net->Tank[i].Node; - net->Tank[i].V = tankVolumes[i - 1]; + net->Tank[i].V = qu->QTempVolumes[i - 1]; hyd->NodeHead[n] = tankgrade(pr, i, net->Tank[i].V); } } @@ -370,7 +373,7 @@ int nextqual(EN_Project *pr, long *tstep) } } - free(tankVolumes); + //free(tankVolumes); } return (errcode); @@ -448,6 +451,7 @@ int closequal(EN_Project *pr) free(qu->MassIn); free(qu->PipeRateCoeff); free(qu->TempQual); + free(qu->QTempVolumes); free(qu->QTankVolumes); free(qu->QLinkFlow); return (errcode); diff --git a/src/report.c b/src/report.c index 9620f1f..8d2101e 100644 --- a/src/report.c +++ b/src/report.c @@ -229,6 +229,15 @@ void writesummary(EN_Project *pr) sprintf(s, FMT27, hyd->Hacc); writeline(pr, s); + if (hyd->HeadErrorLimit > 0.0) { + sprintf(s, FMT27d, hyd->HeadErrorLimit*pr->Ucf[HEAD], rep->Field[HEAD].Units); + writeline(pr, s); + } + if (hyd->FlowChangeLimit > 0.0) { + sprintf(s, FMT27e, hyd->FlowChangeLimit*pr->Ucf[FLOW], rep->Field[FLOW].Units); + writeline(pr, s); + } + sprintf(s, FMT27a, hyd->CheckFreq); writeline(pr, s); sprintf(s, FMT27b, hyd->MaxCheck); @@ -378,6 +387,7 @@ void writeenergy(EN_Project *pr) EN_Network *net = &pr->network; hydraulics_t *hyd = &pr->hydraulics; report_options_t *rep = &pr->report; + Spump *pump; int j; double csum; @@ -388,14 +398,14 @@ void writeenergy(EN_Project *pr) writeheader(pr,ENERHDR, 0); csum = 0.0; for (j = 1; j <= net->Npumps; j++) { - Spump *pump = &net->Pump[j]; - csum += pump->Energy[5]; + pump = &net->Pump[j]; + csum += pump->Energy[TOTAL_COST]; if (rep->LineNum == (long)rep->PageSize) writeheader(pr, ENERHDR, 1); sprintf(s, "%-8s %6.2f %6.2f %9.2f %9.2f %9.2f %9.2f", - net->Link[pump->Link].ID, pump->Energy[0], pump->Energy[1], - pump->Energy[2], pump->Energy[3], pump->Energy[4], - pump->Energy[5]); + net->Link[pump->Link].ID, pump->Energy[PCNT_ONLINE], pump->Energy[PCNT_EFFIC], + pump->Energy[KWH_PER_FLOW], pump->Energy[TOTAL_KWH], pump->Energy[MAX_KW], + pump->Energy[TOTAL_COST]); writeline(pr, s); } fillstr(s, '-', 63); diff --git a/src/text.h b/src/text.h index be47e39..85159a9 100755 --- a/src/text.h +++ b/src/text.h @@ -140,7 +140,10 @@ AUTHOR: L. Rossman #define w_RQTOL "RQTOL" #define w_CHECKFREQ "CHECKFREQ" #define w_MAXCHECK "MAXCHECK" -#define w_DAMPLIMIT "DAMPLIMIT" +#define w_DAMPLIMIT "DAMPLIMIT" + +#define w_FLOWCHANGE "FLOWCHANGE" +#define w_HEADERROR "HEADERROR" #define w_SECONDS "SEC" #define w_MINUTES "MIN" @@ -364,7 +367,10 @@ AUTHOR: L. Rossman #define FMT27a " Status Check Frequency ............ %-d" #define FMT27b " Maximum Trials Checked ............ %-d" -#define FMT27c " Damping Limit Threshold ........... %-.6f" +#define FMT27c " Damping Limit Threshold ........... %-.6f" + +#define FMT27d " Headloss Error Limit .............. %-.6f %s" +#define FMT27e " Flow Change Limit ................. %-.6f %s" #define FMT28 " Maximum Trials .................... %-d" #define FMT29 " Quality Analysis .................. None" @@ -409,10 +415,13 @@ AUTHOR: L. Rossman #define FMT61 "%10s: Valve %s caused ill-conditioning" #define FMT62 "%10s: System ill-conditioned at node %s" #define FMT63 "%10s: %s %s changed by rule %s" -#define FMT64 "%10s: Balancing the network:" +#define FMT64 "%10s: Balancing the network:\n" #define FMT65 " Trial %2d: relative flow change = %-.6f" /*** End of update ***/ +#define FMT66 " maximum flow change = %.4f for Link %s" +#define FMT67 " maximum head error = %.4f for Link %s\n" + /* -------------------- Energy Report Table ------------------- */ #define FMT71 "Energy Usage:" #define FMT72 \ diff --git a/src/types.h b/src/types.h index a521f7d..cd64eb5 100755 --- a/src/types.h +++ b/src/types.h @@ -47,7 +47,7 @@ typedef int INT4; #define EOFMARK 0x1A /* Use 0x04 for UNIX systems */ #define MAXTITLE 3 /* Max. # title lines */ #define MAXID 31 /* Max. # characters in ID name */ -#define MAXMSG 79 /* Max. # characters in message text */ +#define MAXMSG 79 /* Max. # characters in message text */ #define MAXLINE 255 /* Max. # characters read from input line */ #define MAXFNAME 259 /* Max. # characters in file name */ #define MAXTOKS 40 /* Max. items per line of input */ @@ -59,6 +59,9 @@ typedef int INT4; #define TINY 1.E-6 #define MISSING -1.E10 +#define CBIG 1.e8 /* Big coefficient */ +#define CSMALL 1.e-6 /* Small coefficient */ + #ifdef M_PI #define PI M_PI #else @@ -135,21 +138,21 @@ typedef enum { USE, /* use from previous run */ SAVE, /* save after current run */ SCRATCH -} Hydtype; /* use temporary file */ +} Hydtype; /* use temporary file */ typedef enum { NONE, /* no quality analysis */ CHEM, /* analyze a chemical */ AGE, /* analyze water age */ TRACE -} QualType; /* trace % of flow from a source */ +} QualType; /* trace % of flow from a source */ typedef enum { - V_CURVE, /* volume curve */ - P_CURVE, /* pump curve */ - E_CURVE, /* efficiency curve */ + V_CURVE, /* volume curve */ + P_CURVE, /* pump curve */ + E_CURVE, /* efficiency curve */ H_CURVE -} CurveType; /* head loss curve */ +} CurveType; /* head loss curve */ typedef enum { CONST_HP, /* constant horsepower */ @@ -169,8 +172,8 @@ typedef enum { LOWLEVEL, /* act when grade below set level */ HILEVEL, /* act when grade above set level */ TIMER, /* act when set time reached */ - TIMEOFDAY -} ControlType; /* act when time of day occurs */ + TIMEOFDAY /* act when time of day occurs */ +} ControlType; typedef enum { XHEAD, /* pump cannot deliver head (closed) */ @@ -183,18 +186,18 @@ typedef enum { XPRESSURE, /* valve cannot supply pressure */ FILLING, /* tank filling */ EMPTYING -} StatType; /* tank emptying */ +} StatType; /* tank emptying */ typedef enum { HW, /* Hazen-Williams */ DW, /* Darcy-Weisbach */ - CM -} FormType; /* Chezy-Manning */ + CM /* Chezy-Manning */ +} FormType; typedef enum { US, /* US */ - SI -} UnitsType; /* SI (metric) */ + SI /* SI (metric) */ +} UnitsType; typedef enum { CFS, /* cubic feet per second */ @@ -206,40 +209,41 @@ typedef enum { LPM, /* liters per minute */ MLD, /* megaliters per day */ CMH, /* cubic meters per hour */ - CMD -} FlowUnitsType; /* cubic meters per day */ + CMD /* cubic meters per day */ +} FlowUnitsType; typedef enum { PSI, /* pounds per square inch */ KPA, /* kiloPascals */ - METERS -} PressUnitsType; /* meters */ + METERS /* meters */ +} PressUnitsType; typedef enum { LOW, /* lower limit */ HI, /* upper limit */ - PREC -} RangeType; /* precision */ + PREC /* precision */ +} RangeType; typedef enum { MIX1, /* 1-compartment model */ MIX2, /* 2-compartment model */ FIFO, /* First in, first out model */ - LIFO -} MixType; /* Last in, first out model */ + LIFO /* Last in, first out model */ +} MixType; typedef enum { SERIES, /* none */ AVG, /* time-averages */ MIN, /* minimum values */ MAX, /* maximum values */ - RANGE -} TstatType; /* max - min values */ + RANGE /* max - min values */ +} TstatType; -#define MAXVAR 21 /* Max. # types of network variables */ -/* (equals # items enumed below) */ + +#define MAXVAR 21 /* Max. # types of network variables */ + /* (equals # items enumed below) */ typedef enum { - ELEV = 0, /* nodal elevation */ + ELEV = 0, /* nodal elevation */ DEMAND, /* nodal demand flow */ HEAD, /* nodal hydraulic head */ PRESSURE, /* nodal pressure */ @@ -273,17 +277,27 @@ typedef enum { } SectType; typedef enum { - STATHDR, /* Hydraulic Status */ - ENERHDR, /* Energy Usage */ - NODEHDR, /* Node Results */ - LINKHDR -} HdrType; /* Link Results */ + STATHDR, /* Hydraulic Status header */ + ENERHDR, /* Energy Usage header */ + NODEHDR, /* Node Results header */ + LINKHDR /* Link Results header */ +} HdrType; typedef enum { POSITIVE, NEGATIVE } FlowDirection; +typedef enum { + PCNT_ONLINE, + PCNT_EFFIC, + KWH_PER_FLOW, + TOTAL_KWH, + MAX_KW, + TOTAL_COST, + MAX_ENERGY_STATS +} EnergyStats; + /* ------------------------------------------------------ Global Data Structures @@ -344,6 +358,16 @@ struct Sdemand /* DEMAND CATEGORY OBJECT */ }; typedef struct Sdemand *Pdemand; /* Pointer to demand object */ +typedef struct +{ + double hrsOnLine; // hours pump is online + double efficiency; // total time wtd. efficiency + double kwHrsPerCFS; // total kw-hrs per cfs of flow + double kwHrs; // total kw-hrs consumed + double maxKwatts; // max. kw consumed + double totalCost; // total pumping cost +} Senergy; + struct Ssource /* WQ SOURCE OBJECT */ { /*int Node;*/ /* Node index of source */ @@ -422,13 +446,7 @@ typedef struct /* PUMP OBJECT */ int Upat; /* Utilization pattern index */ int Epat; /* Energy cost pattern index */ double Ecost; /* Unit energy cost */ - double Energy[6]; /* Energy usage statistics: */ - /* 0 = pump utilization */ - /* 1 = avg. efficiency */ - /* 2 = avg. kW/flow */ - /* 3 = avg. kwatts */ - /* 4 = peak kwatts */ - /* 5 = cost/day */ + double Energy[MAX_ENERGY_STATS]; /* Energy usage statistics */ } Spump; typedef struct /* VALVE OBJECT */ @@ -474,7 +492,7 @@ typedef struct /* FIELD OBJECT of report table */ double RptLim[2]; /* Lower/upper report limits */ } SField; -typedef struct s_Premise /* Rule Premise Clause */ +typedef struct s_Premise /* Rule Premise Clause */ { int logop; /* Logical operator */ int object; /* Node or link */ @@ -486,7 +504,7 @@ typedef struct s_Premise /* Rule Premise Clause */ struct s_Premise *next; } Premise; -typedef struct s_Action /* Rule Action Clause */ +typedef struct s_Action /* Rule Action Clause */ { int link; /* Link index */ int status; /* Link's status */ @@ -494,19 +512,19 @@ typedef struct s_Action /* Rule Action Clause */ struct s_Action *next; } Action; -typedef struct s_aRule /* Control Rule Structure */ +typedef struct s_aRule /* Control Rule Structure */ { - char label[MAXID+1]; /* Rule character label */ - double priority; /* Priority level */ - Premise *Pchain; /* Linked list of premises */ - Action *Tchain; /* Linked list of actions if true */ - Action *Fchain; /* Linked list of actions if false */ + char label[MAXID+1]; /* Rule character label */ + double priority; /* Priority level */ + Premise *Pchain; /* Linked list of premises */ + Action *Tchain; /* Linked list of actions if true */ + Action *Fchain; /* Linked list of actions if false */ struct s_aRule *next; } aRule; -typedef struct s_ActItem /* Action list item */ +typedef struct s_ActItem /* Action list item */ { - int ruleindex; /* Index of rule action belongs to */ + int ruleindex; /* Index of rule action belongs to */ struct s_Action *action; /* An action structure */ struct s_ActItem *next; } ActItem; @@ -542,6 +560,7 @@ typedef struct { Climit, /// Limiting potential quality *NodeQual, /// Node quality state *TempQual, /// General purpose array for water quality + *QTempVolumes, *QTankVolumes, *QLinkFlow, *PipeRateCoeff; @@ -551,12 +570,12 @@ typedef struct { Qtime; /// Current quality time (sec) char OutOfMemory; /* Out of memory indicator */ - alloc_handle_t *SegPool; // Memory pool for water quality segments + alloc_handle_t *SegPool; // Memory pool for water quality segments Pseg FreeSeg; /* Pointer to unused segment */ Pseg *FirstSeg, /* First (downstream) segment in each pipe */ - *LastSeg; /* Last (upstream) segment in each pipe */ - FlowDirection *FlowDir; /* Flow direction for each pipe */ + *LastSeg; /* Last (upstream) segment in each pipe */ + FlowDirection *FlowDir; /* Flow direction for each pipe */ double *VolIn; /* Total volume inflow to node */ double *MassIn; /* Total mass inflow to node */ double Sc; /* Schmidt Number */ @@ -613,15 +632,15 @@ typedef struct { *Patlist, /* Temporary time pattern list */ *Curvelist; /* Temporary list of curves */ - double *X; // temporary array for curve data + double *X; // temporary array for curve data int - Ntokens, /* Number of tokens in input line */ - Ntitle; /* Number of title lines */ + Ntokens, /* Number of tokens in input line */ + Ntitle; /* Number of title lines */ - char *Tok[MAXTOKS]; /* Array of token strings */ + char *Tok[MAXTOKS]; /* Array of token strings */ char Comment[MAXMSG+1]; - STmplist *PrevPat; /* Pointer to pattern list element */ - STmplist *PrevCurve; /* Pointer to curve list element */ + STmplist *PrevPat; /* Pointer to pattern list element */ + STmplist *PrevCurve; /* Pointer to curve list element */ } parser_data_t; @@ -646,7 +665,7 @@ typedef struct { Rpt1Fname[MAXFNAME+1], /* Primary report file name */ Rpt2Fname[MAXFNAME+1]; /* Secondary report file name */ - SField Field[MAXVAR]; /* Output reporting fields */ + SField Field[MAXVAR]; /* Output reporting fields */ long LineNum; /* Current line number */ long PageNum; /* Current page number */ @@ -693,12 +712,11 @@ typedef struct { aRule *Rule; /* Array of rules */ ActItem *ActList; /* Linked list of action items */ - int RuleState; /* State of rule interpreter */ - long Time1; /* Start of rule evaluation time interval (sec) */ + int RuleState; /* State of rule interpreter */ + long Time1; /* Start of rule evaluation time interval (sec) */ Premise *Plast; /* Previous premise clause */ Action *Tlast; /* Previous true action */ Action *Flast; /* Previous false action */ - } rules_t; /* @@ -753,6 +771,10 @@ typedef struct { Qexp, /* Exponent in orifice formula */ Dmult, /* Demand multiplier */ Hacc, /* Hydraulics solution accuracy */ + + FlowChangeLimit, /* Hydraulics flow change limit */ + HeadErrorLimit, /* Hydraulics head error limit */ + DampLimit, /* Solution damping threshold */ Viscos, /* Kin. viscosity (sq ft/sec) */ SpGrav, /* Specific gravity */ @@ -796,7 +818,7 @@ typedef struct { } hydraulics_t; typedef struct { - int Nnodes, /* Number of network nodes */ + int Nnodes, /* Number of network nodes */ Ntanks, /* Number of tanks */ Njuncs, /* Number of junction nodes */ Nlinks, /* Number of network links */ @@ -809,17 +831,18 @@ typedef struct { Ncurves, /* Number of data curves */ Ncoords; /* Number of Coords */ - Snode *Node; /* Node data */ - Slink *Link; /* Link data */ - Stank *Tank; /* Tank data */ - Spump *Pump; /* Pump data */ - Svalve *Valve; /* Valve data */ - Spattern *Pattern; /* Time patterns */ - Scurve *Curve; /* Curve data */ - Scoord *Coord; /* Coordinate data */ - Scontrol *Control; /* Control data */ - ENHashTable *NodeHashTable, *LinkHashTable; /* Hash tables for ID labels */ - Padjlist *Adjlist; /* Node adjacency lists */ + Snode *Node; /* Node data */ + Slink *Link; /* Link data */ + Stank *Tank; /* Tank data */ + Spump *Pump; /* Pump data */ + Svalve *Valve; /* Valve data */ + Spattern *Pattern; /* Time patterns */ + Scurve *Curve; /* Curve data */ + Scoord *Coord; /* Coordinate data */ + Scontrol *Control; /* Control data */ + ENHashTable *NodeHashTable, + *LinkHashTable; /* Hash tables for ID labels */ + Padjlist *Adjlist; /* Node adjacency lists */ } EN_Network; @@ -851,5 +874,4 @@ typedef struct EN_Project { } EN_Project; - #endif diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index f5257d3..0000000 --- a/tests/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# Ignore app description files generated for nrtest -apps/ - -# Ignore results generated during nrtest execution -benchmark/ - -# Except changes to reference benchmark -!benchmark/epanet-2012 # Results for EPANET 2.0.12 MSVC 2010 32-bit - diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..609d0b4 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,46 @@ +# +# CMakeLists.txt - CMake configuration file for epanet/tests +# +# Created: February 13, 2018 +# Author: Constantin Savtchenko +# Ref: http://neyasystems.com/an-engineers-guide-to-unit-testing-cmake-and-boost-unit-tests/ +# +# Modified by: Michael E. Tryby +# US EPA ORD/NRMRL +# + +#Setup CMake to run tests +enable_testing() + + +# Sets for output directory for executables and libraries. +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + + +#Prep ourselves for compiling boost +find_package(Boost REQUIRED) +include_directories (${Boost_INCLUDE_DIRS}) + + +#I like to keep test files in a separate source directory called test +file(GLOB TEST_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} test_*.cpp) + + +#Run through each source +foreach(testSrc ${TEST_SRCS}) + #Extract the filename without an extension (NAME_WE) + get_filename_component(testName ${testSrc} NAME_WE) + + #Add compile target + add_executable(${testName} ${testSrc}) + + #link to Boost libraries AND your targets and dependencies + target_link_libraries(${testName} ${Boost_LIBRARIES} epanet epanet-output) + + + #Finally add it to test execution - + #Notice the WORKING_DIRECTORY and COMMAND + add_test(NAME ${testName} + COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${testName} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data) +endforeach(testSrc) diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/example1.out b/tests/data/net1.out similarity index 88% rename from tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/example1.out rename to tests/data/net1.out index 3e18375..6cede26 100644 Binary files a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/example1.out and b/tests/data/net1.out differ diff --git a/tests/epanet-nrtestsuite/apps/epanet-2011a.json b/tests/epanet-nrtestsuite/apps/epanet-2011a.json deleted file mode 100644 index c45367a..0000000 --- a/tests/epanet-nrtestsuite/apps/epanet-2011a.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name" : "epanet", - "version" : "2.0.11a", - "description" : "Windows, MS VC2005 or older, 32 Bit", - "setup_script" : "", - "exe" : "epanet2011a.exe" -} diff --git a/tests/epanet-nrtestsuite/apps/epanet-2012.json b/tests/epanet-nrtestsuite/apps/epanet-2012.json deleted file mode 100644 index 7c46f81..0000000 --- a/tests/epanet-nrtestsuite/apps/epanet-2012.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name" : "epanet", - "version" : "2.0.12", - "description" : "Windows, MS VC 2010, 32 Bit", - "setup_script" : "", - "exe" : "./epanet2012.exe" -} diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/example1.rpt b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/example1.rpt deleted file mode 100644 index 5764224..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/example1.rpt +++ /dev/null @@ -1,1029 +0,0 @@ - Page 1 Fri Oct 13 13:50:29 2017 - - ****************************************************************** - * E P A N E T * - * Hydraulic and Water Quality * - * Analysis for Pipe Networks * - * Version 2.00.12 * - ****************************************************************** - - Analysis begun Fri Oct 13 13:50:29 2017 - - - Hydraulic Status: - ----------------------------------------------------------------------- - 0:00:00: Balanced after 4 trials - 0:00:00: Reservoir 9 is emptying - 0:00:00: Tank 2 is filling at 120.00 ft - - 1:00:00: Balanced after 2 trials - - 2:00:00: Balanced after 3 trials - - 3:00:00: Balanced after 2 trials - - 4:00:00: Balanced after 3 trials - - 5:00:00: Balanced after 2 trials - - 6:00:00: Balanced after 2 trials - - 7:00:00: Balanced after 1 trials - - 8:00:00: Balanced after 2 trials - - 9:00:00: Balanced after 2 trials - - 10:00:00: Balanced after 2 trials - - 11:00:00: Balanced after 2 trials - - 12:00:00: Balanced after 3 trials - - 12:32:34: Pump 9 changed by Tank 2 control - 12:32:34: Balanced after 4 trials - 12:32:34: Reservoir 9 is closed - 12:32:34: Tank 2 is emptying at 140.00 ft - 12:32:34: Pump 9 changed from open to closed - - 13:00:00: Balanced after 1 trials - - 14:00:00: Balanced after 2 trials - - 15:00:00: Balanced after 1 trials - - 16:00:00: Balanced after 2 trials - - 17:00:00: Balanced after 1 trials - - 18:00:00: Balanced after 2 trials - - 19:00:00: Balanced after 1 trials - - 20:00:00: Balanced after 2 trials - - 21:00:00: Balanced after 1 trials - - 22:00:00: Balanced after 2 trials - - 22:41:30: Pump 9 changed by Tank 2 control - 22:41:30: Balanced after 15 trials - 22:41:30: Reservoir 9 is emptying - 22:41:30: Tank 2 is filling at 110.00 ft - 22:41:30: Pump 9 changed from closed to open - - 23:00:00: Balanced after 2 trials - - 24:00:00: Balanced after 3 trials - - - Node Results at 0:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1004.35 127.54 0.50 - 11 150.00 985.23 119.26 0.50 - 12 150.00 970.07 117.02 0.50 - 13 100.00 968.87 118.67 0.50 - 21 150.00 971.55 117.66 0.50 - 22 200.00 969.08 118.76 0.50 - 23 150.00 968.65 120.74 0.50 - 31 100.00 967.39 115.86 0.50 - 32 100.00 965.69 110.79 0.50 - 9 -1866.18 800.00 0.00 1.00 Reservoir - 2 766.18 970.00 52.00 1.00 Tank - - - Link Results at 0:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1866.18 2.35 1.82 - 11 1234.21 2.57 2.87 - 12 129.34 0.53 0.23 - 21 191.16 0.78 0.47 - 22 120.66 0.34 0.08 - 31 40.81 0.46 0.32 - 110 -766.18 0.97 0.35 - 111 481.97 1.97 2.59 - 112 188.70 0.54 0.19 - 113 29.34 0.19 0.04 - 121 140.81 0.90 0.79 - 122 59.19 0.67 0.64 - 9 1866.18 0.00 -204.35 Pump - - - Node Results at 1:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1006.77 128.59 1.00 - 11 150.00 987.98 120.45 0.44 - 12 150.00 973.14 118.35 0.44 - 13 100.00 971.92 119.99 0.43 - 21 150.00 974.50 118.94 0.41 - 22 200.00 972.11 120.07 0.43 - 23 150.00 971.69 122.05 0.44 - 31 100.00 970.36 117.15 0.41 - 32 100.00 968.69 112.09 0.39 - 9 -1848.58 800.00 0.00 1.00 Reservoir - 2 748.58 973.07 53.33 0.97 Tank - - - Link Results at 1:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1848.58 2.33 1.78 - 11 1220.43 2.54 2.81 - 12 130.11 0.53 0.23 - 21 187.69 0.77 0.45 - 22 119.89 0.34 0.08 - 31 40.46 0.46 0.32 - 110 -748.58 0.94 0.33 - 111 478.15 1.95 2.55 - 112 191.73 0.54 0.19 - 113 30.11 0.19 0.05 - 121 140.46 0.90 0.78 - 122 59.54 0.68 0.65 - 9 1848.58 0.00 -206.77 Pump - - - Node Results at 2:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1008.29 129.25 1.00 - 11 180.00 989.71 121.20 0.86 - 12 180.00 976.10 119.63 0.79 - 13 120.00 974.05 120.91 0.37 - 21 180.00 975.44 119.35 0.37 - 22 240.00 973.85 120.82 0.37 - 23 180.00 973.37 122.78 0.39 - 31 120.00 970.04 117.01 0.33 - 32 120.00 968.23 111.89 0.30 - 9 -1837.46 800.00 0.00 1.00 Reservoir - 2 517.46 976.07 54.62 0.93 Tank - - - Link Results at 2:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1837.46 2.32 1.76 - 11 1164.40 2.43 2.58 - 12 172.96 0.71 0.39 - 21 150.84 0.62 0.30 - 22 127.04 0.36 0.09 - 31 42.22 0.48 0.34 - 110 -517.46 0.65 0.17 - 111 493.06 2.01 2.70 - 112 293.98 0.83 0.43 - 113 52.96 0.34 0.13 - 121 162.22 1.04 1.02 - 122 77.78 0.88 1.06 - 9 1837.46 0.00 -208.29 Pump - - - Node Results at 3:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1009.92 129.96 1.00 - 11 180.00 991.57 122.01 0.86 - 12 180.00 978.17 120.53 0.79 - 13 120.00 976.11 121.80 0.31 - 21 180.00 977.44 120.21 0.75 - 22 240.00 975.89 121.71 0.32 - 23 180.00 975.42 123.67 0.34 - 31 120.00 972.05 117.88 0.28 - 32 120.00 970.25 112.76 0.24 - 9 -1825.38 800.00 0.00 1.00 Reservoir - 2 505.38 978.14 55.52 0.91 Tank - - - Link Results at 3:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1825.38 2.30 1.74 - 11 1154.82 2.41 2.54 - 12 173.49 0.71 0.39 - 21 148.51 0.61 0.29 - 22 126.51 0.36 0.09 - 31 42.05 0.48 0.34 - 110 -505.38 0.64 0.16 - 111 490.57 2.00 2.68 - 112 295.94 0.84 0.43 - 113 53.49 0.34 0.13 - 121 162.05 1.03 1.02 - 122 77.95 0.88 1.07 - 9 1825.38 0.00 -209.92 Pump - - - Node Results at 4:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1010.67 130.28 1.00 - 11 210.00 992.42 122.37 0.86 - 12 210.00 980.17 121.40 0.79 - 13 140.00 977.08 122.23 0.30 - 21 210.00 977.24 120.13 0.75 - 22 280.00 976.29 121.88 0.49 - 23 210.00 975.76 123.82 0.30 - 31 140.00 970.32 117.13 0.54 - 32 140.00 968.23 111.89 0.21 - 9 -1819.86 800.00 0.00 1.00 Reservoir - 2 279.86 980.16 56.40 0.89 Tank - - - Link Results at 4:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1819.86 2.29 1.73 - 11 1100.06 2.29 2.32 - 12 215.82 0.88 0.59 - 21 114.27 0.47 0.18 - 22 134.18 0.38 0.10 - 31 45.52 0.52 0.39 - 110 -279.86 0.35 0.05 - 111 509.79 2.08 2.88 - 112 394.39 1.12 0.74 - 113 75.82 0.48 0.25 - 121 185.52 1.18 1.31 - 122 94.48 1.07 1.53 - 9 1819.86 0.00 -210.67 Pump - - - Node Results at 5:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1011.56 130.67 1.00 - 11 210.00 993.43 122.81 0.86 - 12 210.00 981.29 121.88 0.78 - 13 140.00 978.20 122.71 0.58 - 21 210.00 978.32 120.60 0.75 - 22 280.00 977.39 122.36 0.60 - 23 210.00 976.87 124.30 0.25 - 31 140.00 971.40 117.60 0.56 - 32 140.00 969.32 112.37 0.18 - 9 -1813.25 800.00 0.00 1.00 Reservoir - 2 273.25 981.28 56.88 0.87 Tank - - - Link Results at 5:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1813.25 2.29 1.72 - 11 1094.76 2.28 2.30 - 12 216.10 0.88 0.59 - 21 113.03 0.46 0.18 - 22 133.90 0.38 0.10 - 31 45.46 0.52 0.39 - 110 -273.25 0.34 0.05 - 111 508.49 2.08 2.86 - 112 395.40 1.12 0.74 - 113 76.10 0.49 0.25 - 121 185.46 1.18 1.31 - 122 94.54 1.07 1.53 - 9 1813.25 0.00 -211.56 Pump - - - Node Results at 6:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1011.58 130.67 1.00 - 11 240.00 993.45 122.82 0.86 - 12 240.00 982.38 122.35 0.78 - 13 160.00 978.08 122.66 0.59 - 21 240.00 977.06 120.05 0.75 - 22 320.00 976.55 122.00 0.60 - 23 240.00 975.97 123.91 0.21 - 31 160.00 968.35 116.28 0.57 - 32 160.00 965.87 110.87 0.30 - 9 -1813.13 800.00 0.00 1.00 Reservoir - 2 53.13 982.38 57.36 0.85 Tank - - - Link Results at 6:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1813.13 2.29 1.72 - 11 1041.79 2.17 2.10 - 12 257.81 1.05 0.81 - 21 81.35 0.33 0.10 - 22 142.19 0.40 0.11 - 31 49.99 0.57 0.47 - 110 -53.13 0.07 0.00 - 111 531.34 2.17 3.10 - 112 490.85 1.39 1.10 - 113 97.81 0.62 0.40 - 121 209.99 1.34 1.65 - 122 110.01 1.25 2.02 - 9 1813.13 0.00 -211.58 Pump - - - Node Results at 7:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1011.75 130.75 1.00 - 11 240.00 993.65 122.90 0.86 - 12 240.00 982.59 122.45 0.77 - 13 160.00 978.29 122.75 0.60 - 21 240.00 977.27 120.14 0.75 - 22 320.00 976.76 122.09 0.63 - 23 240.00 976.18 124.00 0.25 - 31 160.00 968.56 116.37 0.58 - 32 160.00 966.08 110.96 0.37 - 9 -1811.87 800.00 0.00 1.00 Reservoir - 2 51.87 982.59 57.45 0.84 Tank - - - Link Results at 7:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1811.87 2.28 1.72 - 11 1040.76 2.17 2.09 - 12 257.86 1.05 0.81 - 21 81.13 0.33 0.10 - 22 142.14 0.40 0.11 - 31 49.98 0.57 0.47 - 110 -51.87 0.07 0.00 - 111 531.11 2.17 3.10 - 112 491.04 1.39 1.10 - 113 97.86 0.62 0.40 - 121 209.98 1.34 1.65 - 122 110.02 1.25 2.02 - 9 1811.87 0.00 -211.75 Pump - - - Node Results at 8:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1012.76 131.19 1.00 - 11 210.00 994.80 123.40 0.86 - 12 210.00 982.81 122.54 0.77 - 13 140.00 979.70 123.36 0.61 - 21 210.00 979.79 121.23 0.75 - 22 280.00 978.88 123.01 0.63 - 23 210.00 978.36 124.95 0.34 - 31 140.00 972.87 118.24 0.58 - 32 140.00 970.80 113.00 0.39 - 9 -1804.29 800.00 0.00 1.00 Reservoir - 2 264.29 982.80 57.54 0.82 Tank - - - Link Results at 8:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1804.29 2.27 1.71 - 11 1087.56 2.27 2.27 - 12 216.48 0.88 0.59 - 21 111.35 0.45 0.17 - 22 133.52 0.38 0.10 - 31 45.38 0.51 0.39 - 110 -264.29 0.33 0.05 - 111 506.73 2.07 2.84 - 112 396.78 1.13 0.74 - 113 76.48 0.49 0.25 - 121 185.38 1.18 1.31 - 122 94.62 1.07 1.53 - 9 1804.29 0.00 -212.76 Pump - - - Node Results at 9:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1013.60 131.55 1.00 - 11 210.00 995.76 123.82 0.86 - 12 210.00 983.86 123.00 0.78 - 13 140.00 980.75 123.82 0.59 - 21 210.00 980.81 121.67 0.75 - 22 280.00 979.92 123.46 0.60 - 23 210.00 979.40 125.40 0.37 - 31 140.00 973.90 118.68 0.57 - 32 140.00 971.83 113.45 0.38 - 9 -1798.00 800.00 0.00 1.00 Reservoir - 2 258.00 983.86 58.00 0.80 Tank - - - Link Results at 9:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1798.00 2.27 1.69 - 11 1082.50 2.26 2.25 - 12 216.75 0.89 0.59 - 21 110.17 0.45 0.17 - 22 133.25 0.38 0.10 - 31 45.33 0.51 0.39 - 110 -258.00 0.33 0.05 - 111 505.50 2.06 2.83 - 112 397.75 1.13 0.75 - 113 76.75 0.49 0.26 - 121 185.33 1.18 1.31 - 122 94.67 1.07 1.53 - 9 1798.00 0.00 -213.60 Pump - - - Node Results at 10:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1015.26 132.27 1.00 - 11 180.00 997.65 124.64 0.86 - 12 180.00 984.92 123.45 0.78 - 13 120.00 982.82 124.71 0.58 - 21 180.00 983.94 123.03 0.75 - 22 240.00 982.54 124.59 0.59 - 23 180.00 982.08 126.56 0.37 - 31 120.00 978.59 120.71 0.56 - 32 120.00 976.83 115.62 0.36 - 9 -1785.48 800.00 0.00 1.00 Reservoir - 2 465.48 984.89 58.45 0.79 Tank - - - Link Results at 10:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1785.48 2.25 1.67 - 11 1123.12 2.34 2.41 - 12 175.24 0.72 0.40 - 21 140.83 0.58 0.27 - 22 124.76 0.35 0.09 - 31 41.53 0.47 0.33 - 110 -465.48 0.59 0.14 - 111 482.35 1.97 2.60 - 112 302.41 0.86 0.45 - 113 55.24 0.35 0.14 - 121 161.53 1.03 1.01 - 122 78.47 0.89 1.08 - 9 1785.48 0.00 -215.26 Pump - - - Node Results at 11:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1016.73 132.91 1.00 - 11 180.00 999.32 125.36 0.86 - 12 180.00 986.78 124.26 0.78 - 13 120.00 984.67 125.51 0.56 - 21 180.00 985.74 123.81 0.74 - 22 240.00 984.38 125.39 0.57 - 23 180.00 983.92 127.36 0.37 - 31 120.00 980.39 121.49 0.55 - 32 120.00 978.65 116.40 0.35 - 9 -1774.30 800.00 0.00 1.00 Reservoir - 2 454.30 986.75 59.25 0.77 Tank - - - Link Results at 11:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1774.30 2.24 1.65 - 11 1114.24 2.32 2.38 - 12 175.73 0.72 0.40 - 21 138.68 0.57 0.26 - 22 124.27 0.35 0.09 - 31 41.38 0.47 0.33 - 110 -454.30 0.57 0.13 - 111 480.06 1.96 2.57 - 112 304.21 0.86 0.45 - 113 55.73 0.36 0.14 - 121 161.38 1.03 1.01 - 122 78.62 0.89 1.09 - 9 1774.30 0.00 -216.73 Pump - - - Node Results at 12:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1018.99 133.89 1.00 - 11 150.00 1001.90 126.48 0.86 - 12 150.00 988.62 125.06 0.78 - 13 100.00 987.34 126.67 0.55 - 21 150.00 989.42 125.41 0.74 - 22 200.00 987.44 126.72 0.57 - 23 150.00 987.04 128.71 0.36 - 31 100.00 985.38 123.65 0.54 - 32 100.00 983.83 118.65 0.33 - 9 -1757.04 800.00 0.00 1.00 Reservoir - 2 657.04 988.57 60.04 0.75 Tank - - - Link Results at 12:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1757.04 2.22 1.62 - 11 1148.60 2.39 2.51 - 12 134.16 0.55 0.24 - 21 169.69 0.69 0.37 - 22 115.84 0.33 0.08 - 31 38.75 0.44 0.29 - 110 -657.04 0.83 0.26 - 111 458.44 1.87 2.36 - 112 207.40 0.59 0.22 - 113 34.16 0.22 0.06 - 121 138.75 0.89 0.77 - 122 61.25 0.69 0.68 - 9 1757.04 0.00 -218.99 Pump - - - Node Results at 13:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 986.31 119.73 0.99 - 11 150.00 986.31 119.73 0.79 - 12 150.00 987.85 124.73 0.74 - 13 100.00 985.44 125.85 0.55 - 21 150.00 983.42 122.81 0.71 - 22 200.00 983.81 125.14 0.61 - 23 150.00 983.68 127.25 0.33 - 31 100.00 979.90 121.28 0.52 - 32 100.00 979.02 116.57 0.32 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -1100.00 987.99 59.79 0.74 Tank - - - Link Results at 13:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -358.36 0.75 0.29 - 12 188.57 0.77 0.46 - 21 -70.30 0.29 0.07 - 22 61.43 0.17 0.02 - 31 28.67 0.33 0.17 - 110 1100.00 1.39 0.68 - 111 208.36 0.85 0.55 - 112 403.07 1.14 0.77 - 113 88.57 0.57 0.33 - 121 128.67 0.82 0.67 - 122 71.33 0.81 0.91 - 9 0.00 0.00 0.00 Pump - - - Node Results at 14:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 982.48 118.06 0.97 - 11 120.00 982.48 118.06 0.68 - 12 120.00 983.49 122.84 0.72 - 13 80.00 981.90 124.31 0.55 - 21 120.00 980.56 121.57 0.62 - 22 160.00 980.82 123.84 0.61 - 23 120.00 980.73 125.98 0.32 - 31 80.00 978.23 120.56 0.51 - 32 80.00 977.65 115.97 0.30 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -880.00 983.58 57.88 0.72 Tank - - - Link Results at 14:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -286.69 0.60 0.19 - 12 150.85 0.62 0.30 - 21 -56.24 0.23 0.05 - 22 49.15 0.14 0.02 - 31 22.93 0.26 0.11 - 110 880.00 1.11 0.45 - 111 166.69 0.68 0.36 - 112 322.45 0.91 0.51 - 113 70.85 0.45 0.22 - 121 102.93 0.66 0.44 - 122 57.07 0.65 0.60 - 9 0.00 0.00 0.00 Pump - - - Node Results at 15:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 978.95 116.54 0.95 - 11 120.00 978.95 116.54 0.56 - 12 120.00 979.97 121.31 0.70 - 13 80.00 978.37 122.79 0.52 - 21 120.00 977.04 120.04 0.54 - 22 160.00 977.29 122.32 0.58 - 23 120.00 977.21 124.45 0.32 - 31 80.00 974.71 119.03 0.47 - 32 80.00 974.13 114.45 0.31 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -880.00 980.06 56.35 0.71 Tank - - - Link Results at 15:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -286.69 0.60 0.19 - 12 150.85 0.62 0.30 - 21 -56.24 0.23 0.05 - 22 49.15 0.14 0.02 - 31 22.93 0.26 0.11 - 110 880.00 1.11 0.45 - 111 166.69 0.68 0.36 - 112 322.45 0.91 0.51 - 113 70.85 0.45 0.22 - 121 102.93 0.66 0.44 - 122 57.07 0.65 0.60 - 9 0.00 0.00 0.00 Pump - - - Node Results at 16:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 975.88 115.21 0.93 - 11 90.00 975.88 115.21 0.55 - 12 90.00 976.48 119.80 0.69 - 13 60.00 975.55 121.56 0.49 - 21 90.00 974.76 119.05 0.46 - 22 120.00 974.91 121.29 0.56 - 23 90.00 974.86 123.43 0.31 - 31 60.00 973.39 118.46 0.41 - 32 60.00 973.05 113.98 0.31 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -660.00 976.53 54.83 0.69 Tank - - - Link Results at 16:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -215.02 0.45 0.11 - 12 113.14 0.46 0.18 - 21 -42.18 0.17 0.03 - 22 36.86 0.10 0.01 - 31 17.20 0.20 0.07 - 110 660.00 0.83 0.26 - 111 125.02 0.51 0.21 - 112 241.84 0.69 0.30 - 113 53.14 0.34 0.13 - 121 77.20 0.49 0.26 - 122 42.80 0.49 0.35 - 9 0.00 0.00 0.00 Pump - - - Node Results at 17:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 973.24 114.06 0.91 - 11 90.00 973.24 114.06 0.52 - 12 90.00 973.84 118.65 0.67 - 13 60.00 972.90 120.42 0.47 - 21 90.00 972.12 117.91 0.39 - 22 120.00 972.27 120.14 0.53 - 23 90.00 972.22 122.29 0.30 - 31 60.00 970.75 117.32 0.35 - 32 60.00 970.41 112.83 0.27 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -660.00 973.89 53.68 0.68 Tank - - - Link Results at 17:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -215.02 0.45 0.11 - 12 113.14 0.46 0.18 - 21 -42.18 0.17 0.03 - 22 36.86 0.10 0.01 - 31 17.20 0.20 0.07 - 110 660.00 0.83 0.26 - 111 125.02 0.51 0.21 - 112 241.84 0.69 0.30 - 113 53.14 0.34 0.13 - 121 77.20 0.49 0.26 - 122 42.80 0.49 0.35 - 9 0.00 0.00 0.00 Pump - - - Node Results at 18:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 970.94 113.07 0.89 - 11 60.00 970.94 113.07 0.50 - 12 60.00 971.22 117.52 0.66 - 13 40.00 970.78 119.50 0.45 - 21 60.00 970.41 117.17 0.34 - 22 80.00 970.48 119.37 0.51 - 23 60.00 970.46 121.52 0.28 - 31 40.00 969.77 116.89 0.30 - 32 40.00 969.60 112.49 0.25 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -440.00 971.25 52.54 0.66 Tank - - - Link Results at 18:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -143.35 0.30 0.05 - 12 75.43 0.31 0.08 - 21 -28.12 0.11 0.01 - 22 24.57 0.07 0.00 - 31 11.47 0.13 0.03 - 110 440.00 0.55 0.13 - 111 83.35 0.34 0.10 - 112 161.23 0.46 0.14 - 113 35.43 0.23 0.06 - 121 51.47 0.33 0.12 - 122 28.53 0.32 0.17 - 9 0.00 0.00 0.00 Pump - - - Node Results at 19:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 969.18 112.30 0.87 - 11 60.00 969.18 112.30 0.47 - 12 60.00 969.46 116.76 0.65 - 13 40.00 969.02 118.73 0.42 - 21 60.00 968.65 116.41 0.31 - 22 80.00 968.72 118.60 0.49 - 23 60.00 968.70 120.76 0.26 - 31 40.00 968.00 116.13 0.26 - 32 40.00 967.84 111.72 0.23 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -440.00 969.49 51.77 0.65 Tank - - - Link Results at 19:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -143.35 0.30 0.05 - 12 75.43 0.31 0.08 - 21 -28.12 0.11 0.01 - 22 24.57 0.07 0.00 - 31 11.47 0.13 0.03 - 110 440.00 0.55 0.13 - 111 83.35 0.34 0.10 - 112 161.23 0.46 0.14 - 113 35.43 0.23 0.06 - 121 51.47 0.33 0.12 - 122 28.53 0.32 0.17 - 9 0.00 0.00 0.00 Pump - - - Node Results at 20:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 967.07 111.39 0.85 - 11 90.00 967.07 111.39 0.45 - 12 90.00 967.67 115.98 0.63 - 13 60.00 966.74 117.74 0.40 - 21 90.00 965.95 115.24 0.29 - 22 120.00 966.10 117.47 0.46 - 23 90.00 966.05 119.61 0.25 - 31 60.00 964.58 114.64 0.23 - 32 60.00 964.24 110.16 0.21 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -660.00 967.72 51.01 0.64 Tank - - - Link Results at 20:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -215.02 0.45 0.11 - 12 113.14 0.46 0.18 - 21 -42.18 0.17 0.03 - 22 36.86 0.10 0.01 - 31 17.20 0.20 0.07 - 110 660.00 0.83 0.26 - 111 125.02 0.51 0.21 - 112 241.84 0.69 0.30 - 113 53.14 0.34 0.13 - 121 77.20 0.49 0.26 - 122 42.80 0.49 0.35 - 9 0.00 0.00 0.00 Pump - - - Node Results at 21:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 964.43 110.25 0.83 - 11 90.00 964.43 110.25 0.44 - 12 90.00 965.03 114.84 0.62 - 13 60.00 964.09 116.60 0.39 - 21 90.00 963.31 114.09 0.29 - 22 120.00 963.46 116.32 0.45 - 23 90.00 963.41 118.47 0.23 - 31 60.00 961.94 113.50 0.19 - 32 60.00 961.60 109.02 0.20 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -660.00 965.08 49.86 0.62 Tank - - - Link Results at 21:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -215.02 0.45 0.11 - 12 113.14 0.46 0.18 - 21 -42.18 0.17 0.03 - 22 36.86 0.10 0.01 - 31 17.20 0.20 0.07 - 110 660.00 0.83 0.26 - 111 125.02 0.51 0.21 - 112 241.84 0.69 0.30 - 113 53.14 0.34 0.13 - 121 77.20 0.49 0.26 - 122 42.80 0.49 0.35 - 9 0.00 0.00 0.00 Pump - - - Node Results at 22:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 961.33 108.90 0.82 - 11 120.00 961.33 108.90 0.43 - 12 120.00 962.35 113.67 0.61 - 13 80.00 960.76 115.15 0.38 - 21 120.00 959.42 112.41 0.29 - 22 160.00 959.67 114.68 0.46 - 23 120.00 959.59 116.81 0.22 - 31 80.00 957.09 111.40 0.17 - 32 80.00 956.51 106.81 0.19 - 9 0.00 800.00 0.00 1.00 Reservoir - 2 -880.00 962.44 48.72 0.61 Tank - - - Link Results at 22:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 -0.00 0.00 0.00 - 11 -286.69 0.60 0.19 - 12 150.85 0.62 0.30 - 21 -56.24 0.23 0.05 - 22 49.15 0.14 0.02 - 31 22.93 0.26 0.11 - 110 880.00 1.11 0.45 - 111 166.69 0.68 0.36 - 112 322.45 0.91 0.51 - 113 70.85 0.45 0.22 - 121 102.93 0.66 0.44 - 122 57.07 0.65 0.60 - 9 0.00 0.00 0.00 Pump - - - Node Results at 23:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 998.30 124.92 1.00 - 11 120.00 978.35 116.28 0.69 - 12 120.00 961.40 113.26 0.50 - 13 80.00 960.84 115.19 0.40 - 21 120.00 964.86 114.76 0.32 - 22 160.00 961.22 115.35 0.40 - 23 120.00 960.83 117.35 0.23 - 31 80.00 961.63 113.37 0.18 - 32 80.00 959.78 108.23 0.16 - 9 -1909.42 800.00 0.00 1.00 Reservoir - 2 1029.42 961.28 48.22 0.60 Tank - - - Link Results at 23:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1909.42 2.41 1.89 - 11 1310.99 2.73 3.21 - 12 85.91 0.35 0.11 - 21 235.69 0.96 0.69 - 22 114.09 0.32 0.07 - 31 42.74 0.48 0.35 - 110 -1029.42 1.30 0.60 - 111 478.43 1.95 2.56 - 112 75.66 0.21 0.03 - 113 5.91 0.04 0.00 - 121 122.74 0.78 0.61 - 122 37.26 0.42 0.27 - 9 1909.42 0.00 -198.30 Pump - - - Node Results at 24:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Chlorine - Node gpm ft psi mg/L - -------------------------------------------------------- - 10 0.00 1000.72 125.97 1.00 - 11 150.00 981.10 117.47 0.87 - 12 150.00 965.48 115.03 0.64 - 13 100.00 964.30 116.69 0.38 - 21 150.00 967.12 115.74 0.60 - 22 200.00 964.53 116.79 0.26 - 23 150.00 964.09 118.76 0.25 - 31 100.00 962.94 113.93 0.19 - 32 100.00 961.19 108.84 0.15 - 9 -1892.24 800.00 0.00 1.00 Reservoir - 2 792.24 965.40 50.00 0.59 Tank - - - Link Results at 24:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 10 1892.24 2.39 1.86 - 11 1254.61 2.61 2.96 - 12 128.19 0.52 0.22 - 21 196.30 0.80 0.49 - 22 121.81 0.35 0.08 - 31 41.33 0.47 0.33 - 110 -792.24 1.00 0.37 - 111 487.64 1.99 2.65 - 112 184.18 0.52 0.18 - 113 28.19 0.18 0.04 - 121 141.33 0.90 0.79 - 122 58.67 0.67 0.63 - 9 1892.24 0.00 -200.72 Pump - - Analysis ended Fri Oct 13 13:50:29 2017 diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/performance.json b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/performance.json deleted file mode 100644 index 3fb10e8..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_1/performance.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "duration": 0.87, - "max_memory_MB": 0.0 -} \ No newline at end of file diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/example2.out b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/example2.out deleted file mode 100644 index 3ff3744..0000000 Binary files a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/example2.out and /dev/null differ diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/example2.rpt b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/example2.rpt deleted file mode 100644 index 6f3512c..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/example2.rpt +++ /dev/null @@ -1,5176 +0,0 @@ - Page 1 Fri Oct 13 13:50:29 2017 - - ****************************************************************** - * E P A N E T * - * Hydraulic and Water Quality * - * Analysis for Pipe Networks * - * Version 2.00.12 * - ****************************************************************** - - Analysis begun Fri Oct 13 13:50:29 2017 - - - Hydraulic Status: - ----------------------------------------------------------------------- - 0:00:00: Balanced after 5 trials - 0:00:00: Tank 26 is filling at 56.70 ft - - 1:00:00: Balanced after 3 trials - - 2:00:00: Balanced after 2 trials - - 3:00:00: Balanced after 1 trials - - 4:00:00: Balanced after 2 trials - - 5:00:00: Balanced after 3 trials - - 6:00:00: Balanced after 3 trials - - 7:00:00: Balanced after 4 trials - 7:00:00: Tank 26 is emptying at 64.78 ft - - 8:00:00: Balanced after 1 trials - - 9:00:00: Balanced after 2 trials - - 10:00:00: Balanced after 2 trials - - 11:00:00: Balanced after 2 trials - - 12:00:00: Balanced after 4 trials - 12:00:00: Tank 26 is filling at 56.72 ft - - 13:00:00: Balanced after 3 trials - - 14:00:00: Balanced after 3 trials - - 15:00:00: Balanced after 3 trials - - 16:00:00: Balanced after 2 trials - - 17:00:00: Balanced after 4 trials - 17:00:00: Tank 26 is emptying at 65.13 ft - - 18:00:00: Balanced after 3 trials - - 19:00:00: Balanced after 2 trials - - 20:00:00: Balanced after 2 trials - - 21:00:00: Balanced after 2 trials - - 22:00:00: Balanced after 2 trials - - 23:00:00: Balanced after 2 trials - - 24:00:00: Balanced after 4 trials - 24:00:00: Tank 26 is filling at 56.20 ft - - 25:00:00: Balanced after 2 trials - - 26:00:00: Balanced after 2 trials - - 27:00:00: Balanced after 3 trials - - 28:00:00: Balanced after 2 trials - - 29:00:00: Balanced after 3 trials - - 30:00:00: Balanced after 2 trials - - 31:00:00: Balanced after 5 trials - 31:00:00: Tank 26 is emptying at 64.88 ft - - 32:00:00: Balanced after 4 trials - - 33:00:00: Balanced after 2 trials - - 34:00:00: Balanced after 2 trials - - 35:00:00: Balanced after 2 trials - - 36:00:00: Balanced after 2 trials - - 37:00:00: Balanced after 4 trials - 37:00:00: Tank 26 is filling at 56.52 ft - - 38:00:00: Balanced after 3 trials - - 39:00:00: Balanced after 3 trials - - 40:00:00: Balanced after 2 trials - - 41:00:00: Balanced after 2 trials - - 42:00:00: Balanced after 3 trials - 42:00:00: Tank 26 is emptying at 64.83 ft - - 43:00:00: Balanced after 3 trials - - 44:00:00: Balanced after 2 trials - - 45:00:00: Balanced after 2 trials - - 46:00:00: Balanced after 2 trials - - 47:00:00: Balanced after 2 trials - - 48:00:00: Balanced after 2 trials - - 49:00:00: Balanced after 4 trials - 49:00:00: Tank 26 is filling at 56.48 ft - - 50:00:00: Balanced after 3 trials - - 51:00:00: Balanced after 3 trials - - 52:00:00: Balanced after 2 trials - - 53:00:00: Balanced after 2 trials - - 54:00:00: Balanced after 1 trials - - 55:00:00: Balanced after 3 trials - - - Node Results at 0:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 309.88 112.61 1.00 - 2 10.08 305.22 88.92 1.00 - 3 17.64 304.59 105.98 1.00 - 4 10.08 304.17 105.80 1.00 - 5 10.08 304.13 88.45 1.00 - 6 6.30 302.10 76.74 1.00 - 7 5.04 297.62 59.63 1.00 - 8 11.34 297.61 81.29 1.00 - 9 17.64 297.00 50.69 1.00 - 10 6.30 297.61 72.63 1.00 - 11 43.82 295.97 48.08 1.00 - 12 20.16 293.57 36.21 1.00 - 13 2.52 292.86 35.90 1.00 - 14 2.52 292.54 40.10 1.00 - 15 2.52 292.35 44.35 1.00 - 16 25.20 292.38 61.69 1.00 - 17 25.20 292.33 48.67 1.00 - 18 25.20 292.33 83.34 1.00 - 19 6.30 292.34 61.67 1.00 - 20 23.94 292.51 53.08 1.00 - 21 20.16 292.49 61.74 1.00 - 22 12.60 292.49 40.07 1.00 - 23 10.08 291.91 26.83 1.00 - 24 13.86 292.22 44.29 1.00 - 25 7.56 291.77 26.76 1.00 - 27 10.08 291.75 70.09 1.00 - 28 0.00 291.74 78.75 1.00 - 29 8.82 291.74 78.75 1.00 - 30 3.78 291.74 70.08 1.00 - 31 21.42 291.76 44.09 1.00 - 32 21.42 292.33 79.00 1.00 - 33 1.89 292.49 48.74 1.00 - 34 1.89 292.49 44.41 1.00 - 35 0.00 291.74 78.75 1.00 - 36 1.26 291.74 78.75 1.00 - 26 259.92 291.70 24.57 1.00 Tank - - - Link Results at 0:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 548.36 1.56 1.35 - 3 108.18 0.69 0.48 - 4 90.54 0.58 0.35 - 5 80.46 0.23 0.04 - 6 618.74 1.76 1.69 - 7 612.44 1.74 1.66 - 8 17.64 0.05 0.00 - 9 589.76 1.67 1.55 - 10 6.30 0.04 0.00 - 11 572.12 1.62 1.46 - 12 528.30 1.50 1.26 - 13 508.14 1.44 1.18 - 14 418.27 1.19 0.82 - 15 355.27 1.01 0.61 - 16 87.35 0.56 0.33 - 17 15.97 0.10 0.01 - 18 38.76 0.25 0.07 - 19 29.52 0.08 0.01 - 20 4.32 0.01 0.00 - 21 23.40 0.15 0.03 - 22 60.48 0.17 0.02 - 23 18.34 0.12 0.02 - 24 -1.82 0.01 0.00 - 25 18.20 0.12 0.02 - 26 322.92 0.92 0.51 - 27 336.78 0.96 0.55 - 28 312.84 0.89 0.48 - 29 259.92 0.74 0.34 - 30 45.36 0.13 0.01 - 31 23.94 0.15 0.03 - 32 13.86 0.09 0.01 - 34 2.57 0.02 0.00 - 35 3.78 0.02 0.00 - 36 1.89 0.01 0.00 - 37 -17.10 0.11 0.02 - 38 2.47 0.02 0.00 - 39 3.78 0.02 0.00 - 40 1.31 0.01 0.00 - 41 1.26 0.01 0.00 - - - Node Results at 1:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 311.83 113.45 0.98 - 2 8.32 307.16 89.76 0.98 - 3 14.56 306.54 106.83 0.98 - 4 8.32 306.11 106.64 1.00 - 5 8.32 306.07 89.29 0.98 - 6 5.20 303.98 77.55 0.98 - 7 4.16 299.37 60.39 1.00 - 8 9.36 299.37 82.05 1.00 - 9 14.56 298.72 51.44 1.00 - 10 5.20 299.36 73.39 1.00 - 11 36.17 297.64 48.81 1.00 - 12 16.64 295.03 36.84 1.00 - 13 2.08 294.25 36.51 1.00 - 14 2.08 293.89 40.68 1.00 - 15 2.08 293.67 44.92 1.00 - 16 20.80 293.73 62.28 1.00 - 17 20.80 293.67 49.25 1.00 - 18 20.80 293.67 83.92 1.00 - 19 5.20 293.68 62.26 1.00 - 20 19.76 293.87 53.67 1.00 - 21 16.64 293.85 62.33 1.00 - 22 10.40 293.85 40.67 1.00 - 23 8.32 293.07 27.33 1.00 - 24 11.44 293.49 44.84 1.00 - 25 6.24 292.87 27.24 1.00 - 27 8.32 292.85 70.56 1.00 - 28 0.00 292.85 79.23 1.00 - 29 7.28 292.85 79.23 1.00 - 30 3.12 292.85 70.56 1.00 - 31 17.68 292.86 44.57 1.00 - 32 17.68 293.67 79.58 1.00 - 33 1.56 293.85 49.33 1.00 - 34 1.56 293.85 45.00 1.00 - 35 0.00 292.85 79.23 1.00 - 36 1.04 292.85 79.23 1.00 - 26 330.93 292.76 25.03 1.00 Tank - - - Link Results at 1:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 551.15 1.56 1.37 - 3 107.16 0.68 0.47 - 4 92.60 0.59 0.36 - 5 84.28 0.24 0.04 - 6 627.10 1.78 1.74 - 7 621.90 1.76 1.71 - 8 14.56 0.04 0.00 - 9 603.18 1.71 1.62 - 10 5.20 0.03 0.00 - 11 588.62 1.67 1.54 - 12 552.45 1.57 1.37 - 13 535.81 1.52 1.30 - 14 442.98 1.26 0.91 - 15 390.98 1.11 0.72 - 16 90.76 0.58 0.35 - 17 -5.48 0.03 0.00 - 18 44.44 0.28 0.09 - 19 18.17 0.05 0.00 - 20 -2.63 0.01 0.00 - 21 25.51 0.16 0.03 - 22 49.92 0.14 0.02 - 23 15.14 0.10 0.01 - 24 -1.50 0.01 0.00 - 25 15.02 0.10 0.01 - 26 382.93 1.09 0.70 - 27 394.37 1.12 0.74 - 28 374.61 1.06 0.67 - 29 330.93 0.94 0.53 - 30 37.44 0.11 0.01 - 31 19.76 0.13 0.02 - 32 11.44 0.07 0.01 - 34 1.79 0.01 0.00 - 35 3.12 0.02 0.00 - 36 1.56 0.01 0.00 - 37 -20.31 0.13 0.02 - 38 2.37 0.02 0.00 - 39 3.12 0.02 0.00 - 40 0.75 0.00 0.00 - 41 1.04 0.01 0.00 - - - Node Results at 2:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 313.47 114.16 1.02 - 2 7.76 308.80 90.47 1.02 - 3 13.58 308.19 107.54 1.02 - 4 7.76 307.75 107.35 0.98 - 5 7.76 307.71 90.00 1.02 - 6 4.85 305.61 78.26 1.02 - 7 3.88 300.95 61.07 0.98 - 8 8.73 300.95 82.74 1.00 - 9 13.58 300.29 52.12 0.98 - 10 4.85 300.95 74.07 1.00 - 11 33.74 299.20 49.48 0.98 - 12 15.52 296.52 37.49 0.98 - 13 1.94 295.72 37.14 0.98 - 14 1.94 295.34 41.31 0.98 - 15 1.94 295.11 45.54 0.99 - 16 19.40 295.18 62.91 1.00 - 17 19.40 295.12 49.88 1.00 - 18 19.40 295.12 84.55 1.00 - 19 4.85 295.14 62.89 1.00 - 20 18.43 295.33 54.30 1.00 - 21 15.52 295.31 62.96 1.00 - 22 9.70 295.31 41.30 1.00 - 23 7.76 294.45 27.93 1.00 - 24 10.67 294.91 45.46 1.00 - 25 5.82 294.23 27.83 1.00 - 27 7.76 294.22 71.16 1.00 - 28 0.00 294.22 79.82 1.00 - 29 6.79 294.22 79.82 1.00 - 30 2.91 294.22 71.16 1.00 - 31 16.49 294.23 45.16 1.00 - 32 16.49 295.12 80.21 1.00 - 33 1.45 295.31 49.96 1.00 - 34 1.45 295.31 45.63 1.00 - 35 0.00 294.22 79.82 1.00 - 36 0.97 294.22 79.82 1.00 - 26 353.53 294.11 25.61 1.00 Tank - - - Link Results at 2:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 552.04 1.57 1.37 - 3 106.83 0.68 0.47 - 4 93.25 0.60 0.37 - 5 85.49 0.24 0.04 - 6 629.76 1.79 1.75 - 7 624.91 1.77 1.72 - 8 13.58 0.04 0.00 - 9 607.45 1.72 1.64 - 10 4.85 0.03 0.00 - 11 593.87 1.68 1.57 - 12 560.14 1.59 1.41 - 13 544.62 1.54 1.34 - 14 450.95 1.28 0.94 - 15 402.45 1.14 0.76 - 16 91.73 0.59 0.36 - 17 -12.19 0.08 0.01 - 18 46.13 0.29 0.10 - 19 14.55 0.04 0.00 - 20 -4.85 0.01 0.00 - 21 26.19 0.17 0.03 - 22 46.56 0.13 0.01 - 23 14.12 0.09 0.01 - 24 -1.40 0.01 0.00 - 25 14.01 0.09 0.01 - 26 402.03 1.14 0.76 - 27 412.70 1.17 0.80 - 28 394.27 1.12 0.74 - 29 353.53 1.00 0.60 - 30 34.92 0.10 0.01 - 31 18.43 0.12 0.02 - 32 10.67 0.07 0.01 - 34 1.67 0.01 0.00 - 35 2.91 0.02 0.00 - 36 1.45 0.01 0.00 - 37 -21.34 0.14 0.02 - 38 2.21 0.01 0.00 - 39 2.91 0.02 0.00 - 40 0.70 0.00 0.00 - 41 0.97 0.01 0.00 - - - Node Results at 3:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 314.91 114.79 1.05 - 2 7.76 310.25 91.10 1.05 - 3 13.58 309.63 108.17 1.05 - 4 7.76 309.19 107.98 1.02 - 5 7.76 309.15 90.63 1.04 - 6 4.85 307.05 78.88 1.04 - 7 3.88 302.39 61.70 1.02 - 8 8.73 302.39 83.36 1.00 - 9 13.58 301.74 52.75 1.02 - 10 4.85 302.39 74.70 1.00 - 11 33.74 300.64 50.11 1.02 - 12 15.52 297.96 38.11 1.02 - 13 1.94 297.16 37.77 1.02 - 14 1.94 296.78 41.94 1.02 - 15 1.94 296.56 46.17 1.01 - 16 19.40 296.63 63.53 0.98 - 17 19.40 296.57 50.51 1.00 - 18 19.40 296.57 85.17 1.00 - 19 4.85 296.58 63.51 1.00 - 20 18.43 296.77 54.93 1.00 - 21 15.52 296.75 63.59 1.00 - 22 9.70 296.76 41.92 1.00 - 23 7.76 295.90 28.55 0.98 - 24 10.67 296.36 46.08 1.00 - 25 5.82 295.68 28.46 0.98 - 27 7.76 295.67 71.78 1.00 - 28 0.00 295.66 80.45 1.00 - 29 6.79 295.66 80.45 1.00 - 30 2.91 295.66 71.78 1.00 - 31 16.49 295.67 45.79 1.00 - 32 16.49 296.57 80.84 1.00 - 33 1.45 296.75 50.59 1.00 - 34 1.45 296.75 46.26 1.00 - 35 0.00 295.66 80.45 1.00 - 36 0.97 295.66 80.45 1.00 - 26 353.53 295.56 26.24 1.00 Tank - - - Link Results at 3:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 552.04 1.57 1.37 - 3 106.83 0.68 0.47 - 4 93.25 0.60 0.37 - 5 85.49 0.24 0.04 - 6 629.76 1.79 1.75 - 7 624.91 1.77 1.72 - 8 13.58 0.04 0.00 - 9 607.45 1.72 1.64 - 10 4.85 0.03 0.00 - 11 593.87 1.68 1.57 - 12 560.14 1.59 1.41 - 13 544.62 1.54 1.34 - 14 450.95 1.28 0.94 - 15 402.45 1.14 0.76 - 16 91.72 0.59 0.36 - 17 -12.18 0.08 0.01 - 18 46.13 0.29 0.10 - 19 14.55 0.04 0.00 - 20 -4.85 0.01 0.00 - 21 26.19 0.17 0.03 - 22 46.56 0.13 0.01 - 23 14.12 0.09 0.01 - 24 -1.40 0.01 0.00 - 25 14.01 0.09 0.01 - 26 402.03 1.14 0.76 - 27 412.70 1.17 0.80 - 28 394.27 1.12 0.74 - 29 353.53 1.00 0.60 - 30 34.92 0.10 0.01 - 31 18.43 0.12 0.02 - 32 10.67 0.07 0.01 - 34 1.67 0.01 0.00 - 35 2.91 0.02 0.00 - 36 1.45 0.01 0.00 - 37 -21.34 0.14 0.02 - 38 2.21 0.01 0.00 - 39 2.91 0.02 0.00 - 40 0.70 0.00 0.00 - 41 0.97 0.01 0.00 - - - Node Results at 4:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 316.70 115.56 0.99 - 2 7.12 312.03 91.87 0.99 - 3 12.46 311.43 108.94 0.99 - 4 7.12 310.98 108.75 1.05 - 5 7.12 310.93 91.40 0.99 - 6 4.45 308.82 79.65 0.99 - 7 3.56 304.11 62.44 1.04 - 8 8.01 304.11 84.11 1.00 - 9 12.46 303.45 53.49 1.04 - 10 4.45 304.11 75.44 1.00 - 11 30.95 302.33 50.84 1.04 - 12 14.24 299.57 38.81 1.04 - 13 1.78 298.74 38.45 1.04 - 14 1.78 298.35 42.62 1.04 - 15 1.78 298.11 46.84 1.04 - 16 17.80 298.20 64.22 1.02 - 17 17.80 298.14 51.19 0.99 - 18 17.80 298.14 85.85 1.00 - 19 4.45 298.15 64.19 1.00 - 20 16.91 298.34 55.61 1.00 - 21 14.24 298.32 64.27 1.00 - 22 8.90 298.32 42.60 1.00 - 23 7.12 297.38 29.20 1.02 - 24 9.79 297.89 46.75 1.03 - 25 5.34 297.14 29.09 1.02 - 27 7.12 297.13 72.42 1.00 - 28 0.00 297.13 81.08 1.00 - 29 6.23 297.13 81.08 1.00 - 30 2.67 297.13 72.42 1.00 - 31 15.13 297.13 46.42 0.99 - 32 15.13 298.14 81.52 1.00 - 33 1.34 298.32 51.27 1.00 - 34 1.34 298.32 46.94 1.00 - 35 0.00 297.13 81.08 1.00 - 36 0.89 297.13 81.08 1.00 - 26 379.35 297.00 26.87 1.00 Tank - - - Link Results at 4:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 553.06 1.57 1.38 - 3 106.45 0.68 0.47 - 4 93.99 0.60 0.37 - 5 86.87 0.25 0.04 - 6 632.80 1.80 1.77 - 7 628.35 1.78 1.74 - 8 12.46 0.04 0.00 - 9 612.33 1.74 1.66 - 10 4.45 0.03 0.00 - 11 599.87 1.70 1.60 - 12 568.92 1.61 1.45 - 13 554.68 1.57 1.38 - 14 460.46 1.31 0.98 - 15 415.96 1.18 0.81 - 16 92.44 0.59 0.36 - 17 -19.46 0.12 0.02 - 18 47.79 0.31 0.11 - 19 10.53 0.03 0.00 - 20 -7.27 0.02 0.00 - 21 26.85 0.17 0.04 - 22 42.72 0.12 0.01 - 23 12.95 0.08 0.01 - 24 -1.29 0.01 0.00 - 25 12.86 0.08 0.01 - 26 423.85 1.20 0.84 - 27 433.64 1.23 0.88 - 28 416.73 1.18 0.81 - 29 379.35 1.08 0.68 - 30 32.04 0.09 0.01 - 31 16.91 0.11 0.02 - 32 9.79 0.06 0.01 - 34 1.53 0.01 0.00 - 35 2.67 0.02 0.00 - 36 1.34 0.01 0.00 - 37 -22.40 0.14 0.03 - 38 2.03 0.01 0.00 - 39 2.67 0.02 0.00 - 40 0.64 0.00 0.00 - 41 0.89 0.01 0.00 - - - Node Results at 5:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 317.01 115.70 0.64 - 2 9.52 312.34 92.01 0.64 - 3 16.66 311.72 109.07 0.67 - 4 9.52 311.30 108.89 0.99 - 5 9.52 311.26 91.54 0.70 - 6 5.95 309.21 79.82 0.70 - 7 4.76 304.68 62.69 0.99 - 8 10.71 304.68 84.35 1.00 - 9 16.66 304.05 53.75 0.99 - 10 5.95 304.68 75.69 1.00 - 11 41.39 303.01 51.13 0.99 - 12 19.04 300.54 39.23 1.00 - 13 2.38 299.82 38.92 1.00 - 14 2.38 299.48 43.10 1.00 - 15 2.38 299.28 47.35 1.00 - 16 23.80 299.32 64.70 1.04 - 17 23.80 299.27 51.68 1.03 - 18 23.80 299.27 86.34 1.00 - 19 5.95 299.28 64.68 0.98 - 20 22.61 299.45 56.09 0.98 - 21 19.04 299.43 64.75 1.00 - 22 11.90 299.43 43.08 1.00 - 23 9.52 298.79 29.81 1.04 - 24 13.09 299.13 47.29 1.02 - 25 7.14 298.63 29.74 1.04 - 27 9.52 298.61 73.06 0.99 - 28 0.00 298.61 81.72 1.00 - 29 8.33 298.61 81.72 1.00 - 30 3.57 298.61 73.06 1.00 - 31 20.23 298.62 47.07 1.00 - 32 20.23 299.27 82.01 1.00 - 33 1.78 299.43 51.75 1.00 - 34 1.78 299.43 47.42 1.00 - 35 0.00 298.61 81.72 1.00 - 36 1.19 298.61 81.72 1.00 - 26 282.52 298.55 27.54 1.00 Tank - - - Link Results at 5:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 549.25 1.56 1.36 - 3 107.86 0.69 0.48 - 4 91.20 0.58 0.35 - 5 81.68 0.23 0.04 - 6 621.40 1.76 1.71 - 7 615.45 1.75 1.68 - 8 16.66 0.05 0.00 - 9 594.03 1.69 1.57 - 10 5.95 0.04 0.00 - 11 577.37 1.64 1.49 - 12 535.99 1.52 1.30 - 13 516.95 1.47 1.21 - 14 426.52 1.21 0.85 - 15 367.02 1.04 0.64 - 16 88.04 0.56 0.33 - 17 9.54 0.06 0.01 - 18 40.33 0.26 0.08 - 19 26.07 0.07 0.00 - 20 2.27 0.01 0.00 - 21 23.91 0.15 0.03 - 22 57.12 0.16 0.02 - 23 17.32 0.11 0.02 - 24 -1.72 0.01 0.00 - 25 17.19 0.11 0.02 - 26 342.02 0.97 0.56 - 27 355.11 1.01 0.61 - 28 332.50 0.94 0.54 - 29 282.52 0.80 0.40 - 30 42.84 0.12 0.01 - 31 22.61 0.14 0.03 - 32 13.09 0.08 0.01 - 34 2.05 0.01 0.00 - 35 3.57 0.02 0.00 - 36 1.78 0.01 0.00 - 37 -17.96 0.11 0.02 - 38 2.71 0.02 0.00 - 39 3.57 0.02 0.00 - 40 0.86 0.01 0.00 - 41 1.19 0.01 0.00 - - - Node Results at 6:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -430.53 306.69 111.22 0.46 - 2 10.24 304.61 88.66 0.46 - 3 17.92 304.32 105.86 0.47 - 4 10.24 304.16 105.79 0.64 - 5 10.24 304.15 88.46 0.53 - 6 6.40 303.31 77.26 0.53 - 7 5.12 301.50 61.31 0.69 - 8 11.52 301.50 82.98 1.00 - 9 17.92 301.26 52.54 0.69 - 10 6.40 301.50 74.31 1.00 - 11 44.52 300.88 50.21 0.69 - 12 20.48 300.09 39.04 0.70 - 13 2.56 299.87 38.94 0.70 - 14 2.56 299.79 43.24 0.74 - 15 2.56 299.75 47.56 0.82 - 16 25.60 299.63 64.83 1.00 - 17 25.60 299.61 51.83 1.03 - 18 25.60 299.61 86.49 1.00 - 19 6.40 299.61 64.83 1.02 - 20 24.32 299.76 56.22 1.03 - 21 20.48 299.74 64.88 1.00 - 22 12.80 299.74 43.22 1.00 - 23 10.24 299.72 30.21 0.99 - 24 14.08 299.74 47.55 0.92 - 25 7.68 299.71 30.20 0.99 - 27 10.24 299.69 73.52 1.02 - 28 0.00 299.68 82.19 1.00 - 29 8.96 299.68 82.19 1.00 - 30 3.84 299.68 73.52 1.00 - 31 21.76 299.70 47.53 1.04 - 32 21.76 299.61 82.16 1.00 - 33 1.92 299.74 51.88 1.00 - 34 1.92 299.73 47.55 1.00 - 35 0.00 299.68 82.19 1.00 - 36 1.28 299.68 82.19 1.00 - 26 17.37 299.71 28.04 1.00 Tank - - - Link Results at 6:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 430.53 1.22 0.87 - 2 348.35 0.99 0.58 - 3 71.93 0.46 0.23 - 4 54.01 0.34 0.13 - 5 43.77 0.12 0.01 - 6 381.89 1.08 0.69 - 7 375.49 1.07 0.67 - 8 17.92 0.05 0.00 - 9 352.45 1.00 0.60 - 10 6.40 0.04 0.00 - 11 334.53 0.95 0.54 - 12 290.01 0.82 0.42 - 13 269.53 0.76 0.36 - 14 206.32 0.59 0.22 - 15 142.32 0.40 0.11 - 16 60.65 0.39 0.17 - 17 44.31 0.28 0.09 - 18 19.91 0.13 0.02 - 19 38.61 0.11 0.01 - 20 13.01 0.04 0.00 - 21 15.15 0.10 0.01 - 22 61.44 0.17 0.02 - 23 18.63 0.12 0.02 - 24 -1.85 0.01 0.00 - 25 18.49 0.12 0.02 - 26 81.37 0.23 0.04 - 27 95.45 0.27 0.05 - 28 71.13 0.20 0.03 - 29 17.37 0.05 0.00 - 30 46.08 0.13 0.01 - 31 24.32 0.16 0.03 - 32 14.08 0.09 0.01 - 34 2.20 0.01 0.00 - 35 3.84 0.02 0.00 - 36 1.92 0.01 0.00 - 37 -8.75 0.06 0.00 - 38 2.92 0.02 0.00 - 39 3.84 0.02 0.00 - 40 0.92 0.01 0.00 - 41 1.28 0.01 0.00 - - - Node Results at 7:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 299.34 108.04 0.35 - 2 5.36 299.34 86.37 0.35 - 3 9.38 299.34 103.71 0.46 - 4 5.36 299.34 103.71 0.47 - 5 5.36 299.34 86.38 0.42 - 6 3.35 299.35 75.55 0.52 - 7 2.68 299.36 60.39 0.52 - 8 6.03 299.36 82.05 1.00 - 9 9.38 299.37 51.72 0.52 - 10 3.35 299.36 73.39 1.00 - 11 23.30 299.38 49.56 0.53 - 12 10.72 299.44 38.76 0.69 - 13 1.34 299.47 38.77 0.69 - 14 1.34 299.49 43.11 0.69 - 15 1.34 299.53 47.46 0.69 - 16 13.40 299.44 64.75 0.71 - 17 13.40 299.44 51.75 1.00 - 18 13.40 299.43 86.41 1.02 - 19 3.35 299.43 64.75 1.02 - 20 12.73 299.49 56.11 1.00 - 21 10.72 299.48 64.77 1.00 - 22 6.70 299.48 43.10 1.00 - 23 5.36 299.67 30.19 0.79 - 24 7.37 299.57 47.47 0.70 - 25 4.02 299.73 30.21 0.92 - 27 5.36 299.72 73.54 1.04 - 28 0.00 299.72 82.21 1.00 - 29 4.69 299.72 82.21 0.99 - 30 2.01 299.72 73.54 1.00 - 31 11.39 299.73 47.54 1.00 - 32 11.39 299.43 82.08 0.99 - 33 1.00 299.48 51.77 1.00 - 34 1.00 299.48 47.44 1.00 - 35 0.00 299.72 82.21 1.00 - 36 0.67 299.72 82.21 1.00 - 26 -216.26 299.78 28.07 1.00 Tank - - - Link Results at 7:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -10.06 0.03 0.00 - 3 4.70 0.03 0.00 - 4 -4.68 0.03 0.00 - 5 -10.04 0.03 0.00 - 6 -25.46 0.07 0.00 - 7 -28.81 0.08 0.01 - 8 9.38 0.03 0.00 - 9 -40.87 0.12 0.01 - 10 3.35 0.02 0.00 - 11 -50.25 0.14 0.02 - 12 -73.55 0.21 0.03 - 13 -84.27 0.24 0.04 - 14 -105.59 0.30 0.06 - 15 -139.09 0.39 0.11 - 16 19.98 0.13 0.02 - 17 34.96 0.22 0.06 - 18 1.07 0.01 0.00 - 19 22.64 0.06 0.00 - 20 9.24 0.03 0.00 - 21 5.50 0.04 0.00 - 22 32.16 0.09 0.01 - 23 9.75 0.06 0.01 - 24 -0.97 0.01 0.00 - 25 9.68 0.06 0.01 - 26 -182.76 0.52 0.18 - 27 -175.39 0.50 0.16 - 28 -188.12 0.53 0.19 - 29 -216.26 0.61 0.24 - 30 24.12 0.07 0.00 - 31 12.73 0.08 0.01 - 32 7.37 0.05 0.00 - 34 1.15 0.01 0.00 - 35 2.01 0.01 0.00 - 36 1.00 0.01 0.00 - 37 -2.15 0.01 0.00 - 38 1.53 0.01 0.00 - 39 2.01 0.01 0.00 - 40 0.48 0.00 0.00 - 41 0.67 0.00 0.00 - - - Node Results at 8:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 298.46 107.66 0.35 - 2 5.36 298.46 85.99 0.35 - 3 9.38 298.46 103.32 0.46 - 4 5.36 298.46 103.32 0.54 - 5 5.36 298.46 85.99 0.42 - 6 3.35 298.46 75.16 0.52 - 7 2.68 298.48 60.00 0.53 - 8 6.03 298.48 81.67 1.00 - 9 9.38 298.48 51.34 0.53 - 10 3.35 298.48 73.00 1.00 - 11 23.30 298.50 49.18 0.53 - 12 10.72 298.56 38.37 0.69 - 13 1.34 298.58 38.38 0.73 - 14 1.34 298.61 42.73 0.99 - 15 1.34 298.64 47.07 1.00 - 16 13.40 298.55 64.37 0.70 - 17 13.40 298.55 51.37 0.71 - 18 13.40 298.55 86.03 1.03 - 19 3.35 298.55 64.37 1.03 - 20 12.73 298.60 55.72 0.98 - 21 10.72 298.59 64.39 1.00 - 22 6.70 298.59 42.72 1.00 - 23 5.36 298.79 29.81 1.00 - 24 7.37 298.68 47.09 1.00 - 25 4.02 298.84 29.83 1.00 - 27 5.36 298.84 73.16 1.00 - 28 0.00 298.84 81.82 1.00 - 29 4.69 298.84 81.82 1.02 - 30 2.01 298.84 73.16 1.00 - 31 11.39 298.84 47.16 1.00 - 32 11.39 298.55 81.70 1.00 - 33 1.00 298.59 51.39 1.00 - 34 1.00 298.59 47.05 1.00 - 35 0.00 298.84 81.82 1.00 - 36 0.67 298.84 81.82 1.00 - 26 -216.26 298.89 27.68 1.00 Tank - - - Link Results at 8:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -10.06 0.03 0.00 - 3 4.70 0.03 0.00 - 4 -4.68 0.03 0.00 - 5 -10.04 0.03 0.00 - 6 -25.46 0.07 0.00 - 7 -28.81 0.08 0.01 - 8 9.38 0.03 0.00 - 9 -40.87 0.12 0.01 - 10 3.35 0.02 0.00 - 11 -50.25 0.14 0.02 - 12 -73.55 0.21 0.03 - 13 -84.27 0.24 0.04 - 14 -105.59 0.30 0.06 - 15 -139.09 0.39 0.11 - 16 19.98 0.13 0.02 - 17 34.96 0.22 0.06 - 18 1.07 0.01 0.00 - 19 22.64 0.06 0.00 - 20 9.24 0.03 0.00 - 21 5.50 0.04 0.00 - 22 32.16 0.09 0.01 - 23 9.75 0.06 0.01 - 24 -0.97 0.01 0.00 - 25 9.68 0.06 0.01 - 26 -182.76 0.52 0.18 - 27 -175.39 0.50 0.16 - 28 -188.12 0.53 0.19 - 29 -216.26 0.61 0.24 - 30 24.12 0.07 0.00 - 31 12.73 0.08 0.01 - 32 7.37 0.05 0.00 - 34 1.15 0.01 0.00 - 35 2.01 0.01 0.00 - 36 1.00 0.01 0.00 - 37 -2.15 0.01 0.00 - 38 1.53 0.01 0.00 - 39 2.01 0.01 0.00 - 40 0.48 0.00 0.00 - 41 0.67 0.00 0.00 - - - Node Results at 9:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 296.44 106.78 0.35 - 2 10.72 296.44 85.12 0.35 - 3 18.76 296.43 102.45 0.46 - 4 10.72 296.44 102.45 0.64 - 5 10.72 296.44 85.12 0.42 - 6 6.70 296.46 74.30 0.52 - 7 5.36 296.52 59.15 0.53 - 8 12.06 296.52 80.82 1.00 - 9 18.76 296.54 50.50 0.53 - 10 6.70 296.52 72.15 1.00 - 11 46.61 296.58 48.35 0.60 - 12 21.44 296.80 37.61 0.96 - 13 2.68 296.89 37.65 1.00 - 14 2.68 296.99 42.02 1.00 - 15 2.68 297.10 46.41 1.00 - 16 26.80 296.78 63.60 0.70 - 17 26.80 296.78 50.60 0.71 - 18 26.80 296.77 85.26 1.00 - 19 6.70 296.77 63.60 1.04 - 20 25.46 296.96 55.01 0.70 - 21 21.44 296.93 63.67 0.99 - 22 13.40 296.93 42.00 0.99 - 23 10.72 297.63 29.31 1.00 - 24 14.74 297.25 46.47 1.00 - 25 8.04 297.84 29.39 1.00 - 27 10.72 297.81 72.71 1.00 - 28 0.00 297.81 81.38 1.00 - 29 9.38 297.81 81.38 1.04 - 30 4.02 297.81 72.71 1.00 - 31 22.78 297.83 46.72 0.96 - 32 22.78 296.77 80.93 1.00 - 33 2.01 296.93 50.67 1.00 - 34 2.01 296.93 46.33 1.00 - 35 0.00 297.81 81.38 1.00 - 36 1.34 297.81 81.38 1.00 - 26 -432.53 298.01 27.30 1.00 Tank - - - Link Results at 9:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -20.12 0.06 0.00 - 3 9.40 0.06 0.01 - 4 -9.36 0.06 0.01 - 5 -20.08 0.06 0.00 - 6 -50.92 0.14 0.02 - 7 -57.62 0.16 0.02 - 8 18.76 0.05 0.00 - 9 -81.74 0.23 0.04 - 10 6.70 0.04 0.00 - 11 -100.50 0.29 0.06 - 12 -147.11 0.42 0.12 - 13 -168.55 0.48 0.15 - 14 -211.18 0.60 0.23 - 15 -278.18 0.79 0.39 - 16 39.96 0.26 0.08 - 17 69.92 0.45 0.22 - 18 2.15 0.01 0.00 - 19 45.27 0.13 0.01 - 20 18.47 0.05 0.00 - 21 11.01 0.07 0.01 - 22 64.32 0.18 0.03 - 23 19.50 0.12 0.02 - 24 -1.94 0.01 0.00 - 25 19.36 0.12 0.02 - 26 -365.53 1.04 0.64 - 27 -350.79 1.00 0.59 - 28 -376.25 1.07 0.67 - 29 -432.53 1.23 0.87 - 30 48.24 0.14 0.02 - 31 25.46 0.16 0.03 - 32 14.74 0.09 0.01 - 34 2.31 0.01 0.00 - 35 4.02 0.03 0.00 - 36 2.01 0.01 0.00 - 37 -4.31 0.03 0.00 - 38 3.05 0.02 0.00 - 39 4.02 0.03 0.00 - 40 0.97 0.01 0.00 - 41 1.34 0.01 0.00 - - - Node Results at 10:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 291.41 104.60 0.35 - 2 19.68 291.41 82.94 0.35 - 3 34.44 291.39 100.26 0.46 - 4 19.68 291.41 100.27 0.64 - 5 19.68 291.42 82.94 0.51 - 6 12.30 291.48 72.14 0.52 - 7 9.84 291.65 57.05 0.56 - 8 22.14 291.65 78.71 0.98 - 9 34.44 291.70 48.40 0.69 - 10 12.30 291.64 70.04 1.00 - 11 85.56 291.83 46.29 0.69 - 12 39.36 292.52 35.76 1.00 - 13 4.92 292.80 35.88 1.00 - 14 4.92 293.09 40.34 1.00 - 15 4.92 293.45 44.82 1.00 - 16 49.20 292.45 61.72 0.70 - 17 49.20 292.45 48.73 1.00 - 18 49.20 292.42 83.38 0.72 - 19 12.30 292.42 61.71 1.04 - 20 46.74 293.00 53.30 0.72 - 21 39.36 292.92 61.93 1.03 - 22 24.60 292.92 40.26 1.04 - 23 19.68 295.08 28.20 1.00 - 24 27.06 293.90 45.02 1.00 - 25 14.76 295.71 28.47 1.00 - 27 19.68 295.64 71.77 0.99 - 28 0.00 295.62 80.43 1.00 - 29 17.22 295.62 80.43 1.00 - 30 7.38 295.62 71.76 1.00 - 31 41.82 295.68 45.79 1.00 - 32 41.82 292.42 79.04 1.02 - 33 3.69 292.92 48.93 1.00 - 34 3.69 292.92 44.59 1.00 - 35 0.00 295.62 80.43 1.00 - 36 2.46 295.62 80.43 1.00 - 26 -794.04 296.24 26.54 1.00 Tank - - - Link Results at 10:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 0.00 0.00 0.00 - 2 -36.94 0.10 0.01 - 3 17.26 0.11 0.02 - 4 -17.18 0.11 0.02 - 5 -36.86 0.10 0.01 - 6 -93.48 0.27 0.05 - 7 -105.78 0.30 0.06 - 8 34.44 0.10 0.00 - 9 -150.06 0.43 0.12 - 10 12.30 0.08 0.00 - 11 -184.50 0.52 0.18 - 12 -270.06 0.77 0.36 - 13 -309.42 0.88 0.47 - 14 -387.69 1.10 0.71 - 15 -510.69 1.45 1.19 - 16 73.35 0.47 0.24 - 17 128.37 0.82 0.66 - 18 3.94 0.03 0.00 - 19 83.11 0.24 0.04 - 20 33.91 0.10 0.01 - 21 20.21 0.13 0.02 - 22 118.08 0.33 0.08 - 23 35.80 0.23 0.06 - 24 -3.56 0.02 0.00 - 25 35.54 0.23 0.06 - 26 -671.04 1.90 1.97 - 27 -643.98 1.83 1.82 - 28 -690.72 1.96 2.08 - 29 -794.04 2.25 2.69 - 30 88.56 0.25 0.05 - 31 46.74 0.30 0.10 - 32 27.06 0.17 0.04 - 34 4.24 0.03 0.00 - 35 7.38 0.05 0.00 - 36 3.69 0.02 0.00 - 37 -7.91 0.05 0.00 - 38 5.60 0.04 0.00 - 39 7.38 0.05 0.00 - 40 1.78 0.01 0.00 - 41 2.46 0.02 0.00 - - - Node Results at 11:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 292.14 104.92 0.35 - 2 7.76 292.14 83.25 0.35 - 3 13.58 292.13 100.58 0.41 - 4 7.76 292.14 100.58 0.64 - 5 7.76 292.14 83.25 0.52 - 6 4.85 292.15 72.43 0.52 - 7 3.88 292.18 57.27 1.00 - 8 8.73 292.18 78.94 1.03 - 9 13.58 292.19 48.61 1.00 - 10 4.85 292.18 70.27 1.00 - 11 33.74 292.21 46.45 1.00 - 12 15.52 292.34 35.68 1.00 - 13 1.94 292.39 35.70 1.00 - 14 1.94 292.44 40.05 1.00 - 15 1.94 292.50 44.41 1.00 - 16 19.40 292.32 61.67 1.00 - 17 19.40 292.32 48.67 1.00 - 18 19.40 292.32 83.33 1.00 - 19 4.85 292.32 61.67 1.00 - 20 18.43 292.42 53.05 1.00 - 21 15.52 292.41 61.70 0.72 - 22 9.70 292.41 40.04 0.70 - 23 7.76 292.79 27.21 1.00 - 24 10.67 292.58 44.45 1.00 - 25 5.82 292.90 27.26 1.00 - 27 7.76 292.89 70.58 1.00 - 28 0.00 292.89 79.25 1.00 - 29 6.79 292.89 79.25 1.00 - 30 2.91 292.89 70.58 1.00 - 31 16.49 292.90 44.59 1.00 - 32 16.49 292.32 79.00 0.79 - 33 1.45 292.41 48.71 1.00 - 34 1.45 292.41 44.37 1.00 - 35 0.00 292.89 79.25 1.00 - 36 0.97 292.89 79.25 1.00 - 26 -313.10 293.00 25.13 1.00 Tank - - - Link Results at 11:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 0.00 0.00 0.00 - 2 -14.57 0.04 0.00 - 3 6.81 0.04 0.00 - 4 -6.77 0.04 0.00 - 5 -14.53 0.04 0.00 - 6 -36.86 0.10 0.01 - 7 -41.71 0.12 0.01 - 8 13.58 0.04 0.00 - 9 -59.17 0.17 0.02 - 10 4.85 0.03 0.00 - 11 -72.75 0.21 0.03 - 12 -106.49 0.30 0.07 - 13 -122.01 0.35 0.08 - 14 -152.87 0.43 0.13 - 15 -201.37 0.57 0.21 - 16 28.92 0.18 0.04 - 17 50.62 0.32 0.12 - 18 1.55 0.01 0.00 - 19 32.77 0.09 0.01 - 20 13.37 0.04 0.00 - 21 7.97 0.05 0.00 - 22 46.56 0.13 0.01 - 23 14.12 0.09 0.01 - 24 -1.40 0.01 0.00 - 25 14.01 0.09 0.01 - 26 -264.60 0.75 0.35 - 27 -253.93 0.72 0.33 - 28 -272.36 0.77 0.37 - 29 -313.10 0.89 0.48 - 30 34.92 0.10 0.01 - 31 18.43 0.12 0.02 - 32 10.67 0.07 0.01 - 34 1.67 0.01 0.00 - 35 2.91 0.02 0.00 - 36 1.45 0.01 0.00 - 37 -3.12 0.02 0.00 - 38 2.21 0.01 0.00 - 39 2.91 0.02 0.00 - 40 0.70 0.00 0.00 - 41 0.97 0.01 0.00 - - - Node Results at 12:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -555.52 305.13 110.55 0.35 - 2 7.36 301.81 87.44 0.42 - 3 12.88 301.36 104.58 0.41 - 4 7.36 301.06 104.45 0.81 - 5 7.36 301.03 87.11 0.52 - 6 4.60 299.55 75.63 0.52 - 7 3.68 296.29 59.05 1.00 - 8 8.28 296.28 80.72 0.79 - 9 12.88 295.83 50.19 1.00 - 10 4.60 296.28 72.05 1.00 - 11 32.00 295.07 47.69 1.00 - 12 14.72 293.25 36.07 1.00 - 13 1.84 292.71 35.84 1.00 - 14 1.84 292.46 40.06 1.00 - 15 1.84 292.31 44.33 1.00 - 16 18.40 292.35 61.68 1.00 - 17 18.40 292.31 48.67 1.00 - 18 18.40 292.31 83.33 1.00 - 19 4.60 292.32 61.67 1.00 - 20 17.48 292.45 53.06 1.00 - 21 14.72 292.43 61.72 0.72 - 22 9.20 292.43 40.05 0.70 - 23 7.36 291.92 26.83 1.00 - 24 10.12 292.19 44.28 1.00 - 25 5.52 291.79 26.77 1.00 - 27 7.36 291.78 70.10 1.00 - 28 0.00 291.77 78.76 1.00 - 29 6.44 291.77 78.76 1.00 - 30 2.76 291.77 70.10 1.00 - 31 15.64 291.78 44.10 1.00 - 32 15.64 292.31 79.00 0.85 - 33 1.38 292.43 48.72 1.00 - 34 1.38 292.43 44.38 1.00 - 35 0.00 291.77 78.76 1.00 - 36 0.92 291.77 78.76 1.00 - 26 258.56 291.72 24.58 1.00 Tank - - - Link Results at 12:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 555.52 1.58 1.39 - 2 458.61 1.30 0.97 - 3 89.55 0.57 0.34 - 4 76.67 0.49 0.26 - 5 69.31 0.20 0.03 - 6 520.56 1.48 1.23 - 7 515.96 1.46 1.21 - 8 12.88 0.04 0.00 - 9 499.40 1.42 1.14 - 10 4.60 0.03 0.00 - 11 486.52 1.38 1.09 - 12 454.52 1.29 0.96 - 13 439.80 1.25 0.90 - 14 363.40 1.03 0.63 - 15 317.40 0.90 0.49 - 16 74.57 0.48 0.24 - 17 0.87 0.01 0.00 - 18 35.52 0.23 0.06 - 19 17.99 0.05 0.00 - 20 -0.41 0.00 0.00 - 21 20.65 0.13 0.02 - 22 44.16 0.13 0.01 - 23 13.39 0.09 0.01 - 24 -1.33 0.01 0.00 - 25 13.29 0.08 0.01 - 26 304.56 0.86 0.46 - 27 314.68 0.89 0.48 - 28 297.20 0.84 0.44 - 29 258.56 0.73 0.34 - 30 33.12 0.09 0.01 - 31 17.48 0.11 0.02 - 32 10.12 0.06 0.01 - 34 1.58 0.01 0.00 - 35 2.76 0.02 0.00 - 36 1.38 0.01 0.00 - 37 -16.05 0.10 0.01 - 38 2.10 0.01 0.00 - 39 2.76 0.02 0.00 - 40 0.66 0.00 0.00 - 41 0.92 0.01 0.00 - - - Node Results at 13:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 315.17 114.90 0.17 - 2 5.44 310.14 91.05 0.17 - 3 9.52 309.50 108.11 0.35 - 4 5.44 308.99 107.89 0.35 - 5 5.44 308.94 90.53 0.21 - 6 3.40 306.59 78.68 0.21 - 7 2.72 301.37 61.25 0.38 - 8 6.12 301.37 82.92 0.69 - 9 9.52 300.62 52.26 0.46 - 10 3.40 301.37 74.25 1.00 - 11 23.65 299.34 49.55 0.52 - 12 10.88 296.12 37.31 0.55 - 13 1.36 295.13 36.89 0.75 - 14 1.36 294.65 41.01 0.92 - 15 1.36 294.34 45.21 0.99 - 16 13.60 294.54 62.63 1.00 - 17 13.60 294.46 49.60 1.00 - 18 13.60 294.46 84.26 1.00 - 19 3.40 294.48 62.60 0.70 - 20 12.92 294.65 54.01 1.00 - 21 10.88 294.64 62.67 1.00 - 22 6.80 294.64 41.01 1.00 - 23 5.44 293.33 27.44 1.00 - 24 7.48 294.04 45.08 1.00 - 25 4.08 292.98 27.29 1.00 - 27 5.44 292.98 70.62 1.00 - 28 0.00 292.98 79.28 1.00 - 29 4.76 292.98 79.28 1.00 - 30 2.04 292.98 70.62 1.00 - 31 11.56 292.98 44.62 1.00 - 32 11.56 294.46 79.93 1.00 - 33 1.02 294.64 49.67 1.00 - 34 1.02 294.64 45.34 1.00 - 35 0.00 292.98 79.28 1.00 - 36 0.68 292.98 79.28 1.00 - 26 474.91 292.78 25.03 1.00 Tank - - - Link Results at 13:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 579.27 1.64 1.50 - 3 109.69 0.70 0.50 - 4 100.17 0.64 0.42 - 5 94.73 0.27 0.05 - 6 668.56 1.90 1.95 - 7 665.16 1.89 1.94 - 8 9.52 0.03 0.00 - 9 652.92 1.85 1.87 - 10 3.40 0.02 0.00 - 11 643.40 1.83 1.82 - 12 619.75 1.76 1.70 - 13 608.87 1.73 1.64 - 14 510.75 1.45 1.19 - 15 476.75 1.35 1.05 - 16 96.76 0.62 0.39 - 17 -41.00 0.26 0.08 - 18 53.63 0.34 0.13 - 19 -0.97 0.00 0.00 - 20 -14.57 0.04 0.00 - 21 29.53 0.19 0.04 - 22 32.64 0.09 0.01 - 23 9.90 0.06 0.01 - 24 -0.98 0.01 0.00 - 25 9.82 0.06 0.01 - 26 508.91 1.44 1.18 - 27 516.39 1.46 1.21 - 28 503.47 1.43 1.16 - 29 474.91 1.35 1.04 - 30 24.48 0.07 0.00 - 31 12.92 0.08 0.01 - 32 7.48 0.05 0.00 - 34 1.17 0.01 0.00 - 35 2.04 0.01 0.00 - 36 1.02 0.01 0.00 - 37 -26.13 0.17 0.03 - 38 1.55 0.01 0.00 - 39 2.04 0.01 0.00 - 40 0.49 0.00 0.00 - 41 0.68 0.00 0.00 - - - Node Results at 14:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 313.86 114.33 0.17 - 2 11.44 308.83 90.49 0.17 - 3 20.02 308.15 107.52 0.17 - 4 11.44 307.71 107.33 0.17 - 5 11.44 307.67 89.98 0.20 - 6 7.15 305.50 78.21 0.21 - 7 5.72 300.74 60.98 0.24 - 8 12.87 300.73 82.65 0.53 - 9 20.02 300.08 52.03 0.26 - 10 7.15 300.73 73.98 1.00 - 11 49.74 299.01 49.40 0.22 - 12 22.88 296.53 37.49 0.21 - 13 2.86 295.81 37.18 0.22 - 14 2.86 295.47 41.37 0.27 - 15 2.86 295.30 45.63 0.39 - 16 28.60 295.28 62.95 0.53 - 17 28.60 295.24 49.93 0.99 - 18 28.60 295.24 84.60 1.00 - 19 7.15 295.24 62.93 1.00 - 20 27.17 295.44 54.35 1.00 - 21 22.88 295.41 63.01 1.00 - 22 14.30 295.41 41.34 1.00 - 23 11.44 294.90 28.12 0.44 - 24 15.73 295.17 45.57 0.42 - 25 8.58 294.77 28.07 0.47 - 27 11.44 294.75 71.38 1.00 - 28 0.00 294.74 80.05 1.00 - 29 10.01 294.74 80.05 1.00 - 30 4.29 294.74 71.38 1.00 - 31 24.31 294.76 45.39 1.00 - 32 24.31 295.24 80.26 0.70 - 33 2.14 295.41 50.01 1.00 - 34 2.14 295.41 45.67 1.00 - 35 0.00 294.74 80.05 1.00 - 36 1.43 294.74 80.05 1.00 - 26 232.82 294.72 25.88 0.99 Tank - - - Link Results at 14:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 569.73 1.62 1.45 - 3 113.23 0.72 0.53 - 4 93.21 0.59 0.37 - 5 81.77 0.23 0.04 - 6 640.06 1.82 1.80 - 7 632.91 1.80 1.77 - 8 20.02 0.06 0.00 - 9 607.17 1.72 1.64 - 10 7.15 0.05 0.00 - 11 587.15 1.67 1.54 - 12 537.41 1.52 1.30 - 13 514.53 1.46 1.20 - 14 421.13 1.19 0.83 - 15 349.63 0.99 0.59 - 16 90.54 0.58 0.35 - 17 26.72 0.17 0.04 - 18 38.16 0.24 0.07 - 19 36.27 0.10 0.01 - 20 7.67 0.02 0.00 - 21 23.79 0.15 0.03 - 22 68.64 0.19 0.03 - 23 20.81 0.13 0.02 - 24 -2.07 0.01 0.00 - 25 20.66 0.13 0.02 - 26 304.32 0.86 0.46 - 27 320.05 0.91 0.50 - 28 292.88 0.83 0.42 - 29 232.82 0.66 0.28 - 30 51.48 0.15 0.02 - 31 27.17 0.17 0.04 - 32 15.73 0.10 0.01 - 34 2.46 0.02 0.00 - 35 4.29 0.03 0.00 - 36 2.14 0.01 0.00 - 37 -16.64 0.11 0.02 - 38 3.26 0.02 0.00 - 39 4.29 0.03 0.00 - 40 1.03 0.01 0.00 - 41 1.43 0.01 0.00 - - - Node Results at 15:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 318.40 116.30 0.13 - 2 4.88 313.37 92.45 0.13 - 3 8.54 312.73 109.51 0.13 - 4 4.88 312.22 109.29 0.17 - 5 4.88 312.17 91.93 0.14 - 6 3.05 309.80 80.08 0.14 - 7 2.44 304.53 62.63 0.19 - 8 5.49 304.53 84.29 0.53 - 9 8.54 303.78 53.63 0.19 - 10 3.05 304.53 75.62 1.00 - 11 21.22 302.48 50.90 0.19 - 12 9.76 299.18 38.64 0.21 - 13 1.22 298.17 38.20 0.21 - 14 1.22 297.68 42.32 0.23 - 15 1.22 297.35 46.51 0.24 - 16 12.20 297.58 63.95 0.21 - 17 12.20 297.50 50.91 0.64 - 18 12.20 297.50 85.58 1.00 - 19 3.05 297.52 63.92 1.00 - 20 11.59 297.67 55.32 1.00 - 21 9.76 297.66 63.98 1.00 - 22 6.10 297.66 42.32 1.00 - 23 4.88 296.27 28.71 0.24 - 24 6.71 297.02 46.37 0.24 - 25 3.66 295.89 28.55 0.22 - 27 4.88 295.89 71.88 1.00 - 28 0.00 295.89 80.54 1.00 - 29 4.27 295.89 80.55 1.00 - 30 1.83 295.89 71.88 1.00 - 31 10.37 295.89 45.88 0.57 - 32 10.37 297.50 81.24 0.92 - 33 0.92 297.66 50.98 1.00 - 34 0.92 297.66 46.65 1.00 - 35 0.00 295.89 80.54 0.99 - 36 0.61 295.89 80.54 1.00 - 26 497.50 295.67 26.29 0.98 Tank - - - Link Results at 15:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 580.17 1.65 1.50 - 3 109.35 0.70 0.49 - 4 100.81 0.64 0.42 - 5 95.93 0.27 0.05 - 6 671.22 1.90 1.97 - 7 668.17 1.90 1.95 - 8 8.54 0.02 0.00 - 9 657.19 1.86 1.89 - 10 3.05 0.02 0.00 - 11 648.65 1.84 1.85 - 12 627.43 1.78 1.74 - 13 617.67 1.75 1.69 - 14 519.91 1.47 1.23 - 15 489.41 1.39 1.10 - 16 96.54 0.62 0.39 - 17 -46.52 0.30 0.10 - 18 54.49 0.35 0.14 - 19 -4.23 0.01 0.00 - 20 -16.43 0.05 0.00 - 21 29.85 0.19 0.04 - 22 29.28 0.08 0.01 - 23 8.88 0.06 0.00 - 24 -0.88 0.01 0.00 - 25 8.81 0.06 0.00 - 26 528.00 1.50 1.26 - 27 534.71 1.52 1.29 - 28 523.12 1.48 1.24 - 29 497.50 1.41 1.13 - 30 21.96 0.06 0.00 - 31 11.59 0.07 0.01 - 32 6.71 0.04 0.00 - 34 1.05 0.01 0.00 - 35 1.83 0.01 0.00 - 36 0.92 0.01 0.00 - 37 -26.80 0.17 0.04 - 38 1.39 0.01 0.00 - 39 1.83 0.01 0.00 - 40 0.44 0.00 0.00 - 41 0.61 0.00 0.00 - - - Node Results at 16:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 321.96 117.84 0.13 - 2 2.48 316.93 94.00 0.13 - 3 4.34 316.31 111.06 0.13 - 4 2.48 315.77 110.83 0.13 - 5 2.48 315.71 93.47 0.14 - 6 1.55 313.27 81.58 0.14 - 7 1.24 307.81 64.05 0.14 - 8 2.79 307.81 85.71 0.53 - 9 4.34 307.02 55.04 0.14 - 10 1.55 307.81 77.05 1.00 - 11 10.78 305.64 52.27 0.14 - 12 4.96 302.01 39.87 0.14 - 13 0.62 300.88 39.38 0.14 - 14 0.62 300.31 43.47 0.14 - 15 0.62 299.91 47.62 0.23 - 16 6.20 300.31 65.13 0.19 - 17 6.20 300.22 52.09 0.27 - 18 6.20 300.23 86.76 1.00 - 19 1.55 300.25 65.10 0.60 - 20 5.89 300.31 56.46 0.39 - 21 4.96 300.31 65.13 1.00 - 22 3.10 300.31 43.46 1.00 - 23 2.48 298.51 29.68 0.26 - 24 3.41 299.49 47.44 0.24 - 25 1.86 298.01 29.47 0.26 - 27 2.48 298.01 72.80 0.96 - 28 0.00 298.01 81.47 1.00 - 29 2.17 298.01 81.47 1.00 - 30 0.93 298.01 72.80 1.00 - 31 5.27 298.01 46.80 0.40 - 32 5.27 300.23 82.43 1.00 - 33 0.46 300.31 52.13 1.00 - 34 0.46 300.31 47.80 1.00 - 35 0.00 298.01 81.47 1.01 - 36 0.31 298.01 81.47 1.00 - 26 594.34 297.70 27.17 0.96 Tank - - - Link Results at 16:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 584.06 1.66 1.52 - 3 107.86 0.69 0.48 - 4 103.52 0.66 0.45 - 5 101.04 0.29 0.06 - 6 682.62 1.94 2.03 - 7 681.07 1.93 2.02 - 8 4.34 0.01 0.00 - 9 675.49 1.92 1.99 - 10 1.55 0.01 0.00 - 11 671.15 1.90 1.97 - 12 660.37 1.87 1.91 - 13 655.41 1.86 1.88 - 14 560.47 1.59 1.41 - 15 544.97 1.55 1.34 - 16 94.31 0.60 0.37 - 17 -68.89 0.44 0.21 - 18 57.45 0.37 0.15 - 19 -17.64 0.05 0.00 - 20 -23.84 0.07 0.00 - 21 30.66 0.20 0.05 - 22 14.88 0.04 0.00 - 23 4.51 0.03 0.00 - 24 -0.45 0.00 0.00 - 25 4.48 0.03 0.00 - 26 609.84 1.73 1.65 - 27 613.25 1.74 1.67 - 28 607.36 1.72 1.64 - 29 594.34 1.69 1.57 - 30 11.16 0.03 0.00 - 31 5.89 0.04 0.00 - 32 3.41 0.02 0.00 - 34 0.53 0.00 0.00 - 35 0.93 0.01 0.00 - 36 0.46 0.00 0.00 - 37 -29.11 0.19 0.04 - 38 0.71 0.00 0.00 - 39 0.93 0.01 0.00 - 40 0.22 0.00 0.00 - 41 0.31 0.00 0.00 - - - Node Results at 17:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -104.16 300.34 108.47 0.13 - 2 6.24 300.19 86.74 0.13 - 3 10.92 300.17 104.06 0.13 - 4 6.24 300.16 104.06 0.13 - 5 6.24 300.16 86.73 0.13 - 6 3.90 300.12 75.88 0.13 - 7 3.12 300.04 60.68 0.13 - 8 7.02 300.04 82.34 0.53 - 9 10.92 300.03 52.01 0.13 - 10 3.90 300.04 73.68 1.00 - 11 27.13 300.02 49.84 0.13 - 12 12.48 300.02 39.00 0.14 - 13 1.56 300.02 39.00 0.14 - 14 1.56 300.02 43.34 0.14 - 15 1.56 300.03 47.67 0.15 - 16 15.60 299.95 64.97 0.14 - 17 15.60 299.94 51.97 0.28 - 18 15.60 299.94 86.63 1.00 - 19 3.90 299.94 64.97 0.21 - 20 14.82 300.01 56.33 0.22 - 21 12.48 300.00 64.99 1.00 - 22 7.80 300.00 43.33 1.00 - 23 6.24 300.08 30.37 0.15 - 24 8.58 300.04 47.68 0.15 - 25 4.68 300.10 30.38 0.15 - 27 6.24 300.10 73.70 0.57 - 28 0.00 300.09 82.37 1.00 - 29 5.46 300.09 82.37 1.00 - 30 2.34 300.09 73.70 1.00 - 31 13.26 300.10 47.71 0.25 - 32 13.26 299.94 82.30 0.53 - 33 1.17 300.00 52.00 1.00 - 34 1.17 300.00 47.66 1.00 - 35 0.00 300.09 82.37 1.01 - 36 0.78 300.09 82.37 1.00 - 26 -147.61 300.13 28.22 0.93 Tank - - - Link Results at 17:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 104.16 0.30 0.06 - 2 78.91 0.22 0.04 - 3 19.01 0.12 0.02 - 4 8.09 0.05 0.00 - 5 1.85 0.01 0.00 - 6 74.52 0.21 0.03 - 7 70.62 0.20 0.03 - 8 10.92 0.03 0.00 - 9 56.58 0.16 0.02 - 10 3.90 0.02 0.00 - 11 45.66 0.13 0.01 - 12 18.53 0.05 0.00 - 13 6.05 0.02 0.00 - 14 -26.14 0.07 0.00 - 15 -65.14 0.18 0.03 - 16 30.63 0.20 0.05 - 17 33.33 0.21 0.05 - 18 7.42 0.05 0.00 - 19 25.14 0.07 0.00 - 20 9.54 0.03 0.00 - 21 7.62 0.05 0.00 - 22 37.44 0.11 0.01 - 23 11.35 0.07 0.01 - 24 -1.13 0.01 0.00 - 25 11.27 0.07 0.01 - 26 -108.61 0.31 0.07 - 27 -100.03 0.28 0.06 - 28 -114.85 0.33 0.07 - 29 -147.61 0.42 0.12 - 30 28.08 0.08 0.01 - 31 14.82 0.09 0.01 - 32 8.58 0.05 0.00 - 34 1.34 0.01 0.00 - 35 2.34 0.01 0.00 - 36 1.17 0.01 0.00 - 37 -3.72 0.02 0.00 - 38 1.78 0.01 0.00 - 39 2.34 0.01 0.00 - 40 0.56 0.00 0.00 - 41 0.78 0.00 0.00 - - - Node Results at 18:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 299.38 108.06 0.15 - 2 2.96 299.38 86.39 0.13 - 3 5.18 299.38 103.72 0.13 - 4 2.96 299.38 103.72 0.13 - 5 2.96 299.38 86.39 0.13 - 6 1.85 299.38 75.56 0.13 - 7 1.48 299.39 60.40 0.13 - 8 3.33 299.39 82.06 0.53 - 9 5.18 299.39 51.73 0.13 - 10 1.85 299.39 73.40 1.00 - 11 12.87 299.39 49.57 0.13 - 12 5.92 299.41 38.74 0.13 - 13 0.74 299.42 38.75 0.14 - 14 0.74 299.43 43.08 0.15 - 15 0.74 299.44 47.42 0.15 - 16 7.40 299.41 64.74 0.14 - 17 7.40 299.41 51.74 0.29 - 18 7.40 299.41 86.40 1.00 - 19 1.85 299.41 64.74 0.24 - 20 7.03 299.43 56.08 0.24 - 21 5.92 299.43 64.75 1.00 - 22 3.70 299.43 43.08 1.00 - 23 2.96 299.49 30.11 0.93 - 24 4.07 299.45 47.43 0.68 - 25 2.22 299.51 30.12 0.93 - 27 2.96 299.51 73.45 0.32 - 28 0.00 299.51 82.11 1.00 - 29 2.59 299.51 82.11 1.00 - 30 1.11 299.51 73.45 1.00 - 31 6.29 299.51 47.45 0.24 - 32 6.29 299.41 82.07 0.71 - 33 0.56 299.43 51.75 1.00 - 34 0.56 299.43 47.41 1.00 - 35 0.00 299.51 82.11 1.03 - 36 0.37 299.51 82.11 1.00 - 26 -119.43 299.52 27.96 0.93 Tank - - - Link Results at 18:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -5.56 0.02 0.00 - 3 2.60 0.02 0.00 - 4 -2.58 0.02 0.00 - 5 -5.54 0.02 0.00 - 6 -14.06 0.04 0.00 - 7 -15.91 0.05 0.00 - 8 5.18 0.01 0.00 - 9 -22.57 0.06 0.00 - 10 1.85 0.01 0.00 - 11 -27.75 0.08 0.01 - 12 -40.62 0.12 0.01 - 13 -46.54 0.13 0.01 - 14 -58.31 0.17 0.02 - 15 -76.81 0.22 0.04 - 16 11.03 0.07 0.01 - 17 19.31 0.12 0.02 - 18 0.59 0.00 0.00 - 19 12.50 0.04 0.00 - 20 5.10 0.01 0.00 - 21 3.04 0.02 0.00 - 22 17.76 0.05 0.00 - 23 5.39 0.03 0.00 - 24 -0.53 0.00 0.00 - 25 5.34 0.03 0.00 - 26 -100.93 0.29 0.06 - 27 -96.86 0.27 0.05 - 28 -103.89 0.29 0.06 - 29 -119.43 0.34 0.08 - 30 13.32 0.04 0.00 - 31 7.03 0.04 0.00 - 32 4.07 0.03 0.00 - 34 0.64 0.00 0.00 - 35 1.11 0.01 0.00 - 36 0.56 0.00 0.00 - 37 -1.19 0.01 0.00 - 38 0.84 0.01 0.00 - 39 1.11 0.01 0.00 - 40 0.27 0.00 0.00 - 41 0.37 0.00 0.00 - - - Node Results at 19:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 298.60 107.72 0.15 - 2 5.36 298.60 86.05 0.13 - 3 9.38 298.60 103.39 0.13 - 4 5.36 298.60 103.39 0.13 - 5 5.36 298.60 86.05 0.13 - 6 3.35 298.61 75.22 0.13 - 7 2.68 298.62 60.07 0.13 - 8 6.03 298.62 81.73 0.59 - 9 9.38 298.63 51.40 0.13 - 10 3.35 298.62 73.06 0.98 - 11 23.30 298.64 49.24 0.13 - 12 10.72 298.70 38.43 0.14 - 13 1.34 298.73 38.45 0.15 - 14 1.34 298.75 42.79 0.93 - 15 1.34 298.79 47.14 0.93 - 16 13.40 298.70 64.43 0.14 - 17 13.40 298.70 51.43 0.31 - 18 13.40 298.69 86.09 1.00 - 19 3.35 298.69 64.43 0.24 - 20 12.73 298.75 55.79 0.24 - 21 10.72 298.74 64.45 1.00 - 22 6.70 298.74 42.78 1.00 - 23 5.36 298.93 29.87 0.93 - 24 7.37 298.83 47.15 0.93 - 25 4.02 298.99 29.89 0.93 - 27 5.36 298.98 73.22 0.21 - 28 0.00 298.98 81.89 1.00 - 29 4.69 298.98 81.89 1.00 - 30 2.01 298.98 73.22 1.00 - 31 11.39 298.99 47.22 0.20 - 32 11.39 298.69 81.76 0.88 - 33 1.00 298.74 51.45 1.00 - 34 1.00 298.74 47.12 1.00 - 35 0.00 298.98 81.89 1.03 - 36 0.67 298.98 81.89 1.00 - 26 -216.26 299.04 27.75 0.93 Tank - - - Link Results at 19:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -10.06 0.03 0.00 - 3 4.70 0.03 0.00 - 4 -4.68 0.03 0.00 - 5 -10.04 0.03 0.00 - 6 -25.46 0.07 0.00 - 7 -28.81 0.08 0.01 - 8 9.38 0.03 0.00 - 9 -40.87 0.12 0.01 - 10 3.35 0.02 0.00 - 11 -50.25 0.14 0.02 - 12 -73.55 0.21 0.03 - 13 -84.27 0.24 0.04 - 14 -105.59 0.30 0.06 - 15 -139.09 0.39 0.11 - 16 19.98 0.13 0.02 - 17 34.96 0.22 0.06 - 18 1.07 0.01 0.00 - 19 22.64 0.06 0.00 - 20 9.24 0.03 0.00 - 21 5.50 0.04 0.00 - 22 32.16 0.09 0.01 - 23 9.75 0.06 0.01 - 24 -0.97 0.01 0.00 - 25 9.68 0.06 0.01 - 26 -182.76 0.52 0.18 - 27 -175.39 0.50 0.16 - 28 -188.12 0.53 0.19 - 29 -216.26 0.61 0.24 - 30 24.12 0.07 0.00 - 31 12.73 0.08 0.01 - 32 7.37 0.05 0.00 - 34 1.15 0.01 0.00 - 35 2.01 0.01 0.00 - 36 1.00 0.01 0.00 - 37 -2.15 0.01 0.00 - 38 1.53 0.01 0.00 - 39 2.01 0.01 0.00 - 40 0.48 0.00 0.00 - 41 0.67 0.00 0.00 - - - Node Results at 20:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 296.75 106.92 0.15 - 2 10.08 296.75 85.25 0.13 - 3 17.64 296.75 102.58 0.13 - 4 10.08 296.75 102.59 0.13 - 5 10.08 296.76 85.25 0.13 - 6 6.30 296.77 74.43 0.13 - 7 5.04 296.82 59.29 0.13 - 8 11.34 296.82 80.95 0.69 - 9 17.64 296.84 50.63 0.13 - 10 6.30 296.82 72.28 1.00 - 11 43.82 296.88 48.48 0.14 - 12 20.16 297.08 37.73 0.91 - 13 2.52 297.16 37.77 0.93 - 14 2.52 297.24 42.13 0.93 - 15 2.52 297.34 46.51 0.93 - 16 25.20 297.06 63.72 0.14 - 17 25.20 297.06 50.72 0.15 - 18 25.20 297.05 85.38 0.89 - 19 6.30 297.05 63.72 0.24 - 20 23.94 297.21 55.12 0.17 - 21 20.16 297.19 63.78 1.00 - 22 12.60 297.19 42.11 1.00 - 23 10.08 297.82 29.39 0.93 - 24 13.86 297.48 46.57 0.93 - 25 7.56 298.00 29.46 0.93 - 27 10.08 297.98 72.78 0.24 - 28 0.00 297.97 81.45 1.00 - 29 8.82 297.97 81.45 0.44 - 30 3.78 297.97 72.78 1.00 - 31 21.42 297.99 46.79 0.93 - 32 21.42 297.05 81.05 0.88 - 33 1.89 297.19 50.78 1.00 - 34 1.89 297.19 46.45 1.00 - 35 0.00 297.97 81.45 1.00 - 36 1.26 297.97 81.45 1.00 - 26 -406.70 298.15 27.36 0.93 Tank - - - Link Results at 20:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -18.92 0.05 0.00 - 3 8.84 0.06 0.00 - 4 -8.80 0.06 0.00 - 5 -18.88 0.05 0.00 - 6 -47.88 0.14 0.01 - 7 -54.18 0.15 0.02 - 8 17.64 0.05 0.00 - 9 -76.86 0.22 0.04 - 10 6.30 0.04 0.00 - 11 -94.50 0.27 0.05 - 12 -138.32 0.39 0.11 - 13 -158.48 0.45 0.14 - 14 -198.57 0.56 0.21 - 15 -261.57 0.74 0.34 - 16 37.57 0.24 0.07 - 17 65.75 0.42 0.19 - 18 2.02 0.01 0.00 - 19 42.57 0.12 0.01 - 20 17.37 0.05 0.00 - 21 10.35 0.07 0.01 - 22 60.48 0.17 0.02 - 23 18.34 0.12 0.02 - 24 -1.82 0.01 0.00 - 25 18.20 0.12 0.02 - 26 -343.70 0.98 0.57 - 27 -329.84 0.94 0.53 - 28 -353.78 1.00 0.60 - 29 -406.70 1.15 0.78 - 30 45.36 0.13 0.01 - 31 23.94 0.15 0.03 - 32 13.86 0.09 0.01 - 34 2.17 0.01 0.00 - 35 3.78 0.02 0.00 - 36 1.89 0.01 0.00 - 37 -4.05 0.03 0.00 - 38 2.87 0.02 0.00 - 39 3.78 0.02 0.00 - 40 0.91 0.01 0.00 - 41 1.26 0.01 0.00 - - - Node Results at 21:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 294.41 105.90 0.15 - 2 12.48 294.41 84.24 0.13 - 3 21.84 294.41 101.57 0.13 - 4 12.48 294.41 101.57 0.13 - 5 12.48 294.42 84.24 0.13 - 6 7.80 294.44 73.42 0.13 - 7 6.24 294.52 58.29 0.13 - 8 14.04 294.52 79.95 0.96 - 9 21.84 294.54 49.63 0.13 - 10 7.80 294.51 71.28 1.04 - 11 54.26 294.59 47.49 0.14 - 12 24.96 294.89 36.78 0.93 - 13 3.12 295.01 36.84 0.93 - 14 3.12 295.14 41.22 0.93 - 15 3.12 295.29 45.62 0.93 - 16 31.20 294.86 62.77 0.14 - 17 31.20 294.86 49.77 0.91 - 18 31.20 294.85 84.43 0.31 - 19 7.80 294.85 62.76 0.19 - 20 29.64 295.10 54.21 0.15 - 21 24.96 295.06 62.86 0.95 - 22 15.60 295.06 41.19 0.97 - 23 12.48 295.99 28.59 0.93 - 24 17.16 295.48 45.71 0.93 - 25 9.36 296.26 28.71 0.93 - 27 12.48 296.23 72.03 0.93 - 28 0.00 296.22 80.69 1.00 - 29 10.92 296.22 80.69 0.21 - 30 4.68 296.22 72.02 1.00 - 31 26.52 296.25 46.04 0.93 - 32 26.52 294.85 80.09 0.87 - 33 2.34 295.06 49.86 1.00 - 34 2.34 295.06 45.52 1.00 - 35 0.00 296.22 80.69 0.99 - 36 1.56 296.22 80.69 1.00 - 26 -503.54 296.49 26.64 0.93 Tank - - - Link Results at 21:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -23.43 0.07 0.00 - 3 10.95 0.07 0.01 - 4 -10.89 0.07 0.01 - 5 -23.37 0.07 0.00 - 6 -59.28 0.17 0.02 - 7 -67.08 0.19 0.03 - 8 21.84 0.06 0.00 - 9 -95.16 0.27 0.05 - 10 7.80 0.05 0.00 - 11 -117.00 0.33 0.08 - 12 -171.26 0.49 0.16 - 13 -196.22 0.56 0.20 - 14 -245.85 0.70 0.31 - 15 -323.85 0.92 0.51 - 16 46.52 0.30 0.10 - 17 81.40 0.52 0.29 - 18 2.50 0.02 0.00 - 19 52.70 0.15 0.02 - 20 21.50 0.06 0.00 - 21 12.82 0.08 0.01 - 22 74.88 0.21 0.03 - 23 22.71 0.14 0.03 - 24 -2.25 0.01 0.00 - 25 22.53 0.14 0.03 - 26 -425.54 1.21 0.85 - 27 -408.38 1.16 0.78 - 28 -438.02 1.24 0.89 - 29 -503.54 1.43 1.16 - 30 56.16 0.16 0.02 - 31 29.64 0.19 0.04 - 32 17.16 0.11 0.02 - 34 2.69 0.02 0.00 - 35 4.68 0.03 0.00 - 36 2.34 0.01 0.00 - 37 -5.02 0.03 0.00 - 38 3.55 0.02 0.00 - 39 4.68 0.03 0.00 - 40 1.13 0.01 0.00 - 41 1.56 0.01 0.00 - - - Node Results at 22:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 293.18 105.37 0.15 - 2 9.52 293.18 83.70 0.13 - 3 16.66 293.17 101.03 0.13 - 4 9.52 293.18 101.04 0.13 - 5 9.52 293.18 83.70 0.13 - 6 5.95 293.19 72.88 0.13 - 7 4.76 293.24 57.73 0.14 - 8 10.71 293.24 79.40 0.83 - 9 16.66 293.25 49.07 0.93 - 10 5.95 293.24 70.73 0.96 - 11 41.39 293.29 46.92 0.93 - 12 19.04 293.47 36.17 0.93 - 13 2.38 293.54 36.20 0.93 - 14 2.38 293.61 40.56 0.93 - 15 2.38 293.71 44.94 0.93 - 16 23.80 293.45 62.16 0.93 - 17 23.80 293.45 49.16 0.91 - 18 23.80 293.44 83.82 0.91 - 19 5.95 293.44 62.15 0.18 - 20 22.61 293.59 53.55 0.93 - 21 19.04 293.57 62.21 0.31 - 22 11.90 293.57 40.54 0.24 - 23 9.52 294.13 27.79 0.93 - 24 13.09 293.83 44.99 0.93 - 25 7.14 294.30 27.86 0.93 - 27 9.52 294.28 71.18 0.93 - 28 0.00 294.27 79.85 1.00 - 29 8.33 294.27 79.85 0.93 - 30 3.57 294.27 71.18 1.00 - 31 20.23 294.29 45.19 0.93 - 32 20.23 293.44 79.48 0.37 - 33 1.78 293.57 49.21 1.00 - 34 1.78 293.57 44.88 1.00 - 35 0.00 294.27 79.85 1.00 - 36 1.19 294.27 79.85 1.00 - 26 -384.11 294.44 25.75 0.93 Tank - - - Link Results at 22:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 0.00 0.00 0.00 - 2 -17.87 0.05 0.00 - 3 8.35 0.05 0.00 - 4 -8.31 0.05 0.00 - 5 -17.83 0.05 0.00 - 6 -45.22 0.13 0.01 - 7 -51.17 0.15 0.02 - 8 16.66 0.05 0.00 - 9 -72.59 0.21 0.03 - 10 5.95 0.04 0.00 - 11 -89.25 0.25 0.05 - 12 -130.64 0.37 0.10 - 13 -149.68 0.42 0.12 - 14 -187.54 0.53 0.19 - 15 -247.04 0.70 0.31 - 16 35.48 0.23 0.06 - 17 62.10 0.40 0.17 - 18 1.91 0.01 0.00 - 19 40.20 0.11 0.01 - 20 16.40 0.05 0.00 - 21 9.78 0.06 0.01 - 22 57.12 0.16 0.02 - 23 17.32 0.11 0.02 - 24 -1.72 0.01 0.00 - 25 17.19 0.11 0.02 - 26 -324.61 0.92 0.51 - 27 -311.52 0.88 0.48 - 28 -334.13 0.95 0.54 - 29 -384.11 1.09 0.70 - 30 42.84 0.12 0.01 - 31 22.61 0.14 0.03 - 32 13.09 0.08 0.01 - 34 2.05 0.01 0.00 - 35 3.57 0.02 0.00 - 36 1.78 0.01 0.00 - 37 -3.83 0.02 0.00 - 38 2.71 0.02 0.00 - 39 3.57 0.02 0.00 - 40 0.86 0.01 0.00 - 41 1.19 0.01 0.00 - - - Node Results at 23:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 291.47 104.63 0.15 - 2 10.08 291.47 82.96 0.13 - 3 17.64 291.46 100.29 0.13 - 4 10.08 291.47 100.29 0.13 - 5 10.08 291.47 82.96 0.13 - 6 6.30 291.49 72.14 0.13 - 7 5.04 291.54 57.00 0.93 - 8 11.34 291.54 78.66 0.21 - 9 17.64 291.55 48.34 0.93 - 10 6.30 291.53 69.99 0.68 - 11 43.82 291.59 46.18 0.93 - 12 20.16 291.79 35.44 0.93 - 13 2.52 291.87 35.47 0.93 - 14 2.52 291.95 39.84 0.93 - 15 2.52 292.06 44.22 0.93 - 16 25.20 291.77 61.43 0.93 - 17 25.20 291.77 48.43 0.91 - 18 25.20 291.76 83.09 0.91 - 19 6.30 291.76 61.42 0.14 - 20 23.94 291.93 52.83 0.93 - 21 20.16 291.90 61.49 0.22 - 22 12.60 291.90 39.82 0.15 - 23 10.08 292.53 27.09 0.93 - 24 13.86 292.19 44.28 0.93 - 25 7.56 292.71 27.17 0.93 - 27 10.08 292.69 70.49 0.93 - 28 0.00 292.69 79.16 1.00 - 29 8.82 292.69 79.16 0.93 - 30 3.78 292.68 70.49 1.00 - 31 21.42 292.70 44.50 0.93 - 32 21.42 291.76 78.76 0.29 - 33 1.89 291.90 48.49 0.99 - 34 1.89 291.90 44.15 1.00 - 35 0.00 292.69 79.16 1.00 - 36 1.26 292.69 79.16 1.00 - 26 -406.70 292.87 25.07 0.93 Tank - - - Link Results at 23:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -18.92 0.05 0.00 - 3 8.84 0.06 0.00 - 4 -8.80 0.06 0.00 - 5 -18.88 0.05 0.00 - 6 -47.88 0.14 0.01 - 7 -54.18 0.15 0.02 - 8 17.64 0.05 0.00 - 9 -76.86 0.22 0.04 - 10 6.30 0.04 0.00 - 11 -94.50 0.27 0.05 - 12 -138.32 0.39 0.11 - 13 -158.48 0.45 0.14 - 14 -198.57 0.56 0.21 - 15 -261.57 0.74 0.34 - 16 37.57 0.24 0.07 - 17 65.75 0.42 0.19 - 18 2.02 0.01 0.00 - 19 42.57 0.12 0.01 - 20 17.37 0.05 0.00 - 21 10.35 0.07 0.01 - 22 60.48 0.17 0.02 - 23 18.34 0.12 0.02 - 24 -1.82 0.01 0.00 - 25 18.20 0.12 0.02 - 26 -343.70 0.98 0.57 - 27 -329.84 0.94 0.53 - 28 -353.78 1.00 0.60 - 29 -406.70 1.15 0.78 - 30 45.36 0.13 0.01 - 31 23.94 0.15 0.03 - 32 13.86 0.09 0.01 - 34 2.17 0.01 0.00 - 35 3.78 0.02 0.00 - 36 1.89 0.01 0.00 - 37 -4.05 0.03 0.00 - 38 2.87 0.02 0.00 - 39 3.78 0.02 0.00 - 40 0.91 0.01 0.00 - 41 1.26 0.01 0.00 - - - Node Results at 24:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -381.92 297.99 107.45 0.15 - 2 4.80 296.33 85.07 0.13 - 3 8.40 296.11 102.30 0.13 - 4 4.80 295.95 102.24 0.13 - 5 4.80 295.94 84.90 0.13 - 6 3.00 295.19 73.75 0.13 - 7 2.40 293.55 57.87 0.93 - 8 5.40 293.55 79.53 0.19 - 9 8.40 293.32 49.10 0.93 - 10 3.00 293.55 70.87 0.53 - 11 20.87 292.94 46.77 0.93 - 12 9.60 292.01 35.53 0.93 - 13 1.20 291.73 35.41 0.93 - 14 1.20 291.60 39.69 0.93 - 15 1.20 291.53 43.99 0.93 - 16 12.00 291.55 61.33 0.93 - 17 12.00 291.53 48.32 0.91 - 18 12.00 291.53 82.99 0.91 - 19 3.00 291.53 61.32 0.14 - 20 11.40 291.60 52.69 0.93 - 21 9.60 291.59 61.35 0.24 - 22 6.00 291.59 39.69 0.17 - 23 4.80 291.31 26.57 0.93 - 24 6.60 291.46 43.96 0.93 - 25 3.60 291.24 26.54 0.93 - 27 4.80 291.24 69.86 0.93 - 28 0.00 291.24 78.53 0.99 - 29 4.20 291.24 78.53 0.93 - 30 1.80 291.24 69.86 1.00 - 31 10.20 291.24 43.87 0.93 - 32 10.20 291.53 78.65 0.78 - 33 0.90 291.59 48.35 1.03 - 34 0.90 291.59 44.02 1.00 - 35 0.00 291.24 78.53 1.00 - 36 0.60 291.24 78.53 1.00 - 26 188.25 291.20 24.35 0.93 Tank - - - Link Results at 24:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 381.92 1.08 0.69 - 2 315.71 0.90 0.49 - 3 61.41 0.39 0.17 - 4 53.01 0.34 0.13 - 5 48.21 0.14 0.02 - 6 359.12 1.02 0.62 - 7 356.12 1.01 0.61 - 8 8.40 0.02 0.00 - 9 345.32 0.98 0.58 - 10 3.00 0.02 0.00 - 11 336.92 0.96 0.55 - 12 316.05 0.90 0.49 - 13 306.45 0.87 0.46 - 14 253.33 0.72 0.32 - 15 223.33 0.63 0.26 - 16 51.92 0.33 0.12 - 17 -2.72 0.02 0.00 - 18 25.35 0.16 0.03 - 19 10.63 0.03 0.00 - 20 -1.37 0.00 0.00 - 21 14.57 0.09 0.01 - 22 28.80 0.08 0.01 - 23 8.73 0.06 0.00 - 24 -0.87 0.01 0.00 - 25 8.67 0.06 0.00 - 26 218.25 0.62 0.25 - 27 224.85 0.64 0.26 - 28 213.45 0.61 0.24 - 29 188.25 0.53 0.19 - 30 21.60 0.06 0.00 - 31 11.40 0.07 0.01 - 32 6.60 0.04 0.00 - 34 1.03 0.01 0.00 - 35 1.80 0.01 0.00 - 36 0.90 0.01 0.00 - 37 -11.57 0.07 0.01 - 38 1.37 0.01 0.00 - 39 1.80 0.01 0.00 - 40 0.43 0.00 0.00 - 41 0.60 0.00 0.00 - - - Node Results at 25:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 309.19 112.31 0.15 - 2 8.80 304.88 88.77 0.15 - 3 15.40 304.30 105.86 0.13 - 4 8.80 303.91 105.69 0.13 - 5 8.80 303.87 88.34 0.15 - 6 5.50 301.97 76.68 0.15 - 7 4.40 297.76 59.69 0.13 - 8 9.90 297.76 81.36 0.13 - 9 15.40 297.17 50.77 0.13 - 10 5.50 297.76 72.69 0.53 - 11 38.26 296.20 48.18 0.13 - 12 17.60 293.89 36.35 0.93 - 13 2.20 293.20 36.05 0.93 - 14 2.20 292.88 40.24 0.93 - 15 2.20 292.69 44.50 0.93 - 16 22.00 292.74 61.85 0.93 - 17 22.00 292.69 48.83 0.93 - 18 22.00 292.69 83.49 0.91 - 19 5.50 292.70 61.83 0.14 - 20 20.90 292.86 53.23 0.93 - 21 17.60 292.84 61.89 0.94 - 22 11.00 292.84 40.23 0.93 - 23 8.80 292.21 26.96 0.93 - 24 12.10 292.55 44.43 0.93 - 25 6.60 292.05 26.89 0.93 - 27 8.80 292.04 70.21 0.93 - 28 0.00 292.03 78.88 1.02 - 29 7.70 292.03 78.88 0.93 - 30 3.30 292.03 70.21 1.00 - 31 18.70 292.05 44.22 0.93 - 32 18.70 292.69 79.16 0.19 - 33 1.65 292.84 48.89 1.04 - 34 1.65 292.84 44.56 1.00 - 35 0.00 292.03 78.88 1.00 - 36 1.10 292.03 78.88 1.00 - 26 283.79 291.97 24.69 0.93 Tank - - - Link Results at 25:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 526.87 1.49 1.26 - 3 103.17 0.66 0.44 - 4 87.77 0.56 0.33 - 5 78.97 0.22 0.04 - 6 597.05 1.69 1.59 - 7 591.55 1.68 1.56 - 8 15.40 0.04 0.00 - 9 571.75 1.62 1.46 - 10 5.50 0.04 0.00 - 11 556.35 1.58 1.39 - 12 518.09 1.47 1.22 - 13 500.49 1.42 1.14 - 14 413.33 1.17 0.80 - 15 358.33 1.02 0.62 - 16 84.96 0.54 0.31 - 17 5.24 0.03 0.00 - 18 39.67 0.25 0.08 - 19 22.91 0.06 0.00 - 20 0.91 0.00 0.00 - 21 23.29 0.15 0.03 - 22 52.80 0.15 0.02 - 23 16.01 0.10 0.01 - 24 -1.59 0.01 0.00 - 25 15.89 0.10 0.01 - 26 338.79 0.96 0.56 - 27 350.89 1.00 0.59 - 28 329.99 0.94 0.53 - 29 283.79 0.81 0.40 - 30 39.60 0.11 0.01 - 31 20.90 0.13 0.02 - 32 12.10 0.08 0.01 - 34 1.89 0.01 0.00 - 35 3.30 0.02 0.00 - 36 1.65 0.01 0.00 - 37 -17.79 0.11 0.02 - 38 2.51 0.02 0.00 - 39 3.30 0.02 0.00 - 40 0.79 0.01 0.00 - 41 1.10 0.01 0.00 - - - Node Results at 26:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 310.62 112.93 0.12 - 2 8.24 306.31 89.39 0.12 - 3 14.42 305.74 106.48 0.13 - 4 8.24 305.34 106.30 0.15 - 5 8.24 305.30 88.96 0.12 - 6 5.15 303.38 77.29 0.12 - 7 4.12 299.13 60.29 0.15 - 8 9.27 299.13 81.95 0.13 - 9 14.42 298.54 51.36 0.15 - 10 5.15 299.13 73.28 0.53 - 11 35.82 297.55 48.77 0.15 - 12 16.48 295.17 36.90 0.13 - 13 2.06 294.46 36.60 0.13 - 14 2.06 294.13 40.79 0.13 - 15 2.06 293.93 45.03 0.13 - 16 20.60 293.98 62.39 0.64 - 17 20.60 293.93 49.37 0.93 - 18 20.60 293.93 84.03 0.91 - 19 5.15 293.94 62.37 0.93 - 20 19.57 294.11 53.78 0.93 - 21 16.48 294.10 62.44 0.94 - 22 10.30 294.10 40.77 0.93 - 23 8.24 293.40 27.47 0.13 - 24 11.33 293.77 44.96 0.13 - 25 6.18 293.23 27.40 0.14 - 27 8.24 293.21 70.72 0.93 - 28 0.00 293.21 79.38 1.04 - 29 7.21 293.21 79.38 0.93 - 30 3.09 293.21 70.72 1.00 - 31 17.51 293.22 44.73 0.93 - 32 17.51 293.93 79.70 0.14 - 33 1.54 294.09 49.44 1.00 - 34 1.54 294.09 45.10 1.00 - 35 0.00 293.21 79.38 1.00 - 36 1.03 293.21 79.38 1.00 - 26 306.38 293.13 25.19 0.93 Tank - - - Link Results at 26:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 527.76 1.50 1.26 - 3 102.85 0.66 0.44 - 4 88.43 0.56 0.33 - 5 80.19 0.23 0.04 - 6 599.71 1.70 1.60 - 7 594.56 1.69 1.57 - 8 14.42 0.04 0.00 - 9 576.02 1.63 1.48 - 10 5.15 0.03 0.00 - 11 561.60 1.59 1.42 - 12 525.77 1.49 1.25 - 13 509.29 1.44 1.18 - 14 420.87 1.19 0.83 - 15 369.37 1.05 0.65 - 16 86.36 0.55 0.32 - 17 -1.90 0.01 0.00 - 18 41.68 0.27 0.08 - 19 19.18 0.05 0.00 - 20 -1.42 0.00 0.00 - 21 24.08 0.15 0.03 - 22 49.44 0.14 0.02 - 23 14.99 0.10 0.01 - 24 -1.49 0.01 0.00 - 25 14.88 0.09 0.01 - 26 357.88 1.02 0.61 - 27 369.21 1.05 0.65 - 28 349.64 0.99 0.59 - 29 306.38 0.87 0.46 - 30 37.08 0.11 0.01 - 31 19.57 0.12 0.02 - 32 11.33 0.07 0.01 - 34 1.77 0.01 0.00 - 35 3.09 0.02 0.00 - 36 1.54 0.01 0.00 - 37 -18.93 0.12 0.02 - 38 2.35 0.01 0.00 - 39 3.09 0.02 0.00 - 40 0.74 0.00 0.00 - 41 1.03 0.01 0.00 - - - Node Results at 27:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 313.11 114.01 0.10 - 2 5.84 308.80 90.47 0.10 - 3 10.22 308.24 107.56 0.10 - 4 5.84 307.82 107.38 0.12 - 5 5.84 307.78 90.03 0.10 - 6 3.65 305.79 78.34 0.10 - 7 2.92 301.37 61.26 0.12 - 8 6.57 301.37 82.92 0.13 - 9 10.22 300.75 52.32 0.12 - 10 3.65 301.37 74.26 0.59 - 11 25.39 299.68 49.69 0.12 - 12 11.68 297.02 37.70 0.12 - 13 1.46 296.21 37.35 0.12 - 14 1.46 295.82 41.52 0.13 - 15 1.46 295.57 45.74 0.14 - 16 14.60 295.70 63.13 0.14 - 17 14.60 295.64 50.11 0.13 - 18 14.60 295.64 84.77 0.91 - 19 3.65 295.65 63.11 0.93 - 20 13.87 295.81 54.51 0.93 - 21 11.68 295.80 63.18 0.94 - 22 7.30 295.80 41.51 0.93 - 23 5.84 294.80 28.08 0.15 - 24 8.03 295.34 45.64 0.15 - 25 4.38 294.54 27.96 0.15 - 27 5.84 294.53 71.29 0.93 - 28 0.00 294.53 79.96 0.99 - 29 5.11 294.53 79.96 0.93 - 30 2.19 294.53 71.29 1.00 - 31 12.41 294.53 45.29 0.93 - 32 12.41 295.64 80.44 0.93 - 33 1.09 295.80 50.18 0.70 - 34 1.09 295.80 45.84 1.00 - 35 0.00 294.53 79.96 1.00 - 36 0.73 294.53 79.96 1.00 - 26 403.22 294.38 25.73 0.91 Tank - - - Link Results at 27:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 531.59 1.51 1.28 - 3 101.42 0.65 0.43 - 4 91.20 0.58 0.35 - 5 85.36 0.24 0.04 - 6 611.11 1.73 1.66 - 7 607.46 1.72 1.64 - 8 10.22 0.03 0.00 - 9 594.32 1.69 1.57 - 10 3.65 0.02 0.00 - 11 584.10 1.66 1.52 - 12 558.71 1.58 1.40 - 13 547.03 1.55 1.35 - 14 456.50 1.29 0.96 - 15 420.00 1.19 0.83 - 16 89.07 0.57 0.34 - 17 -29.21 0.19 0.04 - 18 47.89 0.31 0.11 - 19 4.08 0.01 0.00 - 20 -10.52 0.03 0.00 - 21 26.58 0.17 0.04 - 22 35.04 0.10 0.01 - 23 10.62 0.07 0.01 - 24 -1.06 0.01 0.00 - 25 10.55 0.07 0.01 - 26 439.72 1.25 0.90 - 27 447.75 1.27 0.93 - 28 433.88 1.23 0.88 - 29 403.22 1.14 0.77 - 30 26.28 0.07 0.00 - 31 13.87 0.09 0.01 - 32 8.03 0.05 0.00 - 34 1.26 0.01 0.00 - 35 2.19 0.01 0.00 - 36 1.09 0.01 0.00 - 37 -22.93 0.15 0.03 - 38 1.66 0.01 0.00 - 39 2.19 0.01 0.00 - 40 0.53 0.00 0.00 - 41 0.73 0.00 0.00 - - - Node Results at 28:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 314.12 114.45 0.08 - 2 7.04 309.81 90.91 0.08 - 3 12.32 309.25 108.00 0.08 - 4 7.04 308.84 107.82 0.10 - 5 7.04 308.80 90.47 0.09 - 6 4.40 306.84 78.79 0.09 - 7 3.52 302.51 61.75 0.11 - 8 7.92 302.51 83.41 0.13 - 9 12.32 301.90 52.82 0.11 - 10 4.40 302.51 74.75 0.69 - 11 30.61 300.87 50.21 0.11 - 12 14.08 298.35 38.28 0.11 - 13 1.76 297.59 37.95 0.11 - 14 1.76 297.24 42.13 0.11 - 15 1.76 297.02 46.37 0.16 - 16 17.60 297.10 63.74 0.12 - 17 17.60 297.04 50.71 0.15 - 18 17.60 297.04 85.38 0.91 - 19 4.40 297.05 63.72 0.93 - 20 16.72 297.22 55.13 0.13 - 21 14.08 297.21 63.79 0.94 - 22 8.80 297.21 42.12 0.93 - 23 7.04 296.37 28.76 0.17 - 24 9.68 296.82 46.29 0.17 - 25 5.28 296.15 28.66 0.17 - 27 7.04 296.14 71.99 0.93 - 28 0.00 296.14 80.65 0.99 - 29 6.16 296.14 80.65 0.93 - 30 2.64 296.14 71.99 1.00 - 31 14.96 296.15 45.99 0.14 - 32 14.96 297.04 81.04 0.93 - 33 1.32 297.21 50.79 0.70 - 34 1.32 297.21 46.46 1.00 - 35 0.00 296.14 80.65 1.00 - 36 0.88 296.14 80.65 1.00 - 26 354.80 296.03 26.45 0.89 Tank - - - Link Results at 28:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 529.67 1.50 1.27 - 3 102.14 0.65 0.43 - 4 89.82 0.57 0.34 - 5 82.78 0.23 0.04 - 6 605.41 1.72 1.63 - 7 601.01 1.70 1.60 - 8 12.32 0.03 0.00 - 9 585.17 1.66 1.53 - 10 4.40 0.03 0.00 - 11 572.85 1.63 1.47 - 12 542.24 1.54 1.33 - 13 528.16 1.50 1.26 - 14 438.01 1.24 0.89 - 15 394.01 1.12 0.73 - 16 88.39 0.56 0.33 - 17 -16.23 0.10 0.01 - 18 45.26 0.29 0.10 - 19 11.44 0.03 0.00 - 20 -6.16 0.02 0.00 - 21 25.52 0.16 0.03 - 22 42.24 0.12 0.01 - 23 12.81 0.08 0.01 - 24 -1.27 0.01 0.00 - 25 12.71 0.08 0.01 - 26 398.80 1.13 0.75 - 27 408.48 1.16 0.78 - 28 391.76 1.11 0.73 - 29 354.80 1.01 0.60 - 30 31.68 0.09 0.01 - 31 16.72 0.11 0.02 - 32 9.68 0.06 0.01 - 34 1.52 0.01 0.00 - 35 2.64 0.02 0.00 - 36 1.32 0.01 0.00 - 37 -21.12 0.13 0.02 - 38 2.00 0.01 0.00 - 39 2.64 0.02 0.00 - 40 0.64 0.00 0.00 - 41 0.88 0.01 0.00 - - - Node Results at 29:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -624.96 314.07 114.42 0.11 - 2 8.48 309.93 90.96 0.11 - 3 14.84 309.38 108.06 0.10 - 4 8.48 309.00 107.89 0.08 - 5 8.48 308.96 90.54 0.11 - 6 5.30 307.13 78.92 0.11 - 7 4.24 303.08 62.00 0.09 - 8 9.54 303.08 83.66 0.13 - 9 14.84 302.52 53.09 0.09 - 10 5.30 303.08 75.00 0.81 - 11 36.87 301.58 50.52 0.09 - 12 16.96 299.34 38.71 0.09 - 13 2.12 298.68 38.43 0.09 - 14 2.12 298.37 42.62 0.09 - 15 2.12 298.19 46.88 0.13 - 16 21.20 298.23 64.23 0.11 - 17 21.20 298.19 51.21 0.12 - 18 21.20 298.19 85.87 0.91 - 19 5.30 298.19 64.21 0.13 - 20 20.14 298.35 55.61 0.14 - 21 16.96 298.33 64.27 0.94 - 22 10.60 298.33 42.61 0.93 - 23 8.48 297.72 29.34 0.14 - 24 11.66 298.04 46.82 0.14 - 25 6.36 297.56 29.27 0.14 - 27 8.48 297.55 72.60 0.14 - 28 0.00 297.54 81.26 0.96 - 29 7.42 297.54 81.26 0.93 - 30 3.18 297.54 72.60 1.00 - 31 18.02 297.55 46.60 0.14 - 32 18.02 298.19 81.54 0.93 - 33 1.59 298.33 51.27 1.00 - 34 1.59 298.33 46.94 1.00 - 35 0.00 297.54 81.26 0.57 - 36 1.06 297.54 81.26 1.00 - 26 282.81 297.48 27.07 0.87 Tank - - - Link Results at 29:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 624.96 1.77 1.73 - 2 515.62 1.46 1.21 - 3 100.86 0.64 0.42 - 4 86.02 0.55 0.32 - 5 77.54 0.22 0.04 - 6 584.68 1.66 1.52 - 7 579.38 1.64 1.50 - 8 14.84 0.04 0.00 - 9 560.30 1.59 1.41 - 10 5.30 0.03 0.00 - 11 545.46 1.55 1.34 - 12 508.59 1.44 1.18 - 13 491.63 1.39 1.11 - 14 406.12 1.15 0.78 - 15 353.12 1.00 0.60 - 16 83.39 0.53 0.30 - 17 3.53 0.02 0.00 - 18 39.24 0.25 0.07 - 19 21.57 0.06 0.00 - 20 0.37 0.00 0.00 - 21 22.95 0.15 0.03 - 22 50.88 0.14 0.02 - 23 15.43 0.10 0.01 - 24 -1.53 0.01 0.00 - 25 15.31 0.10 0.01 - 26 335.81 0.95 0.55 - 27 347.47 0.99 0.58 - 28 327.33 0.93 0.52 - 29 282.81 0.80 0.40 - 30 38.16 0.11 0.01 - 31 20.14 0.13 0.02 - 32 11.66 0.07 0.01 - 34 1.83 0.01 0.00 - 35 3.18 0.02 0.00 - 36 1.59 0.01 0.00 - 37 -17.65 0.11 0.02 - 38 2.41 0.02 0.00 - 39 3.18 0.02 0.00 - 40 0.77 0.00 0.00 - 41 1.06 0.01 0.00 - - - Node Results at 30:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -624.96 315.49 115.04 0.09 - 2 7.92 311.35 91.58 0.09 - 3 13.86 310.81 108.67 0.10 - 4 7.92 310.42 108.51 0.11 - 5 7.92 310.38 91.16 0.09 - 6 4.95 308.54 79.53 0.09 - 7 3.96 304.45 62.59 0.11 - 8 8.91 304.45 84.26 0.13 - 9 13.86 303.88 53.68 0.11 - 10 4.95 304.45 75.59 1.00 - 11 34.43 302.92 51.10 0.11 - 12 15.84 300.62 39.27 0.11 - 13 1.98 299.94 38.97 0.11 - 14 1.98 299.62 43.16 0.10 - 15 1.98 299.42 47.41 0.09 - 16 19.80 299.47 64.77 0.09 - 17 19.80 299.43 51.75 0.11 - 18 19.80 299.42 86.41 0.84 - 19 4.95 299.43 64.75 0.14 - 20 18.81 299.60 56.16 0.12 - 21 15.84 299.58 64.81 0.94 - 22 9.90 299.58 43.15 0.93 - 23 7.92 298.90 29.86 0.09 - 24 10.89 299.26 47.34 0.09 - 25 5.94 298.73 29.78 0.09 - 27 7.92 298.72 73.10 0.14 - 28 0.00 298.71 81.77 1.00 - 29 6.93 298.71 81.77 0.92 - 30 2.97 298.71 73.10 1.00 - 31 16.83 298.72 47.11 0.16 - 32 16.83 299.42 82.08 0.15 - 33 1.49 299.58 51.82 1.00 - 34 1.49 299.58 47.48 1.00 - 35 0.00 298.71 81.77 0.40 - 36 0.99 298.71 81.77 1.00 - 26 305.41 298.64 27.57 0.86 Tank - - - Link Results at 30:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 624.96 1.77 1.73 - 2 516.51 1.47 1.21 - 3 100.53 0.64 0.42 - 4 86.67 0.55 0.32 - 5 78.75 0.22 0.04 - 6 587.34 1.67 1.54 - 7 582.39 1.65 1.51 - 8 13.86 0.04 0.00 - 9 564.57 1.60 1.43 - 10 4.95 0.03 0.00 - 11 550.71 1.56 1.36 - 12 516.28 1.46 1.21 - 13 500.44 1.42 1.14 - 14 413.64 1.17 0.80 - 15 364.14 1.03 0.63 - 16 84.82 0.54 0.31 - 17 -3.64 0.02 0.00 - 18 41.26 0.26 0.08 - 19 17.82 0.05 0.00 - 20 -1.98 0.01 0.00 - 21 23.76 0.15 0.03 - 22 47.52 0.13 0.01 - 23 14.41 0.09 0.01 - 24 -1.43 0.01 0.00 - 25 14.30 0.09 0.01 - 26 354.91 1.01 0.60 - 27 365.80 1.04 0.64 - 28 346.99 0.98 0.58 - 29 305.41 0.87 0.46 - 30 35.64 0.10 0.01 - 31 18.81 0.12 0.02 - 32 10.89 0.07 0.01 - 34 1.70 0.01 0.00 - 35 2.97 0.02 0.00 - 36 1.49 0.01 0.00 - 37 -18.81 0.12 0.02 - 38 2.26 0.01 0.00 - 39 2.97 0.02 0.00 - 40 0.71 0.00 0.00 - 41 0.99 0.01 0.00 - - - Node Results at 31:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -312.48 302.62 109.46 0.09 - 2 13.76 301.47 87.30 0.09 - 3 24.08 301.29 104.55 0.09 - 4 13.76 301.23 104.53 0.09 - 5 13.76 301.23 87.19 0.09 - 6 8.60 300.86 76.20 0.09 - 7 6.88 300.08 60.69 0.09 - 8 15.48 300.07 82.36 0.81 - 9 24.08 299.99 51.99 0.09 - 10 8.60 300.07 73.69 0.57 - 11 59.82 299.86 49.77 0.09 - 12 27.52 299.70 38.87 0.09 - 13 3.44 299.67 38.85 0.10 - 14 3.44 299.66 43.18 0.10 - 15 3.44 299.67 47.52 0.11 - 16 34.40 299.35 64.71 0.11 - 17 34.40 299.34 51.71 0.09 - 18 34.40 299.32 86.37 0.93 - 19 8.60 299.32 64.70 0.12 - 20 32.68 299.62 56.16 0.11 - 21 27.52 299.58 64.81 0.94 - 22 17.20 299.58 43.15 0.93 - 23 13.76 299.78 30.23 0.11 - 24 18.92 299.70 47.53 0.10 - 25 10.32 299.82 30.25 0.11 - 27 13.76 299.79 73.57 0.14 - 28 0.00 299.78 82.23 1.00 - 29 12.04 299.78 82.23 0.14 - 30 5.16 299.78 73.57 0.99 - 31 29.24 299.81 47.58 0.10 - 32 29.24 299.32 82.03 0.14 - 33 2.58 299.58 51.81 1.00 - 34 2.58 299.58 47.48 1.00 - 35 0.00 299.78 82.23 0.41 - 36 1.72 299.78 82.23 1.00 - 26 -242.70 299.88 28.11 0.84 Tank - - - Link Results at 31:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 312.48 0.89 0.48 - 2 243.49 0.69 0.30 - 3 55.23 0.35 0.14 - 4 31.15 0.20 0.05 - 5 17.39 0.05 0.00 - 6 247.12 0.70 0.31 - 7 238.52 0.68 0.29 - 8 24.08 0.07 0.00 - 9 207.56 0.59 0.22 - 10 8.60 0.05 0.00 - 11 183.48 0.52 0.18 - 12 123.66 0.35 0.09 - 13 96.14 0.27 0.05 - 14 23.12 0.07 0.00 - 15 -62.88 0.18 0.02 - 16 69.58 0.44 0.21 - 17 71.46 0.46 0.22 - 18 17.92 0.11 0.02 - 19 54.98 0.16 0.02 - 20 20.58 0.06 0.00 - 21 17.26 0.11 0.02 - 22 82.56 0.23 0.04 - 23 25.03 0.16 0.03 - 24 -2.49 0.02 0.00 - 25 24.85 0.16 0.03 - 26 -156.70 0.44 0.13 - 27 -137.78 0.39 0.10 - 28 -170.46 0.48 0.16 - 29 -242.70 0.69 0.30 - 30 61.92 0.18 0.02 - 31 32.68 0.21 0.05 - 32 18.92 0.12 0.02 - 34 2.96 0.02 0.00 - 35 5.16 0.03 0.00 - 36 2.58 0.02 0.00 - 37 -8.66 0.06 0.00 - 38 3.92 0.03 0.00 - 39 5.16 0.03 0.00 - 40 1.24 0.01 0.00 - 41 1.72 0.01 0.00 - - - Node Results at 32:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 297.77 107.36 0.08 - 2 8.96 297.77 85.69 0.08 - 3 15.68 297.76 103.02 0.09 - 4 8.96 297.77 103.02 0.09 - 5 8.96 297.77 85.69 0.09 - 6 5.60 297.78 74.87 0.09 - 7 4.48 297.82 59.72 0.09 - 8 10.08 297.82 81.38 0.93 - 9 15.68 297.84 51.06 0.09 - 10 5.60 297.82 72.72 0.22 - 11 38.95 297.86 48.90 0.09 - 12 17.92 298.03 38.14 0.09 - 13 2.24 298.09 38.17 0.09 - 14 2.24 298.16 42.53 0.10 - 15 2.24 298.24 46.90 0.84 - 16 22.40 298.01 64.13 0.09 - 17 22.40 298.01 51.13 0.11 - 18 22.40 298.00 85.79 0.10 - 19 5.60 298.00 64.13 0.11 - 20 21.28 298.14 55.52 0.10 - 21 17.92 298.12 64.18 0.21 - 22 11.20 298.12 42.52 0.13 - 23 8.96 298.62 29.73 0.84 - 24 12.32 298.35 46.95 0.84 - 25 6.72 298.77 29.80 0.84 - 27 8.96 298.75 73.12 0.09 - 28 0.00 298.75 81.78 1.00 - 29 7.84 298.75 81.78 0.14 - 30 3.36 298.75 73.12 1.03 - 31 19.04 298.76 47.13 0.11 - 32 19.04 298.00 81.46 0.28 - 33 1.68 298.12 51.18 1.00 - 34 1.68 298.12 46.85 1.00 - 35 0.00 298.75 81.78 0.95 - 36 1.12 298.75 81.78 1.00 - 26 -361.51 298.89 27.68 0.84 Tank - - - Link Results at 32:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -16.82 0.05 0.00 - 3 7.86 0.05 0.00 - 4 -7.82 0.05 0.00 - 5 -16.78 0.05 0.00 - 6 -42.56 0.12 0.01 - 7 -48.16 0.14 0.01 - 8 15.68 0.04 0.00 - 9 -68.32 0.19 0.03 - 10 5.60 0.04 0.00 - 11 -84.00 0.24 0.04 - 12 -122.95 0.35 0.08 - 13 -140.87 0.40 0.11 - 14 -176.51 0.50 0.17 - 15 -232.51 0.66 0.28 - 16 33.40 0.21 0.05 - 17 58.44 0.37 0.15 - 18 1.79 0.01 0.00 - 19 37.84 0.11 0.01 - 20 15.44 0.04 0.00 - 21 9.20 0.06 0.01 - 22 53.76 0.15 0.02 - 23 16.30 0.10 0.01 - 24 -1.62 0.01 0.00 - 25 16.18 0.10 0.01 - 26 -305.51 0.87 0.46 - 27 -293.19 0.83 0.42 - 28 -314.47 0.89 0.48 - 29 -361.51 1.03 0.63 - 30 40.32 0.11 0.01 - 31 21.28 0.14 0.02 - 32 12.32 0.08 0.01 - 34 1.93 0.01 0.00 - 35 3.36 0.02 0.00 - 36 1.68 0.01 0.00 - 37 -3.60 0.02 0.00 - 38 2.55 0.02 0.00 - 39 3.36 0.02 0.00 - 40 0.81 0.01 0.00 - 41 1.12 0.01 0.00 - - - Node Results at 33:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 295.85 106.53 0.08 - 2 10.72 295.85 84.86 0.08 - 3 18.76 295.84 102.19 0.09 - 4 10.72 295.85 102.19 0.09 - 5 10.72 295.85 84.86 0.09 - 6 6.70 295.87 74.04 0.09 - 7 5.36 295.93 58.90 0.09 - 8 12.06 295.92 80.56 0.13 - 9 18.76 295.94 50.24 0.09 - 10 6.70 295.92 71.89 0.16 - 11 46.61 295.98 48.09 0.09 - 12 21.44 296.21 37.35 0.84 - 13 2.68 296.30 37.39 0.84 - 14 2.68 296.39 41.77 0.84 - 15 2.68 296.51 46.15 0.84 - 16 26.80 296.18 63.34 0.09 - 17 26.80 296.18 50.34 0.75 - 18 26.80 296.18 85.00 0.13 - 19 6.70 296.18 63.34 0.09 - 20 25.46 296.36 54.75 0.10 - 21 21.44 296.34 63.41 0.20 - 22 13.40 296.34 41.74 0.12 - 23 10.72 297.04 29.05 0.84 - 24 14.74 296.66 46.21 0.84 - 25 8.04 297.24 29.14 0.84 - 27 10.72 297.22 72.46 0.84 - 28 0.00 297.21 81.12 1.00 - 29 9.38 297.21 81.12 0.09 - 30 4.02 297.21 72.45 1.00 - 31 22.78 297.23 46.46 0.84 - 32 22.78 296.17 80.67 0.75 - 33 2.01 296.34 50.41 1.00 - 34 2.01 296.34 46.08 1.00 - 35 0.00 297.21 81.12 0.95 - 36 1.34 297.21 81.12 1.00 - 26 -432.53 297.42 27.04 0.84 Tank - - - Link Results at 33:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -20.12 0.06 0.00 - 3 9.40 0.06 0.01 - 4 -9.36 0.06 0.01 - 5 -20.08 0.06 0.00 - 6 -50.92 0.14 0.02 - 7 -57.62 0.16 0.02 - 8 18.76 0.05 0.00 - 9 -81.74 0.23 0.04 - 10 6.70 0.04 0.00 - 11 -100.50 0.29 0.06 - 12 -147.11 0.42 0.12 - 13 -168.55 0.48 0.15 - 14 -211.18 0.60 0.23 - 15 -278.18 0.79 0.39 - 16 39.96 0.26 0.08 - 17 69.92 0.45 0.22 - 18 2.15 0.01 0.00 - 19 45.27 0.13 0.01 - 20 18.47 0.05 0.00 - 21 11.01 0.07 0.01 - 22 64.32 0.18 0.03 - 23 19.50 0.12 0.02 - 24 -1.94 0.01 0.00 - 25 19.36 0.12 0.02 - 26 -365.53 1.04 0.64 - 27 -350.79 1.00 0.59 - 28 -376.25 1.07 0.67 - 29 -432.53 1.23 0.87 - 30 48.24 0.14 0.02 - 31 25.46 0.16 0.03 - 32 14.74 0.09 0.01 - 34 2.31 0.01 0.00 - 35 4.02 0.03 0.00 - 36 2.01 0.01 0.00 - 37 -4.31 0.03 0.00 - 38 3.05 0.02 0.00 - 39 4.02 0.03 0.00 - 40 0.97 0.01 0.00 - 41 1.34 0.01 0.00 - - - Node Results at 34:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 294.52 105.95 0.08 - 2 8.96 294.52 84.29 0.09 - 3 15.68 294.52 101.62 0.09 - 4 8.96 294.52 101.62 0.09 - 5 8.96 294.53 84.29 0.09 - 6 5.60 294.54 73.46 0.09 - 7 4.48 294.58 58.31 0.09 - 8 10.08 294.58 79.98 0.12 - 9 15.68 294.59 49.65 0.09 - 10 5.60 294.58 71.31 0.13 - 11 38.95 294.62 47.50 0.18 - 12 17.92 294.78 36.74 0.84 - 13 2.24 294.85 36.76 0.84 - 14 2.24 294.91 41.13 0.84 - 15 2.24 295.00 45.50 0.84 - 16 22.40 294.77 62.73 0.12 - 17 22.40 294.77 49.73 0.82 - 18 22.40 294.76 84.39 0.11 - 19 5.60 294.76 62.72 0.09 - 20 21.28 294.89 54.12 0.83 - 21 17.92 294.88 62.77 0.17 - 22 11.20 294.88 41.11 0.09 - 23 8.96 295.38 28.33 0.84 - 24 12.32 295.10 45.54 0.84 - 25 6.72 295.52 28.39 0.84 - 27 8.96 295.51 71.71 0.84 - 28 0.00 295.50 80.38 1.00 - 29 7.84 295.50 80.38 0.12 - 30 3.36 295.50 71.71 0.99 - 31 19.04 295.52 45.72 0.84 - 32 19.04 294.76 80.06 0.11 - 33 1.68 294.87 49.78 0.86 - 34 1.68 294.87 45.44 0.99 - 35 0.00 295.50 80.38 0.95 - 36 1.12 295.50 80.38 1.00 - 26 -361.51 295.65 26.28 0.84 Tank - - - Link Results at 34:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -16.82 0.05 0.00 - 3 7.86 0.05 0.00 - 4 -7.82 0.05 0.00 - 5 -16.78 0.05 0.00 - 6 -42.56 0.12 0.01 - 7 -48.16 0.14 0.01 - 8 15.68 0.04 0.00 - 9 -68.32 0.19 0.03 - 10 5.60 0.04 0.00 - 11 -84.00 0.24 0.04 - 12 -122.95 0.35 0.08 - 13 -140.87 0.40 0.11 - 14 -176.51 0.50 0.17 - 15 -232.51 0.66 0.28 - 16 33.40 0.21 0.05 - 17 58.44 0.37 0.15 - 18 1.79 0.01 0.00 - 19 37.84 0.11 0.01 - 20 15.44 0.04 0.00 - 21 9.20 0.06 0.01 - 22 53.76 0.15 0.02 - 23 16.30 0.10 0.01 - 24 -1.62 0.01 0.00 - 25 16.18 0.10 0.01 - 26 -305.51 0.87 0.46 - 27 -293.19 0.83 0.42 - 28 -314.47 0.89 0.48 - 29 -361.51 1.03 0.63 - 30 40.32 0.11 0.01 - 31 21.28 0.14 0.02 - 32 12.32 0.08 0.01 - 34 1.93 0.01 0.00 - 35 3.36 0.02 0.00 - 36 1.68 0.01 0.00 - 37 -3.60 0.02 0.00 - 38 2.55 0.02 0.00 - 39 3.36 0.02 0.00 - 40 0.81 0.01 0.00 - 41 1.12 0.01 0.00 - - - Node Results at 35:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 293.31 105.43 0.08 - 2 7.76 293.31 83.76 0.09 - 3 13.58 293.31 101.09 0.09 - 4 7.76 293.31 101.09 0.11 - 5 7.76 293.31 83.76 0.09 - 6 4.85 293.32 72.93 0.09 - 7 3.88 293.35 57.78 0.09 - 8 8.73 293.35 79.45 0.11 - 9 13.58 293.36 49.12 0.84 - 10 4.85 293.35 70.78 0.13 - 11 33.74 293.38 46.96 0.84 - 12 15.52 293.51 36.18 0.84 - 13 1.94 293.56 36.21 0.84 - 14 1.94 293.61 40.56 0.84 - 15 1.94 293.67 44.92 0.84 - 16 19.40 293.50 62.18 0.84 - 17 19.40 293.50 49.18 0.82 - 18 19.40 293.49 83.84 0.82 - 19 4.85 293.49 62.17 0.09 - 20 18.43 293.59 53.55 0.84 - 21 15.52 293.58 62.21 0.18 - 22 9.70 293.58 40.55 0.10 - 23 7.76 293.96 27.72 0.84 - 24 10.67 293.75 44.96 0.84 - 25 5.82 294.08 27.76 0.84 - 27 7.76 294.06 71.09 0.84 - 28 0.00 294.06 79.75 1.00 - 29 6.79 294.06 79.75 0.84 - 30 2.91 294.06 71.09 1.00 - 31 16.49 294.07 45.09 0.84 - 32 16.49 293.49 79.51 0.13 - 33 1.45 293.58 49.21 0.21 - 34 1.45 293.58 44.88 1.04 - 35 0.00 294.06 79.75 0.95 - 36 0.97 294.06 79.75 1.00 - 26 -313.10 294.17 25.64 0.84 Tank - - - Link Results at 35:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -14.57 0.04 0.00 - 3 6.81 0.04 0.00 - 4 -6.77 0.04 0.00 - 5 -14.53 0.04 0.00 - 6 -36.86 0.10 0.01 - 7 -41.71 0.12 0.01 - 8 13.58 0.04 0.00 - 9 -59.17 0.17 0.02 - 10 4.85 0.03 0.00 - 11 -72.75 0.21 0.03 - 12 -106.49 0.30 0.07 - 13 -122.01 0.35 0.08 - 14 -152.87 0.43 0.13 - 15 -201.37 0.57 0.21 - 16 28.92 0.18 0.04 - 17 50.62 0.32 0.12 - 18 1.55 0.01 0.00 - 19 32.77 0.09 0.01 - 20 13.37 0.04 0.00 - 21 7.97 0.05 0.00 - 22 46.56 0.13 0.01 - 23 14.12 0.09 0.01 - 24 -1.40 0.01 0.00 - 25 14.01 0.09 0.01 - 26 -264.60 0.75 0.35 - 27 -253.93 0.72 0.33 - 28 -272.36 0.77 0.37 - 29 -313.10 0.89 0.48 - 30 34.92 0.10 0.01 - 31 18.43 0.12 0.02 - 32 10.67 0.07 0.01 - 34 1.67 0.01 0.00 - 35 2.91 0.02 0.00 - 36 1.45 0.01 0.00 - 37 -3.12 0.02 0.00 - 38 2.21 0.01 0.00 - 39 2.91 0.02 0.00 - 40 0.70 0.00 0.00 - 41 0.97 0.01 0.00 - - - Node Results at 36:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 291.91 104.82 0.08 - 2 8.32 291.91 83.16 0.09 - 3 14.56 291.91 100.49 0.09 - 4 8.32 291.91 100.49 0.11 - 5 8.32 291.91 83.16 0.09 - 6 5.20 291.93 72.33 0.09 - 7 4.16 291.96 57.18 0.84 - 8 9.36 291.96 78.84 0.09 - 9 14.56 291.97 48.52 0.84 - 10 5.20 291.96 70.18 0.13 - 11 36.17 292.00 46.36 0.84 - 12 16.64 292.14 35.59 0.84 - 13 2.08 292.20 35.62 0.84 - 14 2.08 292.25 39.97 0.84 - 15 2.08 292.33 44.34 0.84 - 16 20.80 292.12 61.58 0.84 - 17 20.80 292.12 48.58 0.82 - 18 20.80 292.12 83.24 0.82 - 19 5.20 292.12 61.58 0.10 - 20 19.76 292.24 52.96 0.84 - 21 16.64 292.22 61.62 0.18 - 22 10.40 292.22 39.96 0.10 - 23 8.32 292.66 27.15 0.84 - 24 11.44 292.42 44.38 0.84 - 25 6.24 292.78 27.20 0.84 - 27 8.32 292.77 70.53 0.84 - 28 0.00 292.77 79.19 0.43 - 29 7.28 292.77 79.19 0.84 - 30 3.12 292.77 70.53 1.00 - 31 17.68 292.78 44.53 0.84 - 32 17.68 292.12 78.91 0.11 - 33 1.56 292.22 48.62 0.23 - 34 1.56 292.22 44.29 1.00 - 35 0.00 292.77 79.19 0.95 - 36 1.04 292.77 79.19 1.00 - 26 -335.69 292.89 25.09 0.84 Tank - - - Link Results at 36:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -15.62 0.04 0.00 - 3 7.30 0.05 0.00 - 4 -7.26 0.05 0.00 - 5 -15.58 0.04 0.00 - 6 -39.52 0.11 0.01 - 7 -44.72 0.13 0.01 - 8 14.56 0.04 0.00 - 9 -63.44 0.18 0.02 - 10 5.20 0.03 0.00 - 11 -78.00 0.22 0.04 - 12 -114.17 0.32 0.07 - 13 -130.81 0.37 0.10 - 14 -163.90 0.46 0.14 - 15 -215.90 0.61 0.24 - 16 31.01 0.20 0.05 - 17 54.27 0.35 0.13 - 18 1.67 0.01 0.00 - 19 35.14 0.10 0.01 - 20 14.34 0.04 0.00 - 21 8.54 0.05 0.00 - 22 49.92 0.14 0.02 - 23 15.14 0.10 0.01 - 24 -1.50 0.01 0.00 - 25 15.02 0.10 0.01 - 26 -283.69 0.80 0.40 - 27 -272.25 0.77 0.37 - 28 -292.01 0.83 0.42 - 29 -335.69 0.95 0.55 - 30 37.44 0.11 0.01 - 31 19.76 0.13 0.02 - 32 11.44 0.07 0.01 - 34 1.79 0.01 0.00 - 35 3.12 0.02 0.00 - 36 1.56 0.01 0.00 - 37 -3.34 0.02 0.00 - 38 2.37 0.02 0.00 - 39 3.12 0.02 0.00 - 40 0.75 0.00 0.00 - 41 1.04 0.01 0.00 - - - Node Results at 37:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -486.08 301.00 108.76 0.08 - 2 9.20 298.40 85.97 0.09 - 3 16.10 298.04 103.14 0.09 - 4 9.20 297.82 103.05 0.11 - 5 9.20 297.80 85.71 0.09 - 6 5.75 296.71 74.40 0.09 - 7 4.60 294.31 58.20 0.84 - 8 10.35 294.31 79.86 0.11 - 9 16.10 293.99 49.39 0.84 - 10 5.75 294.31 71.20 0.13 - 11 40.00 293.46 47.00 0.84 - 12 18.40 292.28 35.65 0.84 - 13 2.30 291.94 35.51 0.84 - 14 2.30 291.79 39.77 0.84 - 15 2.30 291.72 44.08 0.84 - 16 23.00 291.67 61.39 0.84 - 17 23.00 291.65 48.38 0.82 - 18 23.00 291.65 83.04 0.82 - 19 5.75 291.65 61.38 0.10 - 20 21.85 291.77 52.76 0.84 - 21 18.40 291.75 61.42 0.18 - 22 11.50 291.75 39.76 0.10 - 23 9.20 291.58 26.68 0.84 - 24 12.65 291.68 44.06 0.84 - 25 6.90 291.54 26.66 0.84 - 27 9.20 291.52 69.99 0.84 - 28 0.00 291.52 78.65 0.22 - 29 8.05 291.52 78.65 0.84 - 30 3.45 291.52 69.98 1.00 - 31 19.55 291.53 43.99 0.84 - 32 19.55 291.65 78.71 0.52 - 33 1.73 291.75 48.42 0.14 - 34 1.73 291.75 44.09 0.87 - 35 0.00 291.52 78.65 0.95 - 36 1.15 291.52 78.65 1.02 - 26 114.88 291.52 24.49 0.84 Tank - - - Link Results at 37:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 486.08 1.38 1.08 - 2 396.95 1.13 0.74 - 3 79.93 0.51 0.28 - 4 63.83 0.41 0.18 - 5 54.63 0.15 0.02 - 6 442.38 1.25 0.91 - 7 436.63 1.24 0.89 - 8 16.10 0.05 0.00 - 9 415.93 1.18 0.81 - 10 5.75 0.04 0.00 - 11 399.83 1.13 0.75 - 12 359.83 1.02 0.62 - 13 341.43 0.97 0.56 - 14 275.11 0.78 0.38 - 15 217.61 0.62 0.24 - 16 64.02 0.41 0.18 - 17 30.28 0.19 0.05 - 18 24.63 0.16 0.03 - 19 31.91 0.09 0.01 - 20 8.91 0.03 0.00 - 21 16.39 0.10 0.01 - 22 55.20 0.16 0.02 - 23 16.74 0.11 0.02 - 24 -1.66 0.01 0.00 - 25 16.61 0.11 0.02 - 26 172.38 0.49 0.16 - 27 185.03 0.52 0.18 - 28 163.18 0.46 0.14 - 29 114.88 0.33 0.07 - 30 41.40 0.12 0.01 - 31 21.85 0.14 0.02 - 32 12.65 0.08 0.01 - 34 1.98 0.01 0.00 - 35 3.45 0.02 0.00 - 36 1.73 0.01 0.00 - 37 -10.64 0.07 0.01 - 38 2.62 0.02 0.00 - 39 3.45 0.02 0.00 - 40 0.83 0.01 0.00 - 41 1.15 0.01 0.00 - - - Node Results at 38:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 313.31 114.09 0.09 - 2 7.28 308.28 90.25 0.09 - 3 12.74 307.63 107.30 0.09 - 4 7.28 307.14 107.09 0.09 - 5 7.28 307.09 89.73 0.09 - 6 4.55 304.80 77.91 0.09 - 7 3.64 299.72 60.54 0.09 - 8 8.19 299.72 82.20 0.09 - 9 12.74 299.00 51.56 0.09 - 10 4.55 299.72 73.54 0.16 - 11 31.65 297.79 48.87 0.09 - 12 14.56 294.80 36.74 0.31 - 13 1.82 293.90 36.35 0.84 - 14 1.82 293.47 40.50 0.84 - 15 1.82 293.21 44.72 0.84 - 16 18.20 293.31 62.10 0.84 - 17 18.20 293.24 49.07 0.84 - 18 18.20 293.24 83.73 0.82 - 19 4.55 293.26 62.07 0.09 - 20 17.29 293.46 53.49 0.84 - 21 14.56 293.45 62.16 0.86 - 22 9.10 293.45 40.49 0.84 - 23 7.28 292.41 27.04 0.84 - 24 10.01 292.97 44.62 0.84 - 25 5.46 292.14 26.93 0.84 - 27 7.28 292.13 70.25 0.84 - 28 0.00 292.13 78.92 0.31 - 29 6.37 292.13 78.92 0.84 - 30 2.73 292.13 70.25 1.00 - 31 15.47 292.14 44.26 0.84 - 32 15.47 293.24 79.40 0.42 - 33 1.37 293.45 49.16 0.93 - 34 1.37 293.45 44.82 0.70 - 35 0.00 292.13 78.92 0.95 - 36 0.91 292.13 78.92 1.03 - 26 400.67 291.99 24.69 0.84 Tank - - - Link Results at 38:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 576.32 1.63 1.48 - 3 110.80 0.71 0.50 - 4 98.06 0.63 0.40 - 5 90.78 0.26 0.05 - 6 659.82 1.87 1.91 - 7 655.27 1.86 1.88 - 8 12.74 0.04 0.00 - 9 638.89 1.81 1.80 - 10 4.55 0.03 0.00 - 11 626.15 1.78 1.73 - 12 594.50 1.69 1.57 - 13 579.94 1.65 1.50 - 14 481.71 1.37 1.07 - 15 436.21 1.24 0.89 - 16 96.41 0.62 0.39 - 17 -21.79 0.14 0.02 - 18 50.10 0.32 0.12 - 19 10.12 0.03 0.00 - 20 -8.08 0.02 0.00 - 21 28.10 0.18 0.04 - 22 43.68 0.12 0.01 - 23 13.24 0.08 0.01 - 24 -1.32 0.01 0.00 - 25 13.15 0.08 0.01 - 26 446.17 1.27 0.92 - 27 456.18 1.29 0.96 - 28 438.89 1.25 0.90 - 29 400.67 1.14 0.76 - 30 32.76 0.09 0.01 - 31 17.29 0.11 0.02 - 32 10.01 0.06 0.01 - 34 1.57 0.01 0.00 - 35 2.73 0.02 0.00 - 36 1.37 0.01 0.00 - 37 -23.55 0.15 0.03 - 38 2.07 0.01 0.00 - 39 2.73 0.02 0.00 - 40 0.66 0.00 0.00 - 41 0.91 0.01 0.00 - - - Node Results at 39:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 316.36 115.42 0.07 - 2 4.88 311.33 91.57 0.07 - 3 8.54 310.69 108.62 0.07 - 4 4.88 310.18 108.40 0.09 - 5 4.88 310.13 91.05 0.07 - 6 3.05 307.77 79.19 0.07 - 7 2.44 302.49 61.74 0.09 - 8 5.49 302.49 83.41 0.09 - 9 8.54 301.74 52.75 0.09 - 10 3.05 302.49 74.74 0.93 - 11 21.22 300.44 50.02 0.09 - 12 9.76 297.14 37.76 0.09 - 13 1.22 296.13 37.32 0.09 - 14 1.22 295.64 41.44 0.09 - 15 1.22 295.31 45.63 0.12 - 16 12.20 295.54 63.06 0.09 - 17 12.20 295.46 50.03 0.84 - 18 12.20 295.46 84.69 0.82 - 19 3.05 295.48 63.04 0.84 - 20 11.59 295.63 54.44 0.84 - 21 9.76 295.62 63.10 0.86 - 22 6.10 295.62 41.43 0.84 - 23 4.88 294.23 27.83 0.12 - 24 6.71 294.98 45.49 0.12 - 25 3.66 293.85 27.67 0.12 - 27 4.88 293.85 71.00 0.84 - 28 0.00 293.85 79.66 0.93 - 29 4.27 293.85 79.66 0.84 - 30 1.83 293.85 71.00 1.00 - 31 10.37 293.85 45.00 0.84 - 32 10.37 295.46 80.36 0.09 - 33 0.92 295.62 50.10 0.93 - 34 0.92 295.62 45.77 0.92 - 35 0.00 293.85 79.66 0.35 - 36 0.61 293.85 79.66 0.99 - 26 497.50 293.63 25.40 0.84 Tank - - - Link Results at 39:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 580.17 1.65 1.50 - 3 109.35 0.70 0.49 - 4 100.81 0.64 0.42 - 5 95.93 0.27 0.05 - 6 671.22 1.90 1.97 - 7 668.17 1.90 1.95 - 8 8.54 0.02 0.00 - 9 657.19 1.86 1.89 - 10 3.05 0.02 0.00 - 11 648.65 1.84 1.85 - 12 627.43 1.78 1.74 - 13 617.67 1.75 1.69 - 14 519.91 1.47 1.23 - 15 489.41 1.39 1.10 - 16 96.54 0.62 0.39 - 17 -46.52 0.30 0.10 - 18 54.49 0.35 0.14 - 19 -4.23 0.01 0.00 - 20 -16.43 0.05 0.00 - 21 29.85 0.19 0.04 - 22 29.28 0.08 0.01 - 23 8.88 0.06 0.00 - 24 -0.88 0.01 0.00 - 25 8.81 0.06 0.00 - 26 528.00 1.50 1.26 - 27 534.71 1.52 1.29 - 28 523.12 1.48 1.24 - 29 497.50 1.41 1.13 - 30 21.96 0.06 0.00 - 31 11.59 0.07 0.01 - 32 6.71 0.04 0.00 - 34 1.05 0.01 0.00 - 35 1.83 0.01 0.00 - 36 0.92 0.01 0.00 - 37 -26.80 0.17 0.04 - 38 1.39 0.01 0.00 - 39 1.83 0.01 0.00 - 40 0.44 0.00 0.00 - 41 0.61 0.00 0.00 - - - Node Results at 40:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 318.06 116.15 0.07 - 2 5.44 313.02 92.30 0.07 - 3 9.52 312.38 109.36 0.07 - 4 5.44 311.88 109.14 0.07 - 5 5.44 311.82 91.78 0.07 - 6 3.40 309.48 79.93 0.07 - 7 2.72 304.25 62.50 0.07 - 8 6.12 304.25 84.17 0.09 - 9 9.52 303.50 53.51 0.07 - 10 3.40 304.25 75.50 0.93 - 11 23.65 302.23 50.79 0.07 - 12 10.88 299.00 38.56 0.07 - 13 1.36 298.01 38.14 0.07 - 14 1.36 297.54 42.26 0.07 - 15 1.36 297.22 46.46 0.14 - 16 13.60 297.42 63.88 0.09 - 17 13.60 297.35 50.85 0.14 - 18 13.60 297.35 85.51 0.82 - 19 3.40 297.36 63.85 0.84 - 20 12.92 297.53 55.26 0.84 - 21 10.88 297.52 63.92 0.86 - 22 6.80 297.52 42.26 0.84 - 23 5.44 296.21 28.69 0.15 - 24 7.48 296.92 46.33 0.14 - 25 4.08 295.87 28.54 0.15 - 27 5.44 295.86 71.87 0.84 - 28 0.00 295.86 80.53 0.93 - 29 4.76 295.86 80.53 0.84 - 30 2.04 295.86 71.87 1.00 - 31 11.56 295.87 45.87 0.84 - 32 11.56 297.35 81.18 0.84 - 33 1.02 297.52 50.92 0.93 - 34 1.02 297.52 46.59 1.00 - 35 0.00 295.86 80.53 0.35 - 36 0.68 295.86 80.53 0.99 - 26 474.91 295.66 26.28 0.81 Tank - - - Link Results at 40:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 579.27 1.64 1.50 - 3 109.69 0.70 0.50 - 4 100.17 0.64 0.42 - 5 94.73 0.27 0.05 - 6 668.56 1.90 1.95 - 7 665.16 1.89 1.94 - 8 9.52 0.03 0.00 - 9 652.92 1.85 1.87 - 10 3.40 0.02 0.00 - 11 643.40 1.83 1.82 - 12 619.75 1.76 1.70 - 13 608.87 1.73 1.64 - 14 510.75 1.45 1.19 - 15 476.75 1.35 1.05 - 16 96.76 0.62 0.39 - 17 -41.00 0.26 0.08 - 18 53.63 0.34 0.13 - 19 -0.97 0.00 0.00 - 20 -14.57 0.04 0.00 - 21 29.53 0.19 0.04 - 22 32.64 0.09 0.01 - 23 9.90 0.06 0.01 - 24 -0.98 0.01 0.00 - 25 9.82 0.06 0.01 - 26 508.91 1.44 1.18 - 27 516.39 1.46 1.21 - 28 503.47 1.43 1.16 - 29 474.91 1.35 1.04 - 30 24.48 0.07 0.00 - 31 12.92 0.08 0.01 - 32 7.48 0.05 0.00 - 34 1.17 0.01 0.00 - 35 2.04 0.01 0.00 - 36 1.02 0.01 0.00 - 37 -26.13 0.17 0.03 - 38 1.55 0.01 0.00 - 39 2.04 0.01 0.00 - 40 0.49 0.00 0.00 - 41 0.68 0.00 0.00 - - - Node Results at 41:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -694.40 321.09 117.46 0.09 - 2 3.68 316.05 93.62 0.09 - 3 6.44 315.42 110.67 0.09 - 4 3.68 314.90 110.45 0.07 - 5 3.68 314.84 93.09 0.09 - 6 2.30 312.44 81.22 0.09 - 7 1.84 307.08 63.73 0.07 - 8 4.14 307.08 85.39 0.09 - 9 6.44 306.30 54.73 0.07 - 10 2.30 307.07 76.73 0.93 - 11 16.00 304.96 51.98 0.07 - 12 7.36 301.50 39.65 0.07 - 13 0.92 300.43 39.18 0.07 - 14 0.92 299.90 43.29 0.07 - 15 0.92 299.54 47.46 0.08 - 16 9.20 299.85 64.93 0.07 - 17 9.20 299.76 51.89 0.09 - 18 9.20 299.77 86.56 0.10 - 19 2.30 299.79 64.90 0.09 - 20 8.74 299.90 56.28 0.84 - 21 7.36 299.89 64.95 0.86 - 22 4.60 299.89 43.28 0.84 - 23 3.68 298.30 29.59 0.10 - 24 5.06 299.17 47.30 0.08 - 25 2.76 297.87 29.41 0.12 - 27 3.68 297.87 72.74 0.84 - 28 0.00 297.86 81.40 0.93 - 29 3.22 297.86 81.40 0.84 - 30 1.38 297.86 72.74 1.00 - 31 7.82 297.87 46.74 0.25 - 32 7.82 299.77 82.23 0.84 - 33 0.69 299.89 51.95 0.93 - 34 0.69 299.89 47.62 1.00 - 35 0.00 297.86 81.40 0.37 - 36 0.46 297.86 81.40 0.99 - 26 545.92 297.60 27.12 0.79 Tank - - - Link Results at 41:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 694.40 1.97 2.10 - 2 582.11 1.65 1.51 - 3 108.61 0.69 0.49 - 4 102.17 0.65 0.43 - 5 98.49 0.28 0.06 - 6 676.92 1.92 2.00 - 7 674.62 1.91 1.99 - 8 6.44 0.02 0.00 - 9 666.34 1.89 1.94 - 10 2.30 0.01 0.00 - 11 659.90 1.87 1.91 - 12 643.90 1.83 1.82 - 13 636.54 1.81 1.78 - 14 539.96 1.53 1.32 - 15 516.96 1.47 1.21 - 16 95.66 0.61 0.38 - 17 -57.94 0.37 0.15 - 18 56.10 0.36 0.14 - 19 -11.05 0.03 0.00 - 20 -20.25 0.06 0.00 - 21 30.37 0.19 0.05 - 22 22.08 0.06 0.00 - 23 6.70 0.04 0.00 - 24 -0.66 0.00 0.00 - 25 6.64 0.04 0.00 - 26 568.92 1.61 1.45 - 27 573.98 1.63 1.47 - 28 565.24 1.60 1.43 - 29 545.92 1.55 1.34 - 30 16.56 0.05 0.00 - 31 8.74 0.06 0.00 - 32 5.06 0.03 0.00 - 34 0.79 0.01 0.00 - 35 1.38 0.01 0.00 - 36 0.69 0.00 0.00 - 37 -28.07 0.18 0.04 - 38 1.05 0.01 0.00 - 39 1.38 0.01 0.00 - 40 0.33 0.00 0.00 - 41 0.46 0.00 0.00 - - - Node Results at 42:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -138.88 300.62 108.59 0.09 - 2 4.08 300.37 86.82 0.09 - 3 7.14 300.33 104.13 0.09 - 4 4.08 300.31 104.13 0.09 - 5 4.08 300.31 86.79 0.09 - 6 2.55 300.21 75.92 0.09 - 7 2.04 300.00 60.66 0.09 - 8 4.59 300.00 82.33 0.09 - 9 7.14 299.98 51.99 0.09 - 10 2.55 300.00 73.66 0.13 - 11 17.74 299.94 49.80 0.09 - 12 8.16 299.86 38.94 0.09 - 13 1.02 299.84 38.93 0.09 - 14 1.02 299.83 43.26 0.09 - 15 1.02 299.83 47.59 0.09 - 16 10.20 299.80 64.91 0.07 - 17 10.20 299.80 51.91 0.15 - 18 10.20 299.80 86.57 0.84 - 19 2.55 299.80 64.91 0.09 - 20 9.69 299.83 56.25 0.09 - 21 8.16 299.82 64.92 0.86 - 22 5.10 299.82 43.25 0.84 - 23 4.08 299.83 30.26 0.08 - 24 5.61 299.83 47.59 0.09 - 25 3.06 299.83 30.26 0.08 - 27 4.08 299.83 73.59 0.84 - 28 0.00 299.82 82.25 0.93 - 29 3.57 299.82 82.25 0.84 - 30 1.53 299.82 73.58 1.00 - 31 8.67 299.83 47.59 0.12 - 32 8.67 299.80 82.24 0.09 - 33 0.77 299.82 51.92 0.93 - 34 0.77 299.82 47.59 1.00 - 35 0.00 299.82 82.25 0.35 - 36 0.51 299.82 82.25 0.95 - 26 -25.74 299.83 28.09 0.77 Tank - - - Link Results at 42:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 138.88 0.39 0.11 - 2 111.19 0.32 0.07 - 3 23.61 0.15 0.03 - 4 16.47 0.11 0.01 - 5 12.39 0.04 0.00 - 6 119.50 0.34 0.08 - 7 116.95 0.33 0.08 - 8 7.14 0.02 0.00 - 9 107.77 0.31 0.07 - 10 2.55 0.02 0.00 - 11 100.63 0.29 0.06 - 12 82.89 0.24 0.04 - 13 74.73 0.21 0.03 - 14 51.70 0.15 0.02 - 15 26.20 0.07 0.00 - 16 22.02 0.14 0.03 - 17 19.80 0.13 0.02 - 18 6.35 0.04 0.00 - 19 15.96 0.05 0.00 - 20 5.76 0.02 0.00 - 21 5.46 0.03 0.00 - 22 24.48 0.07 0.00 - 23 7.42 0.05 0.00 - 24 -0.74 0.00 0.00 - 25 7.37 0.05 0.00 - 26 -0.24 0.00 0.00 - 27 5.37 0.02 0.00 - 28 -4.32 0.01 0.00 - 29 -25.74 0.07 0.00 - 30 18.36 0.05 0.00 - 31 9.69 0.06 0.01 - 32 5.61 0.04 0.00 - 34 0.88 0.01 0.00 - 35 1.53 0.01 0.00 - 36 0.77 0.00 0.00 - 37 -2.91 0.02 0.00 - 38 1.16 0.01 0.00 - 39 1.53 0.01 0.00 - 40 0.37 0.00 0.00 - 41 0.51 0.00 0.00 - - - Node Results at 43:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 299.20 107.98 0.09 - 2 5.92 299.20 86.31 0.09 - 3 10.36 299.20 103.65 0.09 - 4 5.92 299.20 103.65 0.09 - 5 5.92 299.20 86.31 0.09 - 6 3.70 299.21 75.49 0.09 - 7 2.96 299.23 60.33 0.09 - 8 6.66 299.23 81.99 0.09 - 9 10.36 299.23 51.66 0.09 - 10 3.70 299.23 73.33 0.13 - 11 25.74 299.25 49.50 0.09 - 12 11.84 299.32 38.70 0.09 - 13 1.48 299.35 38.72 0.09 - 14 1.48 299.38 43.06 0.09 - 15 1.48 299.42 47.41 0.09 - 16 14.80 299.32 64.70 0.07 - 17 14.80 299.32 51.70 0.16 - 18 14.80 299.31 86.36 0.82 - 19 3.70 299.31 64.70 0.09 - 20 14.06 299.37 56.06 0.09 - 21 11.84 299.37 64.72 0.86 - 22 7.40 299.37 43.06 0.84 - 23 5.92 299.60 30.16 0.08 - 24 8.14 299.47 47.43 0.09 - 25 4.44 299.67 30.19 0.77 - 27 5.92 299.66 73.51 0.15 - 28 0.00 299.66 82.18 0.93 - 29 5.18 299.66 82.18 0.84 - 30 2.22 299.66 73.51 1.00 - 31 12.58 299.66 47.52 0.15 - 32 12.58 299.31 82.03 0.11 - 33 1.11 299.37 51.72 0.93 - 34 1.11 299.37 47.39 1.00 - 35 0.00 299.66 82.18 0.34 - 36 0.74 299.66 82.18 1.00 - 26 -238.86 299.73 28.05 0.77 Tank - - - Link Results at 43:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -11.11 0.03 0.00 - 3 5.19 0.03 0.00 - 4 -5.17 0.03 0.00 - 5 -11.09 0.03 0.00 - 6 -28.12 0.08 0.01 - 7 -31.82 0.09 0.01 - 8 10.36 0.03 0.00 - 9 -45.14 0.13 0.01 - 10 3.70 0.02 0.00 - 11 -55.50 0.16 0.02 - 12 -81.24 0.23 0.04 - 13 -93.08 0.26 0.05 - 14 -116.62 0.33 0.08 - 15 -153.62 0.44 0.13 - 16 22.07 0.14 0.03 - 17 38.61 0.25 0.07 - 18 1.19 0.01 0.00 - 19 25.00 0.07 0.00 - 20 10.20 0.03 0.00 - 21 6.08 0.04 0.00 - 22 35.52 0.10 0.01 - 23 10.77 0.07 0.01 - 24 -1.07 0.01 0.00 - 25 10.69 0.07 0.01 - 26 -201.86 0.57 0.21 - 27 -193.72 0.55 0.20 - 28 -207.78 0.59 0.22 - 29 -238.86 0.68 0.29 - 30 26.64 0.08 0.01 - 31 14.06 0.09 0.01 - 32 8.14 0.05 0.00 - 34 1.27 0.01 0.00 - 35 2.22 0.01 0.00 - 36 1.11 0.01 0.00 - 37 -2.38 0.02 0.00 - 38 1.69 0.01 0.00 - 39 2.22 0.01 0.00 - 40 0.53 0.00 0.00 - 41 0.74 0.00 0.00 - - - Node Results at 44:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 297.62 107.30 0.09 - 2 8.96 297.62 85.63 0.09 - 3 15.68 297.62 102.96 0.09 - 4 8.96 297.62 102.96 0.09 - 5 8.96 297.63 85.63 0.09 - 6 5.60 297.64 74.81 0.09 - 7 4.48 297.68 59.66 0.09 - 8 10.08 297.68 81.32 0.09 - 9 15.68 297.69 51.00 0.09 - 10 5.60 297.68 72.66 0.15 - 11 38.95 297.72 48.84 0.09 - 12 17.92 297.88 38.08 0.09 - 13 2.24 297.95 38.11 0.13 - 14 2.24 298.01 42.47 0.77 - 15 2.24 298.10 46.84 0.77 - 16 22.40 297.87 64.07 0.09 - 17 22.40 297.87 51.07 0.18 - 18 22.40 297.86 85.73 0.82 - 19 5.60 297.86 64.07 0.07 - 20 21.28 297.99 55.46 0.07 - 21 17.92 297.98 64.12 0.86 - 22 11.20 297.98 42.45 0.84 - 23 8.96 298.48 29.67 0.77 - 24 12.32 298.20 46.88 0.77 - 25 6.72 298.62 29.73 0.77 - 27 8.96 298.61 73.06 0.15 - 28 0.00 298.60 81.72 0.93 - 29 7.84 298.60 81.72 0.84 - 30 3.36 298.60 73.06 0.59 - 31 19.04 298.62 47.06 0.08 - 32 19.04 297.86 81.40 0.70 - 33 1.68 297.98 51.12 0.93 - 34 1.68 297.98 46.79 1.00 - 35 0.00 298.60 81.72 0.31 - 36 1.12 298.60 81.72 1.00 - 26 -361.51 298.75 27.62 0.77 Tank - - - Link Results at 44:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 0.00 0.00 0.00 - 2 -16.82 0.05 0.00 - 3 7.86 0.05 0.00 - 4 -7.82 0.05 0.00 - 5 -16.78 0.05 0.00 - 6 -42.56 0.12 0.01 - 7 -48.16 0.14 0.01 - 8 15.68 0.04 0.00 - 9 -68.32 0.19 0.03 - 10 5.60 0.04 0.00 - 11 -84.00 0.24 0.04 - 12 -122.95 0.35 0.08 - 13 -140.87 0.40 0.11 - 14 -176.51 0.50 0.17 - 15 -232.51 0.66 0.28 - 16 33.40 0.21 0.05 - 17 58.44 0.37 0.15 - 18 1.79 0.01 0.00 - 19 37.84 0.11 0.01 - 20 15.44 0.04 0.00 - 21 9.20 0.06 0.01 - 22 53.76 0.15 0.02 - 23 16.30 0.10 0.01 - 24 -1.62 0.01 0.00 - 25 16.18 0.10 0.01 - 26 -305.51 0.87 0.46 - 27 -293.19 0.83 0.42 - 28 -314.47 0.89 0.48 - 29 -361.51 1.03 0.63 - 30 40.32 0.11 0.01 - 31 21.28 0.14 0.02 - 32 12.32 0.08 0.01 - 34 1.93 0.01 0.00 - 35 3.36 0.02 0.00 - 36 1.68 0.01 0.00 - 37 -3.60 0.02 0.00 - 38 2.55 0.02 0.00 - 39 3.36 0.02 0.00 - 40 0.81 0.01 0.00 - 41 1.12 0.01 0.00 - - - Node Results at 45:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 295.70 106.46 0.09 - 2 10.72 295.70 84.80 0.09 - 3 18.76 295.70 102.13 0.09 - 4 10.72 295.70 102.13 0.09 - 5 10.72 295.71 84.80 0.09 - 6 6.70 295.73 73.98 0.09 - 7 5.36 295.78 58.83 0.09 - 8 12.06 295.78 80.50 0.09 - 9 18.76 295.80 50.18 0.09 - 10 6.70 295.78 71.83 0.12 - 11 46.61 295.84 48.03 0.09 - 12 21.44 296.06 37.29 0.77 - 13 2.68 296.16 37.33 0.77 - 14 2.68 296.25 41.70 0.77 - 15 2.68 296.36 46.09 0.77 - 16 26.80 296.04 63.28 0.09 - 17 26.80 296.04 50.28 0.75 - 18 26.80 296.03 84.94 0.16 - 19 6.70 296.03 63.28 0.07 - 20 25.46 296.22 54.69 0.09 - 21 21.44 296.19 63.35 0.86 - 22 13.40 296.19 41.68 0.84 - 23 10.72 296.90 28.99 0.77 - 24 14.74 296.51 46.15 0.77 - 25 8.04 297.10 29.07 0.77 - 27 10.72 297.08 72.39 0.08 - 28 0.00 297.07 81.06 0.93 - 29 9.38 297.07 81.06 0.13 - 30 4.02 297.07 72.39 0.41 - 31 22.78 297.09 46.40 0.77 - 32 22.78 296.03 80.61 0.70 - 33 2.01 296.19 50.35 0.93 - 34 2.01 296.19 46.01 1.00 - 35 0.00 297.07 81.06 0.32 - 36 1.34 297.07 81.06 1.00 - 26 -432.53 297.27 26.98 0.77 Tank - - - Link Results at 45:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -20.12 0.06 0.00 - 3 9.40 0.06 0.01 - 4 -9.36 0.06 0.01 - 5 -20.08 0.06 0.00 - 6 -50.92 0.14 0.02 - 7 -57.62 0.16 0.02 - 8 18.76 0.05 0.00 - 9 -81.74 0.23 0.04 - 10 6.70 0.04 0.00 - 11 -100.50 0.29 0.06 - 12 -147.11 0.42 0.12 - 13 -168.55 0.48 0.15 - 14 -211.18 0.60 0.23 - 15 -278.18 0.79 0.39 - 16 39.96 0.26 0.08 - 17 69.92 0.45 0.22 - 18 2.15 0.01 0.00 - 19 45.27 0.13 0.01 - 20 18.47 0.05 0.00 - 21 11.01 0.07 0.01 - 22 64.32 0.18 0.03 - 23 19.50 0.12 0.02 - 24 -1.94 0.01 0.00 - 25 19.36 0.12 0.02 - 26 -365.53 1.04 0.64 - 27 -350.79 1.00 0.59 - 28 -376.25 1.07 0.67 - 29 -432.53 1.23 0.87 - 30 48.24 0.14 0.02 - 31 25.46 0.16 0.03 - 32 14.74 0.09 0.01 - 34 2.31 0.01 0.00 - 35 4.02 0.03 0.00 - 36 2.01 0.01 0.00 - 37 -4.31 0.03 0.00 - 38 3.05 0.02 0.00 - 39 4.02 0.03 0.00 - 40 0.97 0.01 0.00 - 41 1.34 0.01 0.00 - - - Node Results at 46:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 294.11 105.77 0.09 - 2 10.08 294.11 84.11 0.09 - 3 17.64 294.10 101.44 0.09 - 4 10.08 294.11 101.44 0.09 - 5 10.08 294.11 84.11 0.09 - 6 6.30 294.13 73.28 0.09 - 7 5.04 294.18 58.14 0.09 - 8 11.34 294.18 79.80 0.84 - 9 17.64 294.19 49.48 0.09 - 10 6.30 294.17 71.14 0.09 - 11 43.82 294.23 47.33 0.77 - 12 20.16 294.43 36.58 0.77 - 13 2.52 294.51 36.62 0.77 - 14 2.52 294.59 40.99 0.77 - 15 2.52 294.70 45.36 0.77 - 16 25.20 294.41 62.57 0.75 - 17 25.20 294.41 49.57 0.75 - 18 25.20 294.40 84.23 0.09 - 19 6.30 294.40 62.57 0.07 - 20 23.94 294.57 53.97 0.77 - 21 20.16 294.54 62.63 0.31 - 22 12.60 294.54 40.97 0.37 - 23 10.08 295.17 28.24 0.77 - 24 13.86 294.83 45.42 0.77 - 25 7.56 295.35 28.32 0.77 - 27 10.08 295.33 71.64 0.77 - 28 0.00 295.33 80.30 0.93 - 29 8.82 295.33 80.30 0.11 - 30 3.78 295.32 71.64 0.56 - 31 21.42 295.34 45.64 0.77 - 32 21.42 294.40 79.90 0.68 - 33 1.89 294.54 49.63 0.93 - 34 1.89 294.54 45.30 1.00 - 35 0.00 295.33 80.30 0.88 - 36 1.26 295.33 80.30 1.00 - 26 -406.70 295.51 26.22 0.77 Tank - - - Link Results at 46:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -18.92 0.05 0.00 - 3 8.84 0.06 0.00 - 4 -8.80 0.06 0.00 - 5 -18.88 0.05 0.00 - 6 -47.88 0.14 0.01 - 7 -54.18 0.15 0.02 - 8 17.64 0.05 0.00 - 9 -76.86 0.22 0.04 - 10 6.30 0.04 0.00 - 11 -94.50 0.27 0.05 - 12 -138.32 0.39 0.11 - 13 -158.48 0.45 0.14 - 14 -198.57 0.56 0.21 - 15 -261.57 0.74 0.34 - 16 37.57 0.24 0.07 - 17 65.75 0.42 0.19 - 18 2.02 0.01 0.00 - 19 42.57 0.12 0.01 - 20 17.37 0.05 0.00 - 21 10.35 0.07 0.01 - 22 60.48 0.17 0.02 - 23 18.34 0.12 0.02 - 24 -1.82 0.01 0.00 - 25 18.20 0.12 0.02 - 26 -343.70 0.98 0.57 - 27 -329.84 0.94 0.53 - 28 -353.78 1.00 0.60 - 29 -406.70 1.15 0.78 - 30 45.36 0.13 0.01 - 31 23.94 0.15 0.03 - 32 13.86 0.09 0.01 - 34 2.17 0.01 0.00 - 35 3.78 0.02 0.00 - 36 1.89 0.01 0.00 - 37 -4.05 0.03 0.00 - 38 2.87 0.02 0.00 - 39 3.78 0.02 0.00 - 40 0.91 0.01 0.00 - 41 1.26 0.01 0.00 - - - Node Results at 47:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 292.98 105.28 0.09 - 2 7.76 292.98 83.62 0.09 - 3 13.58 292.98 100.95 0.09 - 4 7.76 292.98 100.95 0.09 - 5 7.76 292.98 83.62 0.09 - 6 4.85 292.99 72.79 0.09 - 7 3.88 293.03 57.64 0.18 - 8 8.73 293.02 79.30 0.09 - 9 13.58 293.03 48.98 0.77 - 10 4.85 293.02 70.64 0.11 - 11 33.74 293.06 46.82 0.77 - 12 15.52 293.18 36.04 0.77 - 13 1.94 293.23 36.06 0.77 - 14 1.94 293.28 40.42 0.77 - 15 1.94 293.35 44.78 0.77 - 16 19.40 293.17 62.03 0.77 - 17 19.40 293.17 49.04 0.75 - 18 19.40 293.16 83.70 0.75 - 19 4.85 293.16 62.03 0.07 - 20 18.43 293.27 53.41 0.77 - 21 15.52 293.25 62.07 0.16 - 22 9.70 293.25 40.41 0.07 - 23 7.76 293.64 27.57 0.77 - 24 10.67 293.43 44.81 0.77 - 25 5.82 293.75 27.62 0.77 - 27 7.76 293.74 70.95 0.77 - 28 0.00 293.73 79.61 0.93 - 29 6.79 293.73 79.61 0.77 - 30 2.91 293.73 70.95 0.95 - 31 16.49 293.74 44.95 0.77 - 32 16.49 293.16 79.36 0.14 - 33 1.45 293.25 49.07 0.14 - 34 1.45 293.25 44.74 0.50 - 35 0.00 293.73 79.61 0.88 - 36 0.97 293.73 79.61 1.00 - 26 -313.10 293.84 25.50 0.77 Tank - - - Link Results at 47:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -14.57 0.04 0.00 - 3 6.81 0.04 0.00 - 4 -6.77 0.04 0.00 - 5 -14.53 0.04 0.00 - 6 -36.86 0.10 0.01 - 7 -41.71 0.12 0.01 - 8 13.58 0.04 0.00 - 9 -59.17 0.17 0.02 - 10 4.85 0.03 0.00 - 11 -72.75 0.21 0.03 - 12 -106.49 0.30 0.07 - 13 -122.01 0.35 0.08 - 14 -152.87 0.43 0.13 - 15 -201.37 0.57 0.21 - 16 28.92 0.18 0.04 - 17 50.62 0.32 0.12 - 18 1.55 0.01 0.00 - 19 32.77 0.09 0.01 - 20 13.37 0.04 0.00 - 21 7.97 0.05 0.00 - 22 46.56 0.13 0.01 - 23 14.12 0.09 0.01 - 24 -1.40 0.01 0.00 - 25 14.01 0.09 0.01 - 26 -264.60 0.75 0.35 - 27 -253.93 0.72 0.33 - 28 -272.36 0.77 0.37 - 29 -313.10 0.89 0.48 - 30 34.92 0.10 0.01 - 31 18.43 0.12 0.02 - 32 10.67 0.07 0.01 - 34 1.67 0.01 0.00 - 35 2.91 0.02 0.00 - 36 1.45 0.01 0.00 - 37 -3.12 0.02 0.00 - 38 2.21 0.01 0.00 - 39 2.91 0.02 0.00 - 40 0.70 0.00 0.00 - 41 0.97 0.01 0.00 - - - Node Results at 48:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 0.00 291.93 104.83 0.09 - 2 6.56 291.93 83.16 0.09 - 3 11.48 291.93 100.50 0.09 - 4 6.56 291.93 100.50 0.07 - 5 6.56 291.93 83.17 0.09 - 6 4.10 291.94 72.34 0.09 - 7 3.28 291.97 57.18 0.77 - 8 7.38 291.96 78.85 0.09 - 9 11.48 291.97 48.52 0.77 - 10 4.10 291.96 70.18 0.09 - 11 28.52 291.99 46.36 0.77 - 12 13.12 292.08 35.56 0.77 - 13 1.64 292.12 35.58 0.77 - 14 1.64 292.15 39.93 0.77 - 15 1.64 292.20 44.28 0.77 - 16 16.40 292.07 61.56 0.77 - 17 16.40 292.07 48.56 0.75 - 18 16.40 292.07 83.22 0.75 - 19 4.10 292.07 61.56 0.07 - 20 15.58 292.14 52.92 0.77 - 21 13.12 292.13 61.59 0.16 - 22 8.20 292.13 39.92 0.07 - 23 6.56 292.41 27.04 0.77 - 24 9.02 292.26 44.31 0.77 - 25 4.92 292.50 27.08 0.77 - 27 6.56 292.49 70.41 0.77 - 28 0.00 292.48 79.07 0.18 - 29 5.74 292.48 79.07 0.77 - 30 2.46 292.48 70.40 0.95 - 31 13.94 292.49 44.41 0.77 - 32 13.94 292.07 78.89 0.09 - 33 1.23 292.13 48.59 0.12 - 34 1.23 292.13 44.25 0.21 - 35 0.00 292.48 79.07 0.88 - 36 0.82 292.48 79.07 1.00 - 26 -264.68 292.57 24.94 0.77 Tank - - - Link Results at 48:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 -0.00 0.00 0.00 - 2 -12.31 0.03 0.00 - 3 5.75 0.04 0.00 - 4 -5.73 0.04 0.00 - 5 -12.29 0.03 0.00 - 6 -31.16 0.09 0.01 - 7 -35.26 0.10 0.01 - 8 11.48 0.03 0.00 - 9 -50.02 0.14 0.02 - 10 4.10 0.03 0.00 - 11 -61.50 0.17 0.02 - 12 -90.02 0.26 0.05 - 13 -103.14 0.29 0.06 - 14 -129.23 0.37 0.09 - 15 -170.23 0.48 0.16 - 16 24.45 0.16 0.03 - 17 42.79 0.27 0.09 - 18 1.31 0.01 0.00 - 19 27.70 0.08 0.01 - 20 11.30 0.03 0.00 - 21 6.74 0.04 0.00 - 22 39.36 0.11 0.01 - 23 11.93 0.08 0.01 - 24 -1.19 0.01 0.00 - 25 11.85 0.08 0.01 - 26 -223.68 0.63 0.26 - 27 -214.66 0.61 0.24 - 28 -230.24 0.65 0.27 - 29 -264.68 0.75 0.35 - 30 29.52 0.08 0.01 - 31 15.58 0.10 0.01 - 32 9.02 0.06 0.00 - 34 1.41 0.01 0.00 - 35 2.46 0.02 0.00 - 36 1.23 0.01 0.00 - 37 -2.64 0.02 0.00 - 38 1.87 0.01 0.00 - 39 2.46 0.02 0.00 - 40 0.59 0.00 0.00 - 41 0.82 0.01 0.00 - - - Node Results at 49:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -513.86 301.57 109.01 0.09 - 2 10.96 298.69 86.09 0.09 - 3 19.18 298.29 103.25 0.09 - 4 10.96 298.05 103.15 0.07 - 5 10.96 298.03 85.81 0.09 - 6 6.85 296.85 74.46 0.09 - 7 5.48 294.27 58.18 0.77 - 8 12.33 294.26 79.84 0.07 - 9 19.18 293.92 49.36 0.77 - 10 6.85 294.26 71.17 0.09 - 11 47.65 293.36 46.95 0.77 - 12 21.92 292.16 35.60 0.77 - 13 2.74 291.82 35.45 0.77 - 14 2.74 291.68 39.72 0.77 - 15 2.74 291.62 44.03 0.77 - 16 27.40 291.50 61.31 0.77 - 17 27.40 291.49 48.31 0.75 - 18 27.40 291.48 82.97 0.75 - 19 6.85 291.48 61.30 0.07 - 20 26.03 291.65 52.71 0.77 - 21 21.92 291.62 61.36 0.17 - 22 13.70 291.62 39.70 0.09 - 23 10.96 291.52 26.66 0.77 - 24 15.07 291.58 44.02 0.77 - 25 8.22 291.49 26.64 0.77 - 27 10.96 291.47 69.96 0.77 - 28 0.00 291.46 78.63 0.14 - 29 9.59 291.46 78.63 0.77 - 30 4.11 291.46 69.96 0.95 - 31 23.29 291.48 43.97 0.77 - 32 23.29 291.48 78.63 0.45 - 33 2.05 291.62 48.37 0.11 - 34 2.05 291.62 44.03 0.23 - 35 0.00 291.46 78.63 0.88 - 36 1.37 291.46 78.63 1.00 - 26 71.65 291.48 24.47 0.77 Tank - - - Link Results at 49:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 513.86 1.46 1.20 - 2 417.72 1.18 0.82 - 3 85.18 0.54 0.31 - 4 66.00 0.42 0.19 - 5 55.04 0.16 0.02 - 6 461.80 1.31 0.99 - 7 454.95 1.29 0.96 - 8 19.18 0.05 0.00 - 9 430.29 1.22 0.86 - 10 6.85 0.04 0.00 - 11 411.11 1.17 0.79 - 12 363.46 1.03 0.63 - 13 341.54 0.97 0.56 - 14 269.25 0.76 0.36 - 15 200.75 0.57 0.21 - 16 69.55 0.44 0.21 - 17 42.79 0.27 0.09 - 18 24.62 0.16 0.03 - 19 40.01 0.11 0.01 - 20 12.61 0.04 0.00 - 21 17.53 0.11 0.02 - 22 65.76 0.19 0.03 - 23 19.94 0.13 0.02 - 24 -1.98 0.01 0.00 - 25 19.79 0.13 0.02 - 26 140.15 0.40 0.11 - 27 155.22 0.44 0.13 - 28 129.19 0.37 0.09 - 29 71.65 0.20 0.03 - 30 49.32 0.14 0.02 - 31 26.03 0.17 0.03 - 32 15.07 0.10 0.01 - 34 2.36 0.02 0.00 - 35 4.11 0.03 0.00 - 36 2.05 0.01 0.00 - 37 -10.68 0.07 0.01 - 38 3.12 0.02 0.00 - 39 4.11 0.03 0.00 - 40 0.99 0.01 0.00 - 41 1.37 0.01 0.00 - - - Node Results at 50:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 309.26 112.34 0.08 - 2 8.24 304.95 88.81 0.08 - 3 14.42 304.38 105.89 0.08 - 4 8.24 303.98 105.72 0.09 - 5 8.24 303.94 88.37 0.08 - 6 5.15 302.02 76.70 0.08 - 7 4.12 297.78 59.70 0.09 - 8 9.27 297.78 81.36 0.09 - 9 14.42 297.18 50.78 0.09 - 10 5.15 297.77 72.70 0.09 - 11 35.82 296.19 48.18 0.09 - 12 16.48 293.81 36.32 0.25 - 13 2.06 293.10 36.01 0.77 - 14 2.06 292.77 40.20 0.77 - 15 2.06 292.58 44.45 0.77 - 16 20.60 292.63 61.80 0.77 - 17 20.60 292.58 48.78 0.77 - 18 20.60 292.58 83.44 0.75 - 19 5.15 292.58 61.78 0.09 - 20 19.57 292.76 53.19 0.77 - 21 16.48 292.74 61.85 0.79 - 22 10.30 292.74 40.18 0.77 - 23 8.24 292.05 26.88 0.77 - 24 11.33 292.41 44.38 0.77 - 25 6.18 291.87 26.81 0.77 - 27 8.24 291.86 70.13 0.77 - 28 0.00 291.85 78.80 0.15 - 29 7.21 291.85 78.80 0.77 - 30 3.09 291.85 70.13 0.95 - 31 17.51 291.86 44.14 0.77 - 32 17.51 292.58 79.11 0.44 - 33 1.54 292.74 48.85 0.09 - 34 1.54 292.74 44.52 0.14 - 35 0.00 291.85 78.80 0.88 - 36 1.03 291.85 78.80 0.43 - 26 306.38 291.78 24.60 0.77 Tank - - - Link Results at 50:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 527.76 1.50 1.26 - 3 102.85 0.66 0.44 - 4 88.43 0.56 0.33 - 5 80.19 0.23 0.04 - 6 599.71 1.70 1.60 - 7 594.56 1.69 1.57 - 8 14.42 0.04 0.00 - 9 576.02 1.63 1.48 - 10 5.15 0.03 0.00 - 11 561.60 1.59 1.42 - 12 525.77 1.49 1.25 - 13 509.29 1.44 1.18 - 14 420.87 1.19 0.83 - 15 369.37 1.05 0.65 - 16 86.36 0.55 0.32 - 17 -1.90 0.01 0.00 - 18 41.68 0.27 0.08 - 19 19.18 0.05 0.00 - 20 -1.42 0.00 0.00 - 21 24.08 0.15 0.03 - 22 49.44 0.14 0.02 - 23 14.99 0.10 0.01 - 24 -1.49 0.01 0.00 - 25 14.88 0.09 0.01 - 26 357.88 1.02 0.61 - 27 369.21 1.05 0.65 - 28 349.64 0.99 0.59 - 29 306.38 0.87 0.46 - 30 37.08 0.11 0.01 - 31 19.57 0.12 0.02 - 32 11.33 0.07 0.01 - 34 1.77 0.01 0.00 - 35 3.09 0.02 0.00 - 36 1.54 0.01 0.00 - 37 -18.93 0.12 0.02 - 38 2.35 0.01 0.00 - 39 3.09 0.02 0.00 - 40 0.74 0.00 0.00 - 41 1.03 0.01 0.00 - - - Node Results at 51:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 311.42 113.27 0.35 - 2 6.48 307.10 89.74 0.35 - 3 11.34 306.54 106.83 0.28 - 4 6.48 306.13 106.65 0.08 - 5 6.48 306.08 89.30 0.32 - 6 4.05 304.12 77.61 0.32 - 7 3.24 299.74 60.55 0.08 - 8 7.29 299.74 82.22 0.09 - 9 11.34 299.12 51.62 0.08 - 10 4.05 299.74 73.55 0.09 - 11 28.17 298.08 49.00 0.08 - 12 12.96 295.49 37.04 0.08 - 13 1.62 294.71 36.70 0.08 - 14 1.62 294.34 40.88 0.09 - 15 1.62 294.11 45.11 0.09 - 16 16.20 294.21 62.48 0.09 - 17 16.20 294.15 49.46 0.77 - 18 16.20 294.15 84.12 0.75 - 19 4.05 294.16 62.46 0.77 - 20 15.39 294.33 53.87 0.77 - 21 12.96 294.32 62.53 0.78 - 22 8.10 294.32 40.87 0.77 - 23 6.48 293.40 27.47 0.09 - 24 8.91 293.89 45.02 0.09 - 25 4.86 293.16 27.37 0.09 - 27 6.48 293.16 70.70 0.77 - 28 0.00 293.15 79.36 0.09 - 29 5.67 293.15 79.36 0.77 - 30 2.43 293.15 70.69 0.95 - 31 13.77 293.16 44.70 0.77 - 32 13.77 294.15 79.79 0.07 - 33 1.22 294.32 49.53 0.10 - 34 1.22 294.32 45.20 0.93 - 35 0.00 293.15 79.36 0.88 - 36 0.81 293.15 79.36 0.21 - 26 377.40 293.03 25.14 0.76 Tank - - - Link Results at 51:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 530.56 1.51 1.27 - 3 101.81 0.65 0.43 - 4 90.47 0.58 0.35 - 5 83.99 0.24 0.04 - 6 608.07 1.72 1.64 - 7 604.02 1.71 1.62 - 8 11.34 0.03 0.00 - 9 589.44 1.67 1.55 - 10 4.05 0.03 0.00 - 11 578.10 1.64 1.49 - 12 549.93 1.56 1.36 - 13 536.97 1.52 1.30 - 14 446.51 1.27 0.93 - 15 406.01 1.15 0.78 - 16 88.83 0.57 0.34 - 17 -22.41 0.14 0.03 - 18 46.58 0.30 0.10 - 19 7.97 0.02 0.00 - 20 -8.23 0.02 0.00 - 21 26.05 0.17 0.03 - 22 38.88 0.11 0.01 - 23 11.79 0.08 0.01 - 24 -1.17 0.01 0.00 - 25 11.70 0.07 0.01 - 26 417.90 1.19 0.82 - 27 426.81 1.21 0.85 - 28 411.42 1.17 0.80 - 29 377.40 1.07 0.68 - 30 29.16 0.08 0.01 - 31 15.39 0.10 0.01 - 32 8.91 0.06 0.00 - 34 1.39 0.01 0.00 - 35 2.43 0.02 0.00 - 36 1.22 0.01 0.00 - 37 -22.00 0.14 0.03 - 38 1.85 0.01 0.00 - 39 2.43 0.02 0.00 - 40 0.58 0.00 0.00 - 41 0.81 0.01 0.00 - - - Node Results at 52:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 312.66 113.81 0.72 - 2 7.04 308.35 90.28 0.72 - 3 12.32 307.79 107.37 0.62 - 4 7.04 307.38 107.19 0.35 - 5 7.04 307.33 89.84 0.63 - 6 4.40 305.38 78.16 0.63 - 7 3.52 301.05 61.12 0.31 - 8 7.92 301.05 82.78 0.09 - 9 12.32 300.44 52.19 0.31 - 10 4.40 301.05 74.12 0.09 - 11 30.61 299.41 49.57 0.31 - 12 14.08 296.89 37.65 0.31 - 13 1.76 296.13 37.32 0.30 - 14 1.76 295.78 41.50 0.26 - 15 1.76 295.56 45.74 0.22 - 16 17.60 295.63 63.10 0.09 - 17 17.60 295.58 50.08 0.09 - 18 17.60 295.58 84.74 0.75 - 19 4.40 295.59 63.08 0.77 - 20 16.72 295.76 54.49 0.77 - 21 14.08 295.75 63.15 0.76 - 22 8.80 295.75 41.49 0.77 - 23 7.04 294.91 28.13 0.12 - 24 9.68 295.36 45.65 0.15 - 25 5.28 294.69 28.03 0.12 - 27 7.04 294.68 71.36 0.77 - 28 0.00 294.68 80.02 0.09 - 29 6.16 294.68 80.02 0.77 - 30 2.64 294.68 71.35 0.95 - 31 14.96 294.69 45.36 0.77 - 32 14.96 295.58 80.41 0.77 - 33 1.32 295.75 50.15 0.10 - 34 1.32 295.75 45.82 0.93 - 35 0.00 294.68 80.02 0.88 - 36 0.88 294.68 80.02 0.24 - 26 354.80 294.57 25.81 0.75 Tank - - - Link Results at 52:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 529.67 1.50 1.27 - 3 102.14 0.65 0.43 - 4 89.82 0.57 0.34 - 5 82.78 0.23 0.04 - 6 605.41 1.72 1.63 - 7 601.01 1.70 1.60 - 8 12.32 0.03 0.00 - 9 585.17 1.66 1.53 - 10 4.40 0.03 0.00 - 11 572.85 1.63 1.47 - 12 542.24 1.54 1.33 - 13 528.16 1.50 1.26 - 14 438.02 1.24 0.89 - 15 394.02 1.12 0.73 - 16 88.39 0.56 0.33 - 17 -16.23 0.10 0.01 - 18 45.26 0.29 0.10 - 19 11.44 0.03 0.00 - 20 -6.16 0.02 0.00 - 21 25.52 0.16 0.03 - 22 42.24 0.12 0.01 - 23 12.81 0.08 0.01 - 24 -1.27 0.01 0.00 - 25 12.71 0.08 0.01 - 26 398.80 1.13 0.75 - 27 408.48 1.16 0.78 - 28 391.76 1.11 0.73 - 29 354.80 1.01 0.60 - 30 31.68 0.09 0.01 - 31 16.72 0.11 0.02 - 32 9.68 0.06 0.01 - 34 1.52 0.01 0.00 - 35 2.64 0.02 0.00 - 36 1.32 0.01 0.00 - 37 -21.12 0.13 0.02 - 38 2.00 0.01 0.00 - 39 2.64 0.02 0.00 - 40 0.64 0.00 0.00 - 41 0.88 0.01 0.00 - - - Node Results at 53:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 314.41 114.57 0.82 - 2 6.48 310.09 91.03 0.82 - 3 11.34 309.53 108.12 0.79 - 4 6.48 309.12 107.94 0.72 - 5 6.48 309.07 90.59 0.76 - 6 4.05 307.11 78.91 0.75 - 7 3.24 302.73 61.85 0.64 - 8 7.29 302.73 83.51 0.09 - 9 11.34 302.11 52.91 0.64 - 10 4.05 302.73 74.84 0.09 - 11 28.17 301.07 50.29 0.64 - 12 12.96 298.48 38.34 0.63 - 13 1.62 297.70 38.00 0.62 - 14 1.62 297.33 42.17 0.55 - 15 1.62 297.10 46.41 0.47 - 16 16.20 297.20 63.78 0.32 - 17 16.20 297.14 50.76 0.09 - 18 16.20 297.14 85.42 0.60 - 19 4.05 297.15 63.76 0.77 - 20 15.39 297.32 55.17 0.09 - 21 12.96 297.31 63.83 0.76 - 22 8.10 297.31 42.16 0.77 - 23 6.48 296.39 28.77 0.34 - 24 8.91 296.88 46.31 0.38 - 25 4.86 296.15 28.66 0.33 - 27 6.48 296.15 71.99 0.77 - 28 0.00 296.14 80.66 0.31 - 29 5.67 296.14 80.66 0.77 - 30 2.43 296.14 71.99 0.95 - 31 13.77 296.15 46.00 0.09 - 32 13.77 297.14 81.09 0.77 - 33 1.22 297.31 50.83 0.10 - 34 1.22 297.31 46.50 0.93 - 35 0.00 296.14 80.66 0.88 - 36 0.81 296.14 80.66 0.93 - 26 377.40 296.02 26.44 0.73 Tank - - - Link Results at 53:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 530.56 1.51 1.27 - 3 101.81 0.65 0.43 - 4 90.47 0.58 0.35 - 5 83.99 0.24 0.04 - 6 608.07 1.72 1.64 - 7 604.02 1.71 1.62 - 8 11.34 0.03 0.00 - 9 589.44 1.67 1.55 - 10 4.05 0.03 0.00 - 11 578.10 1.64 1.49 - 12 549.93 1.56 1.36 - 13 536.97 1.52 1.30 - 14 446.51 1.27 0.93 - 15 406.01 1.15 0.78 - 16 88.83 0.57 0.34 - 17 -22.41 0.14 0.03 - 18 46.58 0.30 0.10 - 19 7.97 0.02 0.00 - 20 -8.23 0.02 0.00 - 21 26.05 0.17 0.03 - 22 38.88 0.11 0.01 - 23 11.79 0.08 0.01 - 24 -1.17 0.01 0.00 - 25 11.70 0.07 0.01 - 26 417.90 1.19 0.82 - 27 426.81 1.21 0.85 - 28 411.42 1.17 0.80 - 29 377.40 1.07 0.68 - 30 29.16 0.08 0.01 - 31 15.39 0.10 0.01 - 32 8.91 0.06 0.00 - 34 1.39 0.01 0.00 - 35 2.43 0.02 0.00 - 36 1.22 0.01 0.00 - 37 -22.00 0.14 0.03 - 38 1.85 0.01 0.00 - 39 2.43 0.02 0.00 - 40 0.58 0.00 0.00 - 41 0.81 0.01 0.00 - - - Node Results at 54:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -638.85 315.95 115.24 0.92 - 2 6.48 311.64 91.70 0.92 - 3 11.34 311.07 108.79 0.89 - 4 6.48 310.66 108.61 0.82 - 5 6.48 310.62 91.26 0.89 - 6 4.05 308.65 79.57 0.89 - 7 3.24 304.28 62.51 0.76 - 8 7.29 304.27 84.18 0.09 - 9 11.34 303.66 53.58 0.76 - 10 4.05 304.27 75.51 0.20 - 11 28.17 302.61 50.96 0.76 - 12 12.96 300.02 39.01 0.75 - 13 1.62 299.24 38.67 0.74 - 14 1.62 298.87 42.84 0.71 - 15 1.62 298.64 47.07 0.68 - 16 16.20 298.74 64.45 0.63 - 17 16.20 298.68 51.42 0.33 - 18 16.20 298.68 86.09 0.63 - 19 4.05 298.69 64.43 0.09 - 20 15.39 298.86 55.84 0.09 - 21 12.96 298.85 64.50 0.79 - 22 8.10 298.85 42.83 0.77 - 23 6.48 297.94 29.44 0.64 - 24 8.91 298.43 46.98 0.65 - 25 4.86 297.70 29.33 0.64 - 27 6.48 297.69 72.66 0.09 - 28 0.00 297.69 81.32 0.84 - 29 5.67 297.69 81.32 0.77 - 30 2.43 297.69 72.66 0.95 - 31 13.77 297.69 46.66 0.12 - 32 13.77 298.68 81.75 0.77 - 33 1.22 298.85 51.50 0.84 - 34 1.22 298.85 47.16 0.93 - 35 0.00 297.69 81.32 0.38 - 36 0.81 297.69 81.32 0.93 - 26 377.40 297.56 27.11 0.73 Tank - - - Link Results at 54:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 638.85 1.81 1.80 - 2 530.56 1.51 1.27 - 3 101.81 0.65 0.43 - 4 90.47 0.58 0.35 - 5 83.99 0.24 0.04 - 6 608.07 1.72 1.64 - 7 604.02 1.71 1.62 - 8 11.34 0.03 0.00 - 9 589.44 1.67 1.55 - 10 4.05 0.03 0.00 - 11 578.10 1.64 1.49 - 12 549.93 1.56 1.36 - 13 536.97 1.52 1.30 - 14 446.51 1.27 0.93 - 15 406.01 1.15 0.78 - 16 88.83 0.57 0.34 - 17 -22.41 0.14 0.03 - 18 46.58 0.30 0.10 - 19 7.97 0.02 0.00 - 20 -8.23 0.02 0.00 - 21 26.05 0.17 0.03 - 22 38.88 0.11 0.01 - 23 11.79 0.08 0.01 - 24 -1.17 0.01 0.00 - 25 11.70 0.07 0.01 - 26 417.90 1.19 0.82 - 27 426.81 1.21 0.85 - 28 411.42 1.17 0.80 - 29 377.40 1.07 0.68 - 30 29.16 0.08 0.01 - 31 15.39 0.10 0.01 - 32 8.91 0.06 0.00 - 34 1.39 0.01 0.00 - 35 2.43 0.02 0.00 - 36 1.22 0.01 0.00 - 37 -22.00 0.14 0.03 - 38 1.85 0.01 0.00 - 39 2.43 0.02 0.00 - 40 0.58 0.00 0.00 - 41 0.81 0.01 0.00 - - - Node Results at 55:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure Fluoride - Node gpm ft psi mg/L - -------------------------------------------------------- - 1 -666.62 317.29 115.82 1.00 - 2 10.08 312.62 92.13 1.00 - 3 17.64 311.99 109.19 0.98 - 4 10.08 311.58 109.01 0.92 - 5 10.08 311.54 91.66 0.98 - 6 6.30 309.51 79.95 0.97 - 7 5.04 305.02 62.84 0.89 - 8 11.34 305.02 84.50 0.09 - 9 17.64 304.40 53.90 0.89 - 10 6.30 305.02 75.83 0.84 - 11 43.82 303.37 51.29 0.89 - 12 20.16 300.97 39.42 0.89 - 13 2.52 300.27 39.11 0.87 - 14 2.52 299.94 43.30 0.83 - 15 2.52 299.76 47.56 0.76 - 16 25.20 299.78 64.90 0.75 - 17 25.20 299.74 51.88 0.64 - 18 25.20 299.73 86.54 0.63 - 19 6.30 299.74 64.88 0.26 - 20 23.94 299.91 56.29 0.31 - 21 20.16 299.89 64.95 0.79 - 22 12.60 299.89 43.28 0.77 - 23 10.08 299.31 30.03 0.72 - 24 13.86 299.62 47.50 0.73 - 25 7.56 299.17 29.97 0.72 - 27 10.08 299.15 73.29 0.12 - 28 0.00 299.15 81.96 0.84 - 29 8.82 299.15 81.96 0.77 - 30 3.78 299.15 73.29 0.35 - 31 21.42 299.16 47.30 0.33 - 32 21.42 299.73 82.21 0.09 - 33 1.89 299.89 51.95 0.84 - 34 1.89 299.89 47.61 0.93 - 35 0.00 299.15 81.96 0.35 - 36 1.26 299.15 81.96 0.93 - 26 259.92 299.10 27.78 0.73 Tank - - - Link Results at 55:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 1 666.62 1.89 1.94 - 2 548.36 1.56 1.35 - 3 108.18 0.69 0.48 - 4 90.54 0.58 0.35 - 5 80.46 0.23 0.04 - 6 618.74 1.76 1.69 - 7 612.44 1.74 1.66 - 8 17.64 0.05 0.00 - 9 589.76 1.67 1.55 - 10 6.30 0.04 0.00 - 11 572.12 1.62 1.46 - 12 528.30 1.50 1.26 - 13 508.14 1.44 1.18 - 14 418.27 1.19 0.82 - 15 355.27 1.01 0.61 - 16 87.35 0.56 0.33 - 17 15.97 0.10 0.01 - 18 38.76 0.25 0.07 - 19 29.52 0.08 0.01 - 20 4.32 0.01 0.00 - 21 23.40 0.15 0.03 - 22 60.48 0.17 0.02 - 23 18.34 0.12 0.02 - 24 -1.82 0.01 0.00 - 25 18.20 0.12 0.02 - 26 322.92 0.92 0.51 - 27 336.78 0.96 0.55 - 28 312.84 0.89 0.48 - 29 259.92 0.74 0.34 - 30 45.36 0.13 0.01 - 31 23.94 0.15 0.03 - 32 13.86 0.09 0.01 - 34 2.17 0.01 0.00 - 35 3.78 0.02 0.00 - 36 1.89 0.01 0.00 - 37 -17.10 0.11 0.02 - 38 2.87 0.02 0.00 - 39 3.78 0.02 0.00 - 40 0.91 0.01 0.00 - 41 1.26 0.01 0.00 - - Analysis ended Fri Oct 13 13:50:30 2017 diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/performance.json b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/performance.json deleted file mode 100644 index df647f2..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_2/performance.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "duration": 1.045, - "max_memory_MB": 0.0 -} \ No newline at end of file diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/example3.out b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/example3.out deleted file mode 100644 index c227d48..0000000 Binary files a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/example3.out and /dev/null differ diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/example3.rpt b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/example3.rpt deleted file mode 100644 index 6bbe404..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/example3.rpt +++ /dev/null @@ -1,5852 +0,0 @@ - Page 1 Fri Oct 13 13:50:30 2017 - - ****************************************************************** - * E P A N E T * - * Hydraulic and Water Quality * - * Analysis for Pipe Networks * - * Version 2.00.12 * - ****************************************************************** - - Analysis begun Fri Oct 13 13:50:30 2017 - - - Hydraulic Status: - ----------------------------------------------------------------------- - 0:00:00: Balanced after 5 trials - 0:00:00: Reservoir River is emptying - 0:00:00: Reservoir Lake is closed - 0:00:00: Tank 1 is filling at 13.10 ft - 0:00:00: Tank 2 is emptying at 23.50 ft - 0:00:00: Tank 3 is filling at 29.00 ft - - 1:00:00: Pump 10 changed by timer control - 1:00:00: Balanced after 7 trials - 1:00:00: Reservoir Lake is emptying - 1:00:00: Pump 10 changed from closed to open - - 2:00:00: Balanced after 3 trials - 2:00:00: Tank 2 is filling at 20.90 ft - - 3:00:00: Balanced after 2 trials - - 4:00:00: Balanced after 3 trials - - 4:13:33: Pump 335 changed by Tank 1 control - 4:13:33: Pipe 330 changed by Tank 1 control - 4:13:33: Balanced after 4 trials - 4:13:33: Pipe 330 changed from closed to open - 4:13:33: Pump 335 changed from open to closed - - 5:00:00: Balanced after 3 trials - 5:00:00: Tank 3 is emptying at 34.30 ft - - 6:00:00: Balanced after 3 trials - 6:00:00: Tank 3 is filling at 34.12 ft - - 7:00:00: Balanced after 3 trials - - 8:00:00: Balanced after 2 trials - - 9:00:00: Balanced after 3 trials - 9:00:00: Tank 3 is emptying at 35.15 ft - - 10:00:00: Balanced after 2 trials - 10:00:00: Tank 1 is emptying at 22.20 ft - - 11:00:00: Balanced after 3 trials - 11:00:00: Tank 2 is emptying at 27.70 ft - - 12:00:00: Balanced after 2 trials - 12:00:00: Tank 2 is filling at 27.64 ft - - 13:00:00: Balanced after 3 trials - 13:00:00: Tank 1 is filling at 21.73 ft - - 14:00:00: Balanced after 3 trials - - 15:00:00: Pump 10 changed by timer control - 15:00:00: Balanced after 5 trials - 15:00:00: Reservoir Lake is closed - 15:00:00: Tank 1 is emptying at 21.98 ft - 15:00:00: Tank 2 is emptying at 28.20 ft - 15:00:00: Pump 10 changed from open to closed - - 16:00:00: Balanced after 3 trials - - 17:00:00: Balanced after 2 trials - - 18:00:00: Balanced after 3 trials - - 19:00:00: Balanced after 2 trials - - 20:00:00: Balanced after 3 trials - - 21:00:00: Balanced after 2 trials - - 21:19:39: Pump 335 changed by Tank 1 control - 21:19:39: Pipe 330 changed by Tank 1 control - 21:19:39: Balanced after 5 trials - 21:19:39: Tank 1 is filling at 17.10 ft - 21:19:39: Tank 3 is filling at 29.68 ft - 21:19:39: Pipe 330 changed from open to closed - 21:19:39: Pump 335 changed from closed to open - - 22:00:00: Balanced after 3 trials - 22:00:00: Tank 1 is emptying at 17.30 ft - - 23:00:00: Balanced after 3 trials - - 24:00:00: Balanced after 4 trials - 24:00:00: Tank 1 is filling at 15.79 ft - - - Node Results at 0:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 145.52 -0.64 0.00 - 15 620.00 125.81 40.65 0.00 - 20 0.00 158.00 12.57 0.00 - 35 1637.00 145.74 57.73 0.00 - 40 0.00 145.00 5.68 0.00 - 50 0.00 140.00 10.18 0.00 - 60 0.00 209.01 90.56 0.00 - 601 0.00 302.45 131.05 0.00 - 61 0.00 302.45 131.05 0.00 - 101 254.53 145.52 44.86 0.00 - 103 178.49 145.49 44.41 0.00 - 105 181.40 146.83 51.27 0.00 - 107 73.22 146.82 54.09 0.00 - 109 310.08 145.49 54.25 0.00 - 111 190.20 146.11 58.98 0.00 - 113 26.81 146.15 62.46 0.00 - 115 69.81 146.92 57.59 0.00 - 117 157.73 150.03 59.12 0.00 - 119 236.01 157.55 67.40 0.00 - 120 0.00 155.12 67.21 0.00 - 121 55.78 161.01 70.63 0.00 - 123 0.00 165.47 66.93 0.00 - 125 61.10 160.43 64.75 0.00 - 127 23.66 158.74 44.52 0.00 - 129 0.00 158.73 46.68 0.00 - 131 57.28 158.71 66.17 0.00 - 139 7.89 153.08 52.90 0.00 - 141 13.20 149.06 62.85 0.00 - 143 8.31 138.25 61.85 0.00 - 145 37.02 150.28 64.68 0.00 - 147 11.46 151.20 57.50 0.00 - 149 36.27 151.60 58.75 0.00 - 151 193.60 155.44 52.84 0.00 - 153 59.19 155.54 38.71 0.00 - 157 69.40 155.11 61.53 0.00 - 159 55.37 151.76 63.16 0.00 - 161 21.17 149.48 63.04 0.00 - 163 12.62 149.02 62.41 0.00 - 164 0.00 149.02 62.41 0.00 - 166 3.48 149.02 65.44 0.00 - 167 19.51 147.15 65.93 0.00 - 169 0.00 147.15 65.93 0.00 - 171 52.72 146.07 65.03 0.00 - 173 0.00 146.05 65.02 0.00 - 177 77.95 145.73 59.68 0.00 - 179 0.00 145.72 59.67 0.00 - 181 0.00 145.75 59.69 0.00 - 183 0.00 145.72 58.37 0.00 - 184 0.00 144.49 55.68 0.00 - 185 34.37 145.08 55.93 0.00 - 187 0.00 145.78 57.75 0.00 - 189 144.61 146.09 61.57 0.00 - 191 109.75 146.05 52.45 0.00 - 193 95.56 146.15 55.53 0.00 - 195 0.00 146.22 56.64 0.00 - 197 22.83 146.06 53.32 0.00 - 199 159.89 140.83 61.89 0.00 - 201 59.78 140.10 60.66 0.00 - 203 4439.00 139.93 59.77 0.00 - 204 0.00 145.53 53.96 0.00 - 205 87.58 140.80 51.91 0.00 - 206 0.00 139.89 60.18 0.00 - 207 92.98 140.10 56.80 0.00 - 208 0.00 139.67 53.58 0.00 - 209 1.17 139.27 61.21 0.00 - 211 11.62 139.14 57.25 0.00 - 213 18.68 139.07 57.23 0.00 - 215 123.53 138.88 57.14 0.00 - 217 32.45 138.86 57.57 0.00 - 219 55.37 138.85 58.43 0.00 - 225 30.55 138.85 56.70 0.00 - 229 86.00 138.98 55.67 0.00 - 231 22.08 138.97 58.05 0.00 - 237 20.92 139.08 54.20 0.00 - 239 59.78 139.08 54.63 0.00 - 241 0.00 139.09 54.63 0.00 - 243 5.82 139.08 54.20 0.00 - 247 94.31 139.09 52.47 0.00 - 249 0.00 139.09 52.47 0.00 - 251 32.37 139.10 47.27 0.00 - 253 73.06 139.22 44.72 0.00 - 255 54.12 139.27 48.65 0.00 - 257 0.00 152.00 58.49 0.00 - 259 0.00 151.56 54.84 0.00 - 261 0.00 149.98 64.99 0.00 - 263 0.00 149.82 64.92 0.00 - 265 0.00 147.75 64.02 0.00 - 267 0.00 146.17 54.24 0.00 - 269 0.00 146.49 63.48 0.00 - 271 0.00 145.84 60.59 0.00 - 273 0.00 140.80 57.54 0.00 - 275 0.00 140.10 56.37 0.00 - River -13157.88 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 460.32 145.00 5.68 0.00 Tank - 2 -329.21 140.00 10.18 0.00 Tank - 3 2246.30 158.00 12.57 0.00 Tank - - - Link Results at 0:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -2246.30 0.09 0.00 - 40 -460.32 0.02 0.00 - 50 329.21 0.01 0.00 - 60 13157.88 9.33 8.93 - 101 0.00 0.00 0.00 - 103 168.06 0.27 0.02 - 105 -422.59 1.20 0.51 - 107 32.30 0.09 0.00 - 109 -10.43 0.02 0.00 - 111 -320.51 0.91 0.31 - 112 498.35 1.41 0.70 - 113 -80.63 0.23 0.02 - 114 124.37 0.79 0.38 - 115 -40.92 0.26 0.05 - 116 16.93 0.05 0.00 - 117 636.29 1.81 1.10 - 119 -733.46 2.08 1.43 - 120 1159.13 3.29 3.33 - 121 1039.29 2.95 2.72 - 122 368.34 2.35 2.87 - 123 9821.71 4.46 1.73 - 125 13157.88 5.97 2.97 - 129 2912.04 2.07 0.63 - 131 2634.65 1.87 0.52 - 133 -2246.30 2.29 0.94 - 135 364.69 0.26 0.01 - 137 57.28 0.09 0.00 - 145 307.41 1.96 2.06 - 147 299.51 1.91 1.96 - 149 -628.31 4.01 7.72 - 151 -620.00 3.96 7.54 - 153 341.99 0.97 0.35 - 155 379.02 1.08 0.42 - 159 -390.47 1.11 0.44 - 161 -426.75 2.72 3.77 - 163 -157.09 0.45 0.08 - 169 216.28 1.38 1.07 - 171 463.26 1.31 0.61 - 173 7963.30 3.61 1.17 - 175 7893.91 3.58 1.15 - 177 7838.54 3.56 1.14 - 179 7565.72 3.43 1.07 - 180 3.48 0.01 0.00 - 181 3.48 0.01 0.00 - 183 7341.33 3.33 1.01 - 185 -19.51 0.12 0.01 - 186 340.16 2.17 2.48 - 187 6708.97 3.05 0.85 - 189 4690.03 2.13 0.44 - 191 -1966.23 1.39 0.30 - 193 -1637.00 1.16 0.22 - 195 473.47 1.34 0.63 - 197 395.52 1.12 0.45 - 199 -64.80 0.18 0.02 - 201 -460.32 1.31 0.60 - 202 541.82 3.46 5.87 - 203 236.03 1.51 1.26 - 204 541.82 1.54 0.81 - 205 340.16 0.96 0.34 - 207 300.83 0.85 0.27 - 209 160.66 1.03 0.62 - 211 612.84 1.74 1.02 - 213 179.50 0.51 0.11 - 215 137.51 0.39 0.06 - 217 -243.80 0.69 0.19 - 219 -251.65 0.71 0.20 - 221 251.65 1.61 1.42 - 223 45.44 0.13 0.01 - 225 68.28 0.19 0.02 - 229 4690.03 3.33 1.30 - 231 4419.40 3.13 1.17 - 233 4439.00 3.15 1.37 - 235 110.74 0.31 0.04 - 237 453.73 1.29 0.59 - 238 392.62 1.11 0.45 - 239 31.87 0.09 0.00 - 240 392.62 1.11 0.45 - 241 392.62 1.11 0.45 - 243 391.45 0.62 0.11 - 245 298.08 0.48 0.07 - 247 241.91 0.39 0.05 - 249 118.38 0.19 0.01 - 251 55.37 0.12 0.01 - 257 30.55 0.09 0.00 - 261 37.49 0.24 0.04 - 263 22.08 0.06 0.00 - 269 81.76 0.23 0.02 - 271 70.60 0.45 0.13 - 273 -9.76 0.03 0.00 - 275 -22.78 0.06 0.00 - 277 5.82 0.02 0.00 - 281 -28.60 0.12 0.01 - 283 -46.75 0.13 0.01 - 285 2.62 0.01 0.00 - 287 -125.53 0.51 0.13 - 289 329.21 1.34 0.79 - 291 73.06 0.30 0.05 - 293 76.50 0.49 0.16 - 295 -44.13 0.13 0.01 - 297 488.19 3.12 4.84 - 299 234.55 1.50 1.25 - 301 234.55 1.50 1.25 - 303 253.64 1.62 1.44 - 305 148.10 0.42 0.07 - 307 401.74 1.14 0.47 - 309 208.28 1.33 1.00 - 311 -70.78 0.20 0.02 - 313 468.60 1.33 0.62 - 315 -2110.47 1.50 0.35 - 317 111.25 0.71 0.31 - 319 -0.51 0.00 0.00 - 321 7549.61 3.43 1.06 - 323 -79.37 0.23 0.02 - 325 144.25 0.92 0.51 - 329 13157.88 5.97 3.01 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 0.00 0.00 0.00 Pump - 335 13157.88 0.00 -93.44 Pump - - - Node Results at 1:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 239.70 40.17 0.00 - 15 620.00 126.77 41.07 0.00 - 20 0.00 158.85 12.94 0.00 - 35 1706.00 148.70 59.02 0.00 - 40 0.00 145.65 5.96 0.00 - 50 0.00 138.66 9.60 0.00 - 60 0.00 209.16 90.63 0.00 - 601 0.00 303.45 131.48 0.00 - 61 0.00 303.45 131.48 0.00 - 101 368.50 172.80 56.68 0.00 - 103 258.41 170.18 55.11 0.00 - 105 262.62 163.49 58.49 0.00 - 107 106.00 162.76 60.99 0.00 - 109 448.92 164.39 62.43 0.00 - 111 275.36 157.94 64.10 0.00 - 113 38.82 155.99 66.72 0.00 - 115 101.07 158.76 62.73 0.00 - 117 228.36 160.57 63.68 0.00 - 119 341.69 161.00 68.89 0.00 - 120 0.00 161.00 69.76 0.00 - 121 80.76 163.91 71.89 0.00 - 123 0.00 168.30 68.16 0.00 - 125 88.46 162.96 65.84 0.00 - 127 34.26 160.15 45.13 0.00 - 129 0.00 160.13 47.29 0.00 - 131 82.93 160.09 66.77 0.00 - 139 11.43 154.24 53.40 0.00 - 141 19.11 150.14 63.32 0.00 - 143 12.03 139.21 62.27 0.00 - 145 53.60 151.40 65.17 0.00 - 147 16.59 152.43 58.03 0.00 - 149 52.52 152.88 59.31 0.00 - 151 280.29 157.50 53.73 0.00 - 153 85.69 157.58 39.59 0.00 - 157 100.47 158.53 63.01 0.00 - 159 80.16 155.16 64.63 0.00 - 161 30.65 152.88 64.51 0.00 - 163 18.27 152.40 63.87 0.00 - 164 0.00 152.40 63.87 0.00 - 166 5.04 152.40 66.90 0.00 - 167 28.25 150.40 67.33 0.00 - 169 0.00 150.40 67.33 0.00 - 171 76.32 149.09 66.33 0.00 - 173 0.00 149.06 66.32 0.00 - 177 112.85 148.67 60.95 0.00 - 179 0.00 148.65 60.94 0.00 - 181 0.00 148.71 60.97 0.00 - 183 0.00 148.77 59.70 0.00 - 184 0.00 147.69 57.06 0.00 - 185 49.76 148.50 57.41 0.00 - 187 0.00 150.17 59.65 0.00 - 189 209.36 150.11 63.31 0.00 - 191 158.89 152.75 55.36 0.00 - 193 138.34 152.77 58.40 0.00 - 195 0.00 152.77 59.48 0.00 - 197 33.06 154.17 56.84 0.00 - 199 231.48 142.74 62.71 0.00 - 201 86.54 141.88 61.43 0.00 - 203 4531.00 141.71 60.54 0.00 - 204 0.00 149.58 55.71 0.00 - 205 126.80 142.64 52.71 0.00 - 206 0.00 140.85 60.60 0.00 - 207 134.62 141.50 57.41 0.00 - 208 0.00 140.12 53.78 0.00 - 209 1.69 138.84 61.03 0.00 - 211 16.82 138.42 56.94 0.00 - 213 27.04 138.27 56.88 0.00 - 215 178.85 137.89 56.71 0.00 - 217 46.99 137.85 57.13 0.00 - 219 80.16 137.82 57.99 0.00 - 225 44.23 137.83 56.26 0.00 - 229 124.51 137.87 55.19 0.00 - 231 31.97 137.86 57.57 0.00 - 237 30.28 137.98 53.72 0.00 - 239 86.54 137.94 54.14 0.00 - 241 0.00 137.94 54.14 0.00 - 243 8.42 137.94 53.70 0.00 - 247 136.54 137.94 51.97 0.00 - 249 0.00 137.94 51.97 0.00 - 251 46.87 137.94 46.77 0.00 - 253 105.77 137.91 44.16 0.00 - 255 78.36 138.01 48.10 0.00 - 257 0.00 161.04 62.41 0.00 - 259 0.00 161.08 58.96 0.00 - 261 0.00 161.02 69.77 0.00 - 263 0.00 161.25 69.87 0.00 - 265 0.00 151.07 65.46 0.00 - 267 0.00 151.32 56.47 0.00 - 269 0.00 150.16 65.06 0.00 - 271 0.00 148.82 61.88 0.00 - 273 0.00 142.65 58.34 0.00 - 275 0.00 141.86 57.13 0.00 - River -13062.03 220.00 0.00 0.00 Reservoir - Lake -3435.20 167.00 0.00 100.00 Reservoir - 1 996.56 145.65 5.96 0.00 Tank - 2 -307.71 138.66 9.60 0.00 Tank - 3 3038.04 158.85 12.94 0.00 Tank - - - Link Results at 1:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -3038.04 0.13 0.00 - 40 -996.56 0.04 0.00 - 50 307.71 0.01 0.00 - 60 13062.03 9.26 8.81 - 101 3435.20 4.33 4.71 - 103 1846.16 2.95 1.94 - 105 1220.53 3.46 3.67 - 107 413.09 1.17 0.49 - 109 1587.75 2.53 1.47 - 111 1138.84 3.23 3.22 - 112 503.62 1.43 0.71 - 113 655.73 1.86 1.16 - 114 248.60 1.59 1.39 - 115 307.09 1.96 2.05 - 116 865.52 2.46 1.94 - 117 -544.83 1.55 0.82 - 119 -546.21 1.55 0.83 - 120 -21.77 0.06 0.00 - 121 274.75 0.78 0.23 - 122 251.51 1.61 1.42 - 123 8943.91 4.06 1.45 - 125 13062.03 5.93 2.93 - 129 3785.85 2.68 1.02 - 131 3469.58 2.46 0.87 - 133 -3038.04 3.10 1.65 - 135 397.28 0.28 0.02 - 137 82.93 0.13 0.01 - 145 314.34 2.01 2.14 - 147 302.92 1.93 2.00 - 149 -632.03 4.03 7.81 - 151 -620.00 3.96 7.54 - 153 348.22 0.99 0.36 - 155 401.82 1.14 0.47 - 159 -418.41 1.19 0.50 - 161 -470.93 3.01 4.53 - 163 -142.12 0.40 0.07 - 169 227.81 1.45 1.18 - 171 609.10 1.73 1.01 - 173 8014.88 3.64 1.19 - 175 7914.41 3.59 1.16 - 177 7834.25 3.56 1.14 - 179 7762.99 3.52 1.12 - 180 5.04 0.01 0.00 - 181 5.04 0.01 0.00 - 183 7817.51 3.55 1.13 - 185 -28.25 0.18 0.02 - 186 542.85 3.46 5.89 - 187 7431.51 3.37 1.03 - 189 5205.59 2.36 0.53 - 191 -2149.60 1.52 0.36 - 193 -1706.00 1.21 0.23 - 195 656.05 1.86 1.16 - 197 543.20 1.54 0.82 - 199 -453.37 1.29 0.59 - 201 -996.56 2.83 2.52 - 202 642.17 4.10 8.04 - 203 149.08 0.95 0.54 - 204 642.17 1.82 1.12 - 205 542.85 1.54 0.82 - 207 602.45 1.71 0.99 - 209 -65.68 0.42 0.12 - 211 357.75 1.01 0.38 - 213 608.54 1.73 1.01 - 215 600.83 1.70 0.99 - 217 -89.12 0.25 0.03 - 219 -40.61 0.12 0.01 - 221 40.61 0.26 0.05 - 223 678.31 1.92 1.24 - 225 711.36 2.02 1.35 - 229 5205.59 3.69 1.58 - 231 4783.02 3.39 1.35 - 233 4531.00 3.21 1.42 - 235 191.09 0.54 0.12 - 237 587.22 1.67 0.95 - 238 737.33 2.09 1.44 - 239 284.72 0.81 0.25 - 240 737.33 2.09 1.44 - 241 737.33 2.09 1.44 - 243 735.64 1.17 0.35 - 245 460.16 0.73 0.15 - 247 350.23 0.56 0.09 - 249 171.38 0.27 0.02 - 251 80.16 0.17 0.01 - 257 44.23 0.13 0.01 - 261 82.88 0.53 0.18 - 263 31.97 0.09 0.00 - 269 258.66 0.73 0.21 - 271 73.60 0.47 0.15 - 273 154.79 0.44 0.08 - 275 30.78 0.09 0.00 - 277 8.42 0.02 0.00 - 281 22.36 0.09 0.01 - 283 37.46 0.11 0.01 - 285 -38.38 0.11 0.01 - 287 -75.79 0.31 0.05 - 289 307.71 1.26 0.69 - 291 105.77 0.43 0.10 - 293 47.79 0.31 0.07 - 295 -0.92 0.00 0.00 - 297 -45.01 0.29 0.06 - 299 -66.18 0.42 0.12 - 301 -66.18 0.42 0.12 - 303 21.17 0.14 0.01 - 305 -499.82 1.42 0.70 - 307 -478.65 1.36 0.65 - 309 -77.84 0.50 0.16 - 311 678.67 1.93 1.24 - 313 145.30 0.41 0.07 - 315 -2362.05 1.68 0.43 - 317 119.24 0.76 0.36 - 319 71.85 0.20 0.02 - 321 7739.67 3.51 1.11 - 323 165.48 0.47 0.09 - 325 212.45 1.36 1.04 - 329 13062.03 5.93 2.97 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 3435.20 0.00 -72.70 Pump - 335 13062.03 0.00 -94.29 Pump - - - Node Results at 2:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 241.37 40.89 100.00 - 15 620.00 130.44 42.65 0.00 - 20 0.00 160.01 13.44 0.00 - 35 1719.00 151.70 60.32 0.00 - 40 0.00 147.06 6.57 0.00 - 50 0.00 137.40 9.06 0.00 - 60 0.00 209.30 90.69 0.00 - 601 0.00 304.38 131.89 0.00 - 61 0.00 304.38 131.89 0.00 - 101 277.33 178.21 59.02 7.12 - 103 194.47 175.75 57.52 0.00 - 105 197.64 168.17 60.52 0.00 - 107 79.77 167.47 63.03 0.00 - 109 337.84 169.97 64.85 0.00 - 111 207.23 162.31 65.99 0.00 - 113 29.21 160.04 68.48 0.00 - 115 76.07 162.94 64.53 0.00 - 117 171.86 164.13 65.22 0.00 - 119 257.15 164.00 70.20 0.00 - 120 0.00 164.18 71.14 0.00 - 121 60.78 166.61 73.06 0.00 - 123 0.00 170.95 69.31 0.00 - 125 66.58 165.43 66.92 0.00 - 127 25.78 161.80 45.84 0.00 - 129 0.00 161.79 48.00 0.00 - 131 62.42 161.76 67.49 0.00 - 139 8.60 157.04 54.61 0.00 - 141 14.38 153.71 64.87 0.00 - 143 9.05 142.87 63.86 0.00 - 145 40.34 155.14 66.79 0.00 - 147 12.48 156.22 59.67 0.00 - 149 39.52 156.68 60.96 0.00 - 151 210.94 161.19 55.33 0.00 - 153 64.49 161.26 41.19 0.00 - 157 75.61 161.59 64.34 0.00 - 159 60.33 158.28 65.98 0.00 - 161 23.07 156.03 65.87 0.00 - 163 13.75 155.54 65.23 0.00 - 164 0.00 155.54 65.23 0.00 - 166 3.80 155.54 68.26 0.00 - 167 21.26 153.50 68.68 0.00 - 169 0.00 153.50 68.68 0.00 - 171 57.44 152.14 67.66 0.00 - 173 0.00 152.12 67.65 0.00 - 177 84.93 151.66 62.25 0.00 - 179 0.00 151.62 62.23 0.00 - 181 0.00 151.71 62.27 0.00 - 183 0.00 151.78 61.00 0.00 - 184 0.00 150.78 58.40 0.00 - 185 37.45 151.59 58.75 0.00 - 187 0.00 153.39 61.05 0.00 - 189 157.56 153.30 64.69 0.00 - 191 119.57 156.32 56.90 0.00 - 193 104.11 156.32 59.93 0.00 - 195 0.00 156.31 61.01 0.00 - 197 24.88 157.99 58.49 0.00 - 199 174.21 145.76 64.03 0.00 - 201 65.13 144.90 62.74 0.00 - 203 4511.00 144.73 61.84 0.00 - 204 0.00 152.76 57.09 0.00 - 205 95.43 145.63 54.00 0.00 - 206 0.00 143.29 61.65 0.00 - 207 101.31 144.26 58.61 0.00 - 208 0.00 142.18 54.67 0.00 - 209 1.27 140.26 61.64 0.00 - 211 12.66 139.62 57.46 0.00 - 213 20.35 139.49 57.41 0.00 - 215 134.60 139.26 57.31 0.00 - 217 35.36 139.24 57.73 0.00 - 219 60.33 139.22 58.59 0.00 - 225 33.29 139.23 56.86 0.00 - 229 93.70 138.32 55.38 0.00 - 231 24.06 138.31 57.77 0.00 - 237 22.79 138.30 53.86 0.00 - 239 65.13 137.96 54.15 0.00 - 241 0.00 137.96 54.15 0.00 - 243 6.34 137.96 53.71 0.00 - 247 102.75 137.88 51.94 0.00 - 249 0.00 137.88 51.94 0.00 - 251 35.27 137.79 46.71 0.00 - 253 79.60 137.47 43.97 0.00 - 255 58.97 137.53 47.89 0.00 - 257 0.00 164.52 63.92 0.00 - 259 0.00 164.60 60.49 0.00 - 261 0.00 164.62 71.33 0.00 - 263 0.00 164.93 71.46 0.00 - 265 0.00 154.19 66.81 0.00 - 267 0.00 154.63 57.90 0.00 - 269 0.00 153.32 66.43 0.00 - 271 0.00 151.84 63.19 0.00 - 273 0.00 145.65 59.65 0.00 - 275 0.00 144.84 58.43 0.00 - River -12972.12 220.00 0.00 0.00 Reservoir - Lake -3330.25 167.00 0.00 100.00 Reservoir - 1 1249.69 147.06 6.57 0.00 Tank - 2 132.71 137.40 9.06 0.00 Tank - 3 3619.73 160.01 13.44 0.00 Tank - - - Link Results at 2:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -3619.73 0.15 0.00 - 40 -1249.69 0.05 0.00 - 50 -132.71 0.01 0.00 - 60 12972.12 9.20 8.70 - 101 3330.25 4.20 4.45 - 103 1781.95 2.84 1.82 - 105 1270.97 3.61 3.95 - 107 408.15 1.16 0.48 - 109 1587.48 2.53 1.47 - 111 1249.64 3.54 3.83 - 112 434.96 1.23 0.54 - 113 711.21 2.02 1.35 - 114 254.36 1.62 1.45 - 115 328.38 2.10 2.32 - 116 936.35 2.66 2.24 - 117 -665.18 1.89 1.19 - 119 -437.00 1.24 0.55 - 120 -284.45 0.81 0.25 - 121 89.36 0.25 0.03 - 122 228.14 1.46 1.18 - 123 8430.48 3.83 1.30 - 125 12972.12 5.89 2.89 - 129 4252.72 3.02 1.26 - 131 3987.51 2.83 1.12 - 133 -3619.73 3.70 2.28 - 135 342.00 0.24 0.01 - 137 62.42 0.10 0.00 - 145 279.58 1.78 1.72 - 147 270.98 1.73 1.63 - 149 -629.05 4.02 7.74 - 151 -620.00 3.96 7.54 - 153 372.45 1.06 0.41 - 155 412.79 1.17 0.49 - 159 -425.27 1.21 0.52 - 161 -464.80 2.97 4.42 - 163 -134.15 0.38 0.06 - 169 198.64 1.27 0.92 - 171 541.59 1.54 0.81 - 173 7916.19 3.59 1.16 - 175 7840.58 3.56 1.14 - 177 7780.25 3.53 1.12 - 179 7824.07 3.55 1.13 - 180 3.80 0.01 0.00 - 181 3.80 0.01 0.00 - 183 7911.57 3.59 1.16 - 185 -21.26 0.14 0.01 - 186 565.05 3.61 6.35 - 187 7579.96 3.44 1.07 - 189 5218.04 2.37 0.54 - 191 -2304.48 1.63 0.41 - 193 -1719.00 1.22 0.24 - 195 809.88 2.30 1.72 - 197 724.95 2.06 1.40 - 199 -524.74 1.49 0.77 - 201 -1249.69 3.55 3.83 - 202 648.21 4.14 8.18 - 203 120.61 0.77 0.36 - 204 648.21 1.84 1.14 - 205 565.05 1.60 0.88 - 207 645.35 1.83 1.13 - 209 -84.93 0.54 0.19 - 211 310.35 0.88 0.29 - 213 649.98 1.84 1.14 - 215 632.03 1.79 1.08 - 217 -28.28 0.08 0.00 - 219 66.88 0.19 0.02 - 221 -66.88 0.43 0.12 - 223 741.27 2.10 1.46 - 225 766.15 2.17 1.55 - 229 5218.04 3.70 1.59 - 231 4825.72 3.42 1.37 - 233 4511.00 3.20 1.41 - 235 218.11 0.62 0.15 - 237 649.94 1.84 1.14 - 238 919.18 2.61 2.17 - 239 370.55 1.05 0.40 - 240 919.18 2.61 2.17 - 241 919.18 2.61 2.17 - 243 917.91 1.46 0.53 - 245 431.87 0.69 0.13 - 247 263.57 0.42 0.05 - 249 128.98 0.21 0.01 - 251 60.33 0.13 0.01 - 257 33.29 0.09 0.00 - 261 147.95 0.94 0.53 - 263 24.06 0.07 0.00 - 269 473.37 1.34 0.63 - 271 -30.18 0.19 0.03 - 273 480.77 1.36 0.65 - 275 159.60 0.45 0.08 - 277 6.34 0.02 0.00 - 281 153.26 0.63 0.19 - 283 256.04 0.73 0.20 - 285 -125.43 0.36 0.05 - 287 175.94 0.72 0.25 - 289 -132.71 0.54 0.15 - 291 79.60 0.33 0.06 - 293 -95.33 0.61 0.24 - 295 130.61 0.37 0.06 - 297 -145.68 0.93 0.52 - 299 -95.49 0.61 0.24 - 301 -95.49 0.61 0.24 - 303 -50.19 0.32 0.07 - 305 -519.50 1.47 0.75 - 307 -569.68 1.62 0.89 - 309 -105.05 0.67 0.28 - 311 737.08 2.09 1.44 - 313 85.96 0.24 0.03 - 315 -2528.88 1.79 0.48 - 317 120.96 0.77 0.37 - 319 97.15 0.28 0.03 - 321 7806.52 3.54 1.13 - 323 249.59 0.71 0.19 - 325 224.40 1.43 1.15 - 329 12972.12 5.89 2.93 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 3330.25 0.00 -74.37 Pump - 335 12972.12 0.00 -95.08 Pump - - - Node Results at 3:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 241.72 41.04 100.00 - 15 620.00 131.79 43.24 0.00 - 20 0.00 161.38 14.03 0.00 - 35 1719.00 152.98 60.87 0.00 - 40 0.00 148.83 7.33 0.00 - 50 0.00 137.94 9.29 0.00 - 60 0.00 209.36 90.72 0.00 - 601 0.00 304.81 132.07 0.00 - 61 0.00 304.81 132.07 0.00 - 101 273.53 179.34 59.51 100.00 - 103 191.81 176.92 58.03 100.00 - 105 194.93 169.41 61.06 100.00 - 107 78.68 168.71 63.57 100.00 - 109 333.22 171.19 65.38 100.00 - 111 204.39 163.57 66.54 74.47 - 113 28.81 161.31 69.03 29.92 - 115 75.02 164.20 65.08 42.58 - 117 169.50 165.40 65.77 85.32 - 119 253.63 165.27 70.75 0.00 - 120 0.00 165.45 71.69 0.00 - 121 59.95 167.87 73.61 0.00 - 123 0.00 172.19 69.84 0.00 - 125 65.66 166.72 67.47 0.00 - 127 25.43 163.14 46.42 0.00 - 129 0.00 163.13 48.59 0.00 - 131 61.56 163.11 68.07 0.00 - 139 8.48 158.39 55.20 0.00 - 141 14.18 155.06 65.45 0.00 - 143 8.93 144.22 64.44 0.00 - 145 39.79 156.48 67.37 0.00 - 147 12.31 157.56 60.26 0.00 - 149 38.98 158.02 61.54 0.00 - 151 208.05 162.50 55.90 0.00 - 153 63.60 162.57 41.76 0.00 - 157 74.58 162.86 64.89 0.00 - 159 59.50 159.54 66.53 0.00 - 161 22.75 157.29 66.42 0.00 - 163 13.56 156.80 65.78 0.00 - 164 0.00 156.80 65.78 0.00 - 166 3.74 156.80 68.81 0.00 - 167 20.97 154.76 69.22 0.00 - 169 0.00 154.76 69.22 0.00 - 171 56.65 153.40 68.20 0.00 - 173 0.00 153.37 68.19 0.00 - 177 83.76 152.94 62.80 0.00 - 179 0.00 152.90 62.79 0.00 - 181 0.00 152.98 62.82 0.00 - 183 0.00 153.06 61.55 0.00 - 184 0.00 152.01 58.93 0.00 - 185 36.94 152.85 59.30 0.00 - 187 0.00 154.66 61.60 0.00 - 189 155.40 154.56 65.24 0.00 - 191 117.94 157.59 57.45 0.03 - 193 102.69 157.59 60.48 0.90 - 195 0.00 157.58 61.56 0.00 - 197 24.54 159.26 59.04 3.73 - 199 171.82 146.84 64.49 0.00 - 201 64.24 145.95 63.20 0.00 - 203 4582.00 145.78 62.30 0.00 - 204 0.00 154.02 57.64 0.00 - 205 94.12 146.71 54.47 0.00 - 206 0.00 144.27 62.08 0.00 - 207 99.92 145.29 59.05 0.00 - 208 0.00 143.12 55.08 0.00 - 209 1.25 141.12 62.01 0.00 - 211 12.48 140.45 57.82 0.00 - 213 20.07 140.31 57.76 0.00 - 215 132.75 140.09 57.67 0.00 - 217 34.88 140.07 58.09 0.00 - 219 59.50 140.06 58.95 0.00 - 225 32.83 140.06 57.22 0.00 - 229 92.42 139.06 55.70 0.00 - 231 23.73 139.05 58.09 0.00 - 237 22.48 139.02 54.17 0.00 - 239 64.24 138.66 54.45 0.00 - 241 0.00 138.65 54.45 0.00 - 243 6.25 138.65 54.01 0.00 - 247 101.35 138.56 52.24 0.00 - 249 0.00 138.56 52.24 0.00 - 251 34.79 138.46 47.00 0.00 - 253 78.51 138.08 44.23 0.00 - 255 58.16 138.14 48.16 0.00 - 257 0.00 165.78 64.47 0.00 - 259 0.00 165.86 61.04 0.00 - 261 0.00 165.88 71.88 100.00 - 263 0.00 166.19 72.01 100.00 - 265 0.00 155.44 67.35 0.00 - 267 0.00 155.90 58.45 0.00 - 269 0.00 154.58 66.98 0.00 - 271 0.00 153.10 63.74 0.00 - 273 0.00 146.73 60.11 0.00 - 275 0.00 145.89 58.88 0.00 - River -12929.88 220.00 0.00 0.00 Reservoir - Lake -3307.91 167.00 0.00 100.00 Reservoir - 1 1176.83 148.83 7.33 0.00 Tank - 2 164.68 137.94 9.29 0.00 Tank - 3 3586.00 161.38 14.03 0.00 Tank - - - Link Results at 3:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -3586.00 0.15 0.00 - 40 -1176.83 0.05 0.00 - 50 -164.68 0.01 0.00 - 60 12929.88 9.17 8.64 - 101 3307.91 4.17 4.39 - 103 1770.64 2.83 1.80 - 105 1263.74 3.58 3.91 - 107 406.20 1.15 0.48 - 109 1578.84 2.52 1.45 - 111 1245.62 3.53 3.81 - 112 435.35 1.24 0.54 - 113 710.77 2.02 1.35 - 114 254.28 1.62 1.45 - 115 327.52 2.09 2.31 - 116 936.24 2.66 2.24 - 117 -662.60 1.88 1.18 - 119 -437.14 1.24 0.55 - 120 -283.99 0.81 0.25 - 121 89.07 0.25 0.03 - 122 228.03 1.46 1.18 - 123 8425.90 3.82 1.30 - 125 12929.88 5.87 2.88 - 129 4216.00 2.99 1.24 - 131 3952.43 2.80 1.10 - 133 -3586.00 3.66 2.24 - 135 341.00 0.24 0.01 - 137 61.56 0.10 0.00 - 145 279.44 1.78 1.72 - 147 270.95 1.73 1.63 - 149 -628.93 4.01 7.74 - 151 -620.00 3.96 7.54 - 153 372.16 1.06 0.41 - 155 411.94 1.17 0.49 - 159 -424.26 1.20 0.52 - 161 -463.24 2.96 4.39 - 163 -134.31 0.38 0.06 - 169 197.91 1.26 0.91 - 171 536.98 1.52 0.80 - 173 7919.28 3.59 1.16 - 175 7844.70 3.56 1.14 - 177 7785.20 3.53 1.12 - 179 7830.43 3.55 1.14 - 180 3.74 0.01 0.00 - 181 3.74 0.01 0.00 - 183 7919.10 3.59 1.16 - 185 -20.97 0.13 0.01 - 186 566.46 3.62 6.38 - 187 7593.28 3.45 1.07 - 189 5293.89 2.40 0.55 - 191 -2242.74 1.59 0.39 - 193 -1719.00 1.22 0.24 - 195 747.76 2.12 1.48 - 197 664.00 1.88 1.19 - 199 -512.83 1.45 0.74 - 201 -1176.83 3.34 3.43 - 202 658.59 4.20 8.43 - 203 129.06 0.82 0.41 - 204 658.59 1.87 1.17 - 205 566.46 1.61 0.88 - 207 641.90 1.82 1.12 - 209 -84.29 0.54 0.19 - 211 304.86 0.86 0.28 - 213 650.76 1.85 1.14 - 215 632.17 1.79 1.08 - 217 -27.42 0.08 0.00 - 219 67.98 0.19 0.02 - 221 -67.98 0.43 0.13 - 223 741.27 2.10 1.46 - 225 765.81 2.17 1.55 - 229 5293.89 3.75 1.63 - 231 4901.49 3.48 1.41 - 233 4582.00 3.25 1.45 - 235 220.58 0.63 0.15 - 237 662.06 1.88 1.18 - 238 940.38 2.67 2.26 - 239 378.24 1.07 0.42 - 240 940.38 2.67 2.26 - 241 940.38 2.67 2.26 - 243 939.13 1.50 0.56 - 245 433.96 0.69 0.13 - 247 259.96 0.41 0.05 - 249 127.21 0.20 0.01 - 251 59.50 0.12 0.01 - 257 32.83 0.09 0.00 - 261 153.92 0.98 0.57 - 263 23.73 0.07 0.00 - 269 492.68 1.40 0.68 - 271 -37.77 0.24 0.04 - 273 507.98 1.44 0.72 - 275 170.07 0.48 0.10 - 277 6.25 0.02 0.00 - 281 163.82 0.67 0.22 - 283 273.67 0.78 0.23 - 285 -132.45 0.38 0.06 - 287 194.92 0.80 0.30 - 289 -164.68 0.67 0.22 - 291 78.51 0.32 0.06 - 293 -106.43 0.68 0.29 - 295 141.22 0.40 0.07 - 297 -145.03 0.93 0.51 - 299 -95.14 0.61 0.23 - 301 -95.14 0.61 0.23 - 303 -49.89 0.32 0.07 - 305 -517.57 1.47 0.75 - 307 -567.46 1.61 0.89 - 309 -105.98 0.68 0.29 - 311 738.15 2.09 1.44 - 313 80.84 0.23 0.02 - 315 -2466.76 1.75 0.46 - 317 122.99 0.79 0.38 - 319 97.59 0.28 0.03 - 321 7813.12 3.55 1.13 - 323 255.25 0.72 0.20 - 325 224.02 1.43 1.14 - 329 12929.88 5.87 2.91 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 3307.91 0.00 -74.72 Pump - 335 12929.88 0.00 -95.45 Pump - - - Node Results at 4:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 244.31 42.16 100.00 - 15 620.00 136.89 45.45 0.00 - 20 0.00 162.74 14.62 0.00 - 35 1791.00 157.83 62.97 0.00 - 40 0.00 150.49 8.05 16.76 - 50 0.00 138.61 9.58 0.00 - 60 0.00 209.57 90.81 0.00 - 601 0.00 306.26 132.70 0.00 - 61 0.00 306.26 132.70 0.00 - 101 144.36 187.67 63.12 100.00 - 103 101.23 185.48 61.74 100.00 - 105 102.88 176.88 64.29 100.00 - 107 41.53 176.18 66.81 100.00 - 109 175.86 179.80 69.11 100.00 - 111 107.87 170.38 69.49 97.83 - 113 15.21 167.75 71.82 96.09 - 115 39.60 170.71 67.90 91.61 - 117 89.46 171.11 68.25 85.32 - 119 133.86 169.89 72.74 0.78 - 120 0.00 170.71 73.97 26.11 - 121 31.64 172.05 75.42 0.00 - 123 0.00 176.28 71.62 0.00 - 125 34.66 170.49 69.11 0.00 - 127 13.42 165.42 47.41 0.00 - 129 0.00 165.42 49.58 0.00 - 131 32.49 165.41 69.07 0.00 - 139 4.48 162.28 56.88 0.00 - 141 7.49 160.03 67.61 0.00 - 143 4.71 149.33 66.65 0.00 - 145 21.00 161.75 69.66 0.00 - 147 6.50 162.94 62.59 0.00 - 149 20.57 163.43 63.88 0.00 - 151 109.80 167.87 58.22 0.00 - 153 33.57 167.93 44.08 0.00 - 157 39.36 167.60 66.94 0.26 - 159 31.40 164.42 68.64 0.00 - 161 12.01 162.26 68.57 0.00 - 163 7.16 161.78 67.93 0.00 - 164 0.00 161.78 67.93 0.00 - 166 1.98 161.78 70.97 0.00 - 167 11.07 159.76 71.39 0.03 - 169 0.00 159.76 71.39 0.20 - 171 29.90 158.37 70.35 0.04 - 173 0.00 158.34 70.34 0.01 - 177 44.21 157.77 64.89 0.00 - 179 0.00 157.69 64.86 21.01 - 181 0.00 157.84 64.93 0.00 - 183 0.00 157.93 63.66 53.49 - 184 0.00 157.09 61.14 22.99 - 185 19.49 157.88 61.48 45.00 - 187 0.00 159.88 63.86 77.06 - 189 82.02 159.68 67.46 64.94 - 191 62.24 163.44 59.99 83.94 - 193 54.20 163.44 63.02 91.54 - 195 0.00 163.41 64.09 68.37 - 197 12.95 165.42 61.71 94.60 - 199 90.68 152.25 66.83 0.00 - 201 33.90 151.38 65.55 0.00 - 203 4531.00 151.21 64.65 0.00 - 204 0.00 159.18 59.87 73.51 - 205 49.67 152.14 56.82 0.00 - 206 0.00 149.64 64.41 0.00 - 207 52.74 150.74 61.42 0.00 - 208 0.00 148.40 57.37 0.00 - 209 0.66 146.25 64.24 0.00 - 211 6.59 145.52 60.02 0.00 - 213 10.59 145.44 59.99 0.00 - 215 70.06 145.37 59.96 0.00 - 217 18.41 145.37 60.39 0.00 - 219 31.40 145.36 61.25 0.00 - 225 17.33 145.36 59.52 0.00 - 229 48.78 143.58 57.66 0.00 - 231 12.52 143.58 60.05 0.00 - 237 11.86 143.26 56.01 0.00 - 239 33.90 142.50 56.11 0.00 - 241 0.00 142.49 56.11 0.00 - 243 3.30 142.49 55.68 0.00 - 247 53.49 142.25 53.84 0.00 - 249 0.00 142.25 53.84 0.00 - 251 18.36 141.97 48.52 0.00 - 253 41.44 140.60 45.32 0.00 - 255 30.70 140.62 49.23 0.00 - 257 0.00 171.43 66.92 94.23 - 259 0.00 171.58 63.51 100.00 - 261 0.00 171.73 74.41 100.00 - 263 0.00 172.17 74.60 100.00 - 265 0.00 160.44 69.52 0.47 - 267 0.00 161.28 60.78 81.11 - 269 0.00 159.68 69.19 0.00 - 271 0.00 157.99 65.86 0.00 - 273 0.00 152.16 62.46 0.00 - 275 0.00 151.32 61.24 0.00 - River -12789.79 220.00 0.00 0.00 Reservoir - Lake -3139.84 167.00 0.00 100.00 Reservoir - 1 1600.38 150.49 8.05 0.00 Tank - 2 569.30 138.61 9.58 0.00 Tank - 3 4501.38 162.74 14.62 0.00 Tank - - - Link Results at 4:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -4501.38 0.19 0.00 - 40 -1600.38 0.07 0.00 - 50 -569.30 0.02 0.00 - 60 12789.79 9.07 8.47 - 101 3139.84 3.96 3.99 - 103 1673.92 2.67 1.62 - 105 1321.56 3.75 4.25 - 107 405.13 1.15 0.48 - 109 1572.68 2.51 1.44 - 111 1396.82 3.96 4.71 - 112 307.79 0.87 0.29 - 113 771.15 2.19 1.57 - 114 257.60 1.64 1.48 - 115 363.60 2.32 2.80 - 116 1013.54 2.88 2.60 - 117 -813.55 2.31 1.73 - 119 -241.38 0.68 0.18 - 120 -648.27 1.84 1.14 - 121 -261.84 0.74 0.21 - 122 165.55 1.06 0.65 - 123 7634.33 3.47 1.08 - 125 12789.78 5.81 2.82 - 129 4958.27 3.52 1.68 - 131 4771.01 3.38 1.56 - 133 -4501.38 4.60 3.41 - 135 256.21 0.18 0.01 - 137 32.49 0.05 0.00 - 145 223.72 1.43 1.14 - 147 219.24 1.40 1.10 - 149 -624.71 3.99 7.64 - 151 -620.00 3.96 7.54 - 153 412.96 1.17 0.49 - 155 433.96 1.23 0.54 - 159 -440.45 1.25 0.56 - 161 -461.03 2.94 4.35 - 163 -119.03 0.34 0.05 - 169 152.60 0.97 0.56 - 171 451.80 1.28 0.58 - 173 7696.93 3.49 1.10 - 175 7657.57 3.48 1.09 - 177 7626.17 3.46 1.08 - 179 7757.64 3.52 1.12 - 180 1.98 0.00 0.00 - 181 1.98 0.00 0.00 - 183 7895.98 3.58 1.15 - 185 -11.07 0.07 0.00 - 186 597.56 3.81 7.04 - 187 7686.00 3.49 1.10 - 189 5101.70 2.32 0.51 - 191 -2554.40 1.81 0.49 - 193 -1791.00 1.27 0.25 - 195 1004.12 2.85 2.55 - 197 959.91 2.72 2.35 - 199 -640.47 1.82 1.11 - 201 -1600.38 4.54 6.06 - 202 634.99 4.05 7.88 - 203 56.93 0.36 0.09 - 204 634.99 1.80 1.09 - 205 597.56 1.70 0.98 - 207 697.40 1.98 1.30 - 209 -125.57 0.80 0.39 - 211 198.92 0.56 0.13 - 213 723.13 2.05 1.39 - 215 695.64 1.97 1.29 - 217 27.26 0.08 0.00 - 219 143.48 0.41 0.07 - 221 -143.48 0.92 0.50 - 223 812.63 2.31 1.73 - 225 825.58 2.34 1.78 - 229 5101.70 3.62 1.52 - 231 4815.58 3.42 1.37 - 233 4531.00 3.21 1.42 - 235 195.44 0.55 0.12 - 237 658.42 1.87 1.17 - 238 978.69 2.78 2.44 - 239 373.01 1.06 0.41 - 240 978.69 2.78 2.44 - 241 978.69 2.78 2.44 - 243 978.03 1.56 0.60 - 245 337.90 0.54 0.08 - 247 137.20 0.22 0.02 - 249 67.14 0.11 0.00 - 251 31.40 0.07 0.00 - 257 17.33 0.05 0.00 - 261 190.11 1.21 0.84 - 263 12.52 0.04 0.00 - 269 633.54 1.80 1.09 - 271 -128.80 0.82 0.41 - 273 750.48 2.13 1.49 - 275 270.43 0.77 0.22 - 277 3.30 0.01 0.00 - 281 267.13 1.09 0.53 - 283 446.15 1.27 0.57 - 285 -195.09 0.55 0.12 - 287 408.73 1.67 1.17 - 289 -569.30 2.33 2.17 - 291 41.44 0.17 0.02 - 293 -232.70 1.49 1.23 - 295 251.06 0.71 0.20 - 297 -220.87 1.41 1.11 - 299 -130.51 0.83 0.42 - 301 -130.51 0.83 0.42 - 303 -90.36 0.58 0.21 - 305 -592.68 1.68 0.96 - 307 -683.04 1.94 1.25 - 309 -147.48 0.94 0.53 - 311 843.13 2.39 1.85 - 313 -41.80 0.12 0.01 - 315 -2795.12 1.98 0.58 - 317 122.34 0.78 0.37 - 319 73.10 0.21 0.02 - 321 7748.50 3.52 1.11 - 323 250.68 0.71 0.20 - 325 240.72 1.54 1.31 - 329 12789.78 5.81 2.86 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 3139.84 0.00 -77.31 Pump - 335 12789.79 0.00 -96.68 Pump - - - Node Results at 5:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 242.16 41.23 100.00 - 15 360.00 150.32 51.27 0.00 - 20 0.00 163.30 14.86 0.00 - 35 1819.00 152.55 60.68 1.85 - 40 0.00 151.80 8.62 64.01 - 50 0.00 140.30 10.31 0.00 - 60 0.00 215.88 93.54 0.00 - 601 0.00 215.87 93.54 0.00 - 61 0.00 215.87 93.54 0.00 - 101 174.75 180.76 60.12 100.00 - 103 122.54 178.41 58.67 100.00 - 105 124.54 169.25 60.99 100.00 - 107 50.27 168.53 63.49 100.00 - 109 212.89 172.44 65.92 100.00 - 111 130.58 162.97 66.28 99.65 - 113 18.41 160.66 68.75 98.75 - 115 47.93 163.14 64.62 97.00 - 117 108.29 163.28 64.85 100.00 - 119 162.04 161.67 69.19 9.43 - 120 0.00 162.62 70.46 88.23 - 121 38.30 163.24 71.60 0.00 - 123 1219.00 164.46 66.50 0.00 - 125 41.95 163.24 65.97 0.00 - 127 16.25 163.26 46.48 0.00 - 129 0.00 163.26 48.64 0.00 - 131 39.33 163.25 68.13 0.00 - 139 5.42 160.67 56.19 0.00 - 141 9.06 158.83 67.09 0.00 - 143 5.70 154.87 69.05 0.00 - 145 25.42 159.20 68.55 0.00 - 147 7.87 159.49 61.09 0.37 - 149 24.90 159.62 62.23 1.04 - 151 132.92 160.91 55.21 1.96 - 153 40.64 160.96 41.06 0.00 - 157 47.65 159.91 63.61 9.43 - 159 38.01 157.47 65.63 4.15 - 161 14.54 155.81 65.78 5.90 - 163 8.67 155.44 65.19 5.83 - 164 0.00 155.44 65.19 0.00 - 166 2.39 155.44 68.22 0.00 - 167 13.40 153.89 68.85 3.26 - 169 0.00 153.89 68.85 6.17 - 171 36.19 152.81 67.95 4.41 - 173 0.00 152.78 67.93 3.98 - 177 53.52 152.56 62.64 1.85 - 179 0.00 152.56 62.64 64.86 - 181 0.00 152.56 62.64 2.37 - 183 0.00 152.68 61.39 95.96 - 184 0.00 151.72 58.81 97.00 - 185 23.60 152.48 59.14 97.30 - 187 0.00 154.05 61.34 98.48 - 189 99.29 153.87 64.94 95.65 - 191 75.35 156.94 57.17 99.28 - 193 65.61 156.94 60.20 94.70 - 195 0.00 156.91 61.28 94.33 - 197 15.68 158.65 58.78 99.32 - 199 109.77 146.96 64.55 1.76 - 201 41.04 146.13 63.27 1.64 - 203 4582.00 145.95 62.37 1.51 - 204 0.00 153.50 57.41 98.41 - 205 60.13 146.92 54.56 71.24 - 206 0.00 145.20 62.48 26.20 - 207 63.84 145.85 59.30 32.71 - 208 0.00 144.45 55.66 13.53 - 209 0.80 143.15 62.89 1.47 - 211 7.98 142.72 58.81 0.00 - 213 12.82 142.65 58.78 0.00 - 215 84.81 142.55 58.73 0.00 - 217 22.28 142.54 59.16 0.00 - 219 38.01 142.53 60.03 0.00 - 225 20.98 142.54 58.29 0.00 - 229 59.05 141.71 56.85 0.00 - 231 15.16 141.71 59.24 0.00 - 237 14.36 141.64 55.31 0.00 - 239 41.04 141.32 55.60 0.00 - 241 0.00 141.32 55.60 0.00 - 243 3.99 141.32 55.17 0.00 - 247 64.75 141.23 53.39 0.00 - 249 0.00 141.23 53.39 0.00 - 251 22.23 141.13 48.15 0.00 - 253 50.16 140.70 45.37 0.00 - 255 37.16 140.73 49.28 0.00 - 257 0.00 163.49 63.48 100.00 - 259 0.00 163.66 60.08 100.00 - 261 0.00 163.89 71.01 100.00 - 263 0.00 164.34 71.21 100.00 - 265 0.00 154.42 66.91 6.35 - 267 0.00 155.16 58.13 94.58 - 269 0.00 153.86 66.67 49.39 - 271 0.00 152.63 63.54 3.92 - 273 0.00 146.92 60.20 0.16 - 275 0.00 146.11 58.98 0.59 - River -7751.18 220.00 0.00 0.00 Reservoir - Lake -3279.91 167.00 0.00 100.00 Reservoir - 1 475.63 151.80 8.62 0.64 Tank - 2 248.17 140.30 10.31 0.00 Tank - 3 -476.98 163.30 14.86 0.00 Tank - - - Link Results at 5:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 476.98 0.02 0.00 - 40 -475.63 0.02 0.00 - 50 -248.17 0.01 0.00 - 60 7751.18 5.50 3.35 - 101 3279.91 4.14 4.32 - 103 1737.01 2.77 1.74 - 105 1368.14 3.88 4.53 - 107 411.17 1.17 0.49 - 109 1614.46 2.58 1.52 - 111 1401.58 3.98 4.74 - 112 214.49 0.61 0.15 - 113 719.45 2.04 1.38 - 114 234.20 1.49 1.24 - 115 360.91 2.30 2.77 - 116 935.24 2.65 2.24 - 117 -832.43 2.36 1.80 - 119 -135.72 0.38 0.06 - 120 -697.87 1.98 1.30 - 121 -343.28 0.97 0.35 - 122 109.44 0.70 0.30 - 123 6418.73 2.91 0.79 - 125 6532.18 2.96 0.81 - 129 -34.29 0.02 0.00 - 131 -219.80 0.16 0.01 - 133 476.98 0.49 0.05 - 135 240.93 0.17 0.01 - 137 39.33 0.06 0.00 - 145 201.60 1.29 0.94 - 147 196.18 1.25 0.89 - 149 -365.70 2.33 2.84 - 151 -360.00 2.30 2.75 - 153 178.58 0.51 0.10 - 155 204.00 0.58 0.13 - 159 -211.87 0.60 0.14 - 161 -236.77 1.51 1.27 - 163 -102.92 0.29 0.04 - 169 143.56 0.92 0.50 - 171 266.78 0.76 0.22 - 173 6687.77 3.04 0.85 - 175 6640.13 3.01 0.84 - 177 6602.11 3.00 0.83 - 179 6727.57 3.05 0.86 - 180 2.39 0.00 0.00 - 181 2.39 0.00 0.00 - 183 6854.98 3.11 0.89 - 185 -13.40 0.09 0.01 - 186 524.84 3.35 5.54 - 187 6714.11 3.05 0.85 - 189 4976.31 2.26 0.49 - 191 -1701.61 1.21 0.23 - 193 -1819.00 1.29 0.26 - 195 85.25 0.24 0.03 - 197 31.74 0.09 0.00 - 199 -443.89 1.26 0.56 - 201 -475.63 1.35 0.64 - 202 624.23 3.98 7.63 - 203 122.99 0.79 0.38 - 204 624.23 1.77 1.06 - 205 524.84 1.49 0.77 - 207 566.89 1.61 0.89 - 209 -120.90 0.77 0.36 - 211 127.47 0.36 0.06 - 213 645.74 1.83 1.13 - 215 620.45 1.76 1.05 - 217 29.27 0.08 0.00 - 219 140.00 0.40 0.07 - 221 -140.00 0.89 0.48 - 223 750.36 2.13 1.49 - 225 766.03 2.17 1.55 - 229 4976.31 3.53 1.46 - 231 4741.14 3.36 1.33 - 233 4582.00 3.25 1.45 - 235 125.39 0.36 0.05 - 237 568.64 1.61 0.89 - 238 743.75 2.11 1.46 - 239 238.96 0.68 0.18 - 240 743.75 2.11 1.46 - 241 743.75 2.11 1.46 - 243 742.95 1.19 0.36 - 245 310.29 0.50 0.07 - 247 166.09 0.27 0.02 - 249 81.27 0.13 0.01 - 251 38.01 0.08 0.00 - 257 20.98 0.06 0.00 - 261 131.37 0.84 0.43 - 263 15.16 0.04 0.00 - 269 424.69 1.20 0.52 - 271 -57.17 0.36 0.09 - 273 467.50 1.33 0.62 - 275 162.19 0.46 0.09 - 277 3.99 0.01 0.00 - 281 158.20 0.65 0.20 - 283 264.26 0.75 0.22 - 285 -121.67 0.35 0.05 - 287 215.12 0.88 0.36 - 289 -248.17 1.01 0.47 - 291 50.16 0.20 0.02 - 293 -120.37 0.77 0.36 - 295 142.60 0.40 0.07 - 297 -245.14 1.56 1.35 - 299 -140.29 0.90 0.48 - 301 -140.29 0.90 0.48 - 303 -104.86 0.67 0.28 - 305 -587.29 1.67 0.95 - 307 -692.14 1.96 1.28 - 309 -138.46 0.88 0.47 - 311 758.91 2.15 1.52 - 313 -75.17 0.21 0.02 - 315 -1904.25 1.35 0.29 - 317 120.86 0.77 0.36 - 319 4.54 0.01 0.00 - 321 6716.51 3.05 0.86 - 323 118.10 0.34 0.05 - 325 202.65 1.29 0.95 - 329 7751.18 3.52 1.13 - 330 7751.18 3.52 1.13 - 333 7751.18 3.52 1.13 - 10 3279.91 0.00 -75.16 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 6:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 242.47 41.37 100.00 - 15 360.00 150.76 51.46 0.00 - 20 0.00 163.12 14.79 0.00 - 35 1777.00 153.33 61.02 12.62 - 40 0.00 152.47 8.91 90.40 - 50 0.00 141.31 10.75 0.00 - 60 0.00 215.94 93.57 0.00 - 601 0.00 215.94 93.57 0.00 - 61 0.00 215.94 93.57 0.00 - 101 161.46 181.75 60.55 100.00 - 103 113.22 179.44 59.12 100.00 - 105 115.06 170.18 61.39 100.00 - 107 46.44 169.46 63.90 100.00 - 109 196.69 173.47 66.37 100.00 - 111 120.65 163.82 66.65 99.47 - 113 17.01 161.49 69.11 98.89 - 115 44.28 163.96 64.98 100.00 - 117 100.05 164.05 65.19 100.00 - 119 149.71 162.21 69.42 8.27 - 120 0.00 163.25 70.74 84.32 - 121 35.39 163.72 71.81 0.00 - 123 0.00 165.36 66.89 0.00 - 125 38.76 163.59 66.12 0.00 - 127 15.01 163.25 46.47 0.00 - 129 0.00 163.24 48.64 0.00 - 131 36.34 163.24 68.13 0.00 - 139 5.01 160.92 56.29 0.00 - 141 8.37 159.26 67.28 0.00 - 143 5.27 155.30 69.24 0.00 - 145 23.49 159.67 68.75 0.26 - 147 7.27 159.98 61.30 2.72 - 149 23.01 160.12 62.45 5.64 - 151 122.81 161.46 55.45 6.81 - 153 37.54 161.50 41.29 0.00 - 157 44.02 160.50 63.87 8.27 - 159 35.12 158.13 65.92 8.27 - 161 13.43 156.52 66.09 10.07 - 163 8.01 156.16 65.50 10.08 - 164 0.00 156.16 65.50 0.00 - 166 2.21 156.16 68.53 0.00 - 167 12.38 154.65 69.17 12.88 - 169 0.00 154.65 69.17 12.28 - 171 33.44 153.58 68.28 12.78 - 173 0.00 153.56 68.27 12.87 - 177 49.44 153.33 62.97 12.62 - 179 0.00 153.33 62.97 90.85 - 181 0.00 153.33 62.97 14.31 - 183 0.00 153.45 61.72 96.96 - 184 0.00 152.52 59.16 98.75 - 185 21.80 153.27 59.48 98.79 - 187 0.00 154.84 61.67 99.61 - 189 91.73 154.64 65.27 98.84 - 191 69.61 157.75 57.52 99.59 - 193 60.61 157.75 60.55 98.62 - 195 0.00 157.72 61.62 98.68 - 197 14.48 159.48 59.14 99.48 - 199 101.42 147.83 64.92 8.35 - 201 37.92 147.01 63.65 7.61 - 203 4572.00 146.83 62.76 7.57 - 204 0.00 154.29 57.75 99.63 - 205 55.56 147.80 54.94 96.96 - 206 0.00 146.14 62.89 67.28 - 207 58.98 146.77 59.70 68.13 - 208 0.00 145.43 56.08 65.39 - 209 0.74 144.21 63.35 61.27 - 211 7.37 143.79 59.27 54.67 - 213 11.85 143.73 59.24 15.36 - 215 78.36 143.64 59.21 0.00 - 217 20.59 143.64 59.64 0.00 - 219 35.12 143.63 60.50 0.00 - 225 19.38 143.63 58.77 0.00 - 229 54.55 142.82 57.33 0.00 - 231 14.01 142.81 59.71 0.00 - 237 13.27 142.73 55.78 21.90 - 239 37.92 142.42 56.08 10.54 - 241 0.00 142.42 56.08 3.97 - 243 3.69 142.42 55.64 0.00 - 247 59.82 142.32 53.87 0.26 - 249 0.00 142.32 53.87 1.39 - 251 20.54 142.22 48.63 0.00 - 253 46.34 141.78 45.83 0.00 - 255 34.33 141.80 49.74 0.00 - 257 0.00 164.21 63.79 100.00 - 259 0.00 164.39 60.40 100.00 - 261 0.00 164.66 71.35 100.00 - 263 0.00 165.12 71.54 100.00 - 265 0.00 155.16 67.23 11.97 - 267 0.00 155.94 58.47 98.68 - 269 0.00 154.62 67.00 40.57 - 271 0.00 153.41 63.87 15.39 - 273 0.00 147.80 60.58 4.82 - 275 0.00 146.99 59.36 3.86 - River -7682.94 220.00 0.00 0.00 Reservoir - Lake -3260.06 167.00 0.00 100.00 Reservoir - 1 508.82 152.47 8.91 1.94 Tank - 2 264.91 141.31 10.75 0.00 Tank - 3 869.37 163.12 14.79 0.00 Tank - - - Link Results at 6:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -869.37 0.04 0.00 - 40 -508.82 0.02 0.00 - 50 -264.91 0.01 0.00 - 60 7682.94 5.45 3.30 - 101 3260.06 4.11 4.28 - 103 1726.24 2.75 1.72 - 105 1372.36 3.89 4.56 - 107 411.34 1.17 0.49 - 109 1613.02 2.57 1.51 - 111 1416.33 4.02 4.83 - 112 194.36 0.55 0.12 - 113 721.86 2.05 1.39 - 114 233.49 1.49 1.24 - 115 364.90 2.33 2.82 - 116 938.34 2.66 2.25 - 117 -845.95 2.40 1.86 - 119 -107.23 0.30 0.04 - 120 -732.26 2.08 1.42 - 121 -380.65 1.08 0.42 - 122 93.59 0.60 0.23 - 123 6267.38 2.84 0.75 - 125 7682.94 3.49 1.10 - 129 1286.57 0.91 0.14 - 131 1111.15 0.79 0.11 - 133 -869.37 0.89 0.16 - 135 226.78 0.16 0.01 - 137 36.34 0.06 0.00 - 145 190.44 1.22 0.85 - 147 185.43 1.18 0.81 - 149 -365.27 2.33 2.83 - 151 -360.00 2.30 2.75 - 153 188.21 0.53 0.11 - 155 211.69 0.60 0.14 - 159 -218.96 0.62 0.15 - 161 -241.97 1.54 1.32 - 163 -99.11 0.28 0.04 - 169 136.66 0.87 0.46 - 171 265.67 0.75 0.22 - 173 6584.26 2.99 0.82 - 175 6540.24 2.97 0.81 - 177 6505.12 2.95 0.81 - 179 6638.49 3.01 0.84 - 180 2.21 0.00 0.00 - 181 2.21 0.00 0.00 - 183 6770.66 3.07 0.87 - 185 -12.38 0.08 0.01 - 186 523.18 3.34 5.50 - 187 6649.72 3.02 0.84 - 189 4929.71 2.24 0.48 - 191 -1686.57 1.20 0.23 - 193 -1777.00 1.26 0.25 - 195 111.07 0.32 0.04 - 197 61.63 0.17 0.01 - 199 -447.19 1.27 0.57 - 201 -508.82 1.44 0.73 - 202 618.96 3.95 7.51 - 203 117.58 0.75 0.35 - 204 618.96 1.76 1.04 - 205 523.18 1.48 0.76 - 207 564.78 1.60 0.88 - 209 -125.97 0.80 0.39 - 211 108.57 0.31 0.04 - 213 649.14 1.84 1.14 - 215 623.48 1.77 1.06 - 217 34.94 0.10 0.01 - 219 146.80 0.42 0.07 - 221 -146.80 0.94 0.52 - 223 753.69 2.14 1.50 - 225 768.18 2.18 1.56 - 229 4929.71 3.50 1.43 - 231 4713.17 3.34 1.32 - 233 4572.00 3.24 1.45 - 235 115.12 0.33 0.05 - 237 558.19 1.58 0.86 - 238 722.79 2.05 1.39 - 239 223.58 0.63 0.16 - 240 722.79 2.05 1.39 - 241 722.79 2.05 1.39 - 243 722.05 1.15 0.34 - 245 294.77 0.47 0.06 - 247 153.45 0.24 0.02 - 249 75.09 0.12 0.01 - 251 35.12 0.07 0.00 - 257 19.38 0.05 0.00 - 261 129.47 0.83 0.41 - 263 14.01 0.04 0.00 - 269 419.91 1.19 0.51 - 271 -60.91 0.39 0.10 - 273 467.55 1.33 0.62 - 275 163.20 0.46 0.09 - 277 3.69 0.01 0.00 - 281 159.51 0.65 0.21 - 283 266.43 0.76 0.22 - 285 -121.65 0.35 0.05 - 287 221.34 0.90 0.38 - 289 -264.91 1.08 0.53 - 291 46.34 0.19 0.02 - 293 -124.25 0.79 0.38 - 295 144.78 0.41 0.07 - 297 -258.02 1.65 1.49 - 299 -145.80 0.93 0.52 - 301 -145.80 0.93 0.52 - 303 -112.22 0.72 0.32 - 305 -587.94 1.67 0.95 - 307 -700.15 1.99 1.31 - 309 -142.39 0.91 0.49 - 311 765.86 2.17 1.55 - 313 -92.94 0.26 0.03 - 315 -1888.07 1.34 0.28 - 317 120.33 0.77 0.36 - 319 -5.21 0.01 0.00 - 321 6628.28 3.01 0.83 - 323 103.25 0.29 0.04 - 325 201.50 1.29 0.94 - 329 7682.94 3.49 1.11 - 330 7682.94 3.49 1.11 - 333 7682.94 3.49 1.10 - 10 3260.06 0.00 -75.47 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 7:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 242.01 41.17 100.00 - 15 0.00 162.44 56.52 0.00 - 20 0.00 163.45 14.93 0.00 - 35 1842.00 153.44 61.07 16.30 - 40 0.00 153.19 9.22 88.86 - 50 0.00 142.40 11.22 11.93 - 60 0.00 215.96 93.58 0.00 - 601 0.00 215.96 93.58 0.00 - 61 0.00 215.96 93.57 0.00 - 101 203.25 180.26 59.91 100.00 - 103 142.52 177.90 58.45 100.00 - 105 144.85 169.11 60.93 100.00 - 107 58.46 168.41 63.44 100.00 - 109 247.60 172.03 65.75 100.00 - 111 151.88 163.17 66.37 100.00 - 113 21.41 160.99 68.89 100.00 - 115 55.75 163.38 64.73 100.00 - 117 125.95 163.61 65.00 100.00 - 119 188.46 162.43 69.52 9.12 - 120 0.00 163.18 70.71 87.22 - 121 44.54 163.96 71.91 0.00 - 123 0.00 165.60 66.99 0.00 - 125 48.79 163.86 66.23 0.00 - 127 18.90 163.57 46.61 0.00 - 129 0.00 163.57 48.78 0.00 - 131 45.74 163.56 68.27 0.00 - 139 6.30 162.89 57.15 0.00 - 141 10.54 162.45 68.65 0.00 - 143 6.63 162.44 72.34 0.00 - 145 29.56 162.37 69.92 2.74 - 147 9.15 162.36 62.33 6.16 - 149 28.96 162.35 63.41 6.02 - 151 154.59 162.35 55.83 6.02 - 153 47.26 162.37 41.67 0.00 - 157 55.42 160.68 63.94 9.12 - 159 44.21 158.26 65.97 9.12 - 161 16.91 156.61 66.13 11.10 - 163 10.08 156.25 65.54 11.09 - 164 0.00 156.25 65.54 0.00 - 166 2.78 156.25 68.57 0.00 - 167 15.58 154.72 69.21 12.12 - 169 0.00 154.72 69.21 12.55 - 171 42.09 153.67 68.32 12.21 - 173 0.00 153.64 68.31 12.12 - 177 62.24 153.45 63.02 16.30 - 179 0.00 153.45 63.02 89.43 - 181 0.00 153.45 63.02 16.33 - 183 0.00 153.55 61.77 99.57 - 184 0.00 152.54 59.16 99.38 - 185 27.45 153.31 59.50 99.43 - 187 0.00 154.82 61.67 99.57 - 189 115.47 154.67 65.29 99.80 - 191 87.63 157.49 57.41 100.00 - 193 76.30 157.49 60.44 99.99 - 195 0.00 157.48 61.52 99.98 - 197 18.23 159.10 58.97 100.00 - 199 127.67 147.75 64.89 12.06 - 201 47.73 146.91 63.61 12.05 - 203 4613.00 146.73 62.71 11.99 - 204 0.00 154.29 57.75 99.49 - 205 69.94 147.71 54.90 99.19 - 206 0.00 146.09 62.87 71.77 - 207 74.25 146.68 59.66 71.95 - 208 0.00 145.42 56.08 71.65 - 209 0.93 144.26 63.37 71.46 - 211 9.28 143.86 59.30 70.79 - 213 14.92 143.79 59.27 65.28 - 215 98.64 143.66 59.22 0.00 - 217 25.92 143.65 59.64 0.00 - 219 44.21 143.64 60.51 0.00 - 225 24.40 143.64 58.77 0.00 - 229 68.67 143.06 57.44 44.49 - 231 17.63 143.05 59.82 0.00 - 237 16.70 143.04 55.91 58.82 - 239 47.73 142.82 56.25 56.73 - 241 0.00 142.82 56.25 54.53 - 243 4.64 142.82 55.82 0.00 - 247 75.31 142.76 54.06 50.38 - 249 0.00 142.76 54.06 52.55 - 251 25.85 142.70 48.83 2.13 - 253 58.34 142.48 46.14 0.00 - 255 43.22 142.52 50.05 25.67 - 257 0.00 163.89 63.65 100.00 - 259 0.00 164.04 60.24 100.00 - 261 0.00 164.19 71.14 100.00 - 263 0.00 164.61 71.33 100.00 - 265 0.00 155.24 67.26 12.80 - 267 0.00 155.87 58.44 99.98 - 269 0.00 154.67 67.02 52.07 - 271 0.00 153.51 63.92 16.36 - 273 0.00 147.71 60.54 12.22 - 275 0.00 146.90 59.32 8.99 - River -7664.82 220.00 0.00 0.00 Reservoir - Lake -3289.86 167.00 0.00 100.00 Reservoir - 1 268.68 153.19 9.22 4.38 Tank - 2 125.26 142.40 11.22 0.00 Tank - 3 844.25 163.45 14.93 0.00 Tank - - - Link Results at 7:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -844.25 0.04 0.00 - 40 -268.68 0.01 0.00 - 50 -125.26 0.01 0.00 - 60 7664.82 5.44 3.28 - 101 3289.86 4.15 4.35 - 103 1741.89 2.78 1.74 - 105 1344.72 3.81 4.39 - 107 405.98 1.15 0.48 - 109 1599.37 2.55 1.49 - 111 1351.77 3.83 4.43 - 112 239.71 0.68 0.18 - 113 697.02 1.98 1.30 - 114 229.42 1.46 1.20 - 115 347.52 2.22 2.58 - 116 905.03 2.57 2.11 - 117 -793.89 2.25 1.65 - 119 -177.36 0.50 0.10 - 120 -614.30 1.74 1.03 - 121 -271.28 0.77 0.23 - 122 123.72 0.79 0.38 - 123 6327.17 2.87 0.77 - 125 7664.82 3.48 1.09 - 129 1169.38 0.83 0.12 - 131 1006.78 0.71 0.09 - 133 -844.25 0.86 0.15 - 135 143.63 0.10 0.00 - 137 45.74 0.07 0.00 - 145 97.89 0.62 0.25 - 147 91.58 0.58 0.22 - 149 -6.63 0.04 0.00 - 151 0.00 0.00 0.00 - 153 -74.41 0.21 0.02 - 155 -44.85 0.13 0.01 - 159 35.70 0.10 0.01 - 161 6.73 0.04 0.00 - 163 -66.55 0.19 0.02 - 169 113.81 0.73 0.33 - 171 81.31 0.23 0.02 - 173 6671.70 3.03 0.84 - 175 6616.28 3.00 0.83 - 177 6572.07 2.98 0.82 - 179 6677.81 3.03 0.85 - 180 2.78 0.01 0.00 - 181 2.78 0.01 0.00 - 183 6791.86 3.08 0.87 - 185 -15.58 0.10 0.01 - 186 513.69 3.28 5.32 - 187 6619.27 3.00 0.83 - 189 5007.88 2.27 0.50 - 191 -1569.30 1.11 0.20 - 193 -1842.00 1.31 0.27 - 195 -76.37 0.22 0.02 - 197 -138.61 0.39 0.07 - 199 -407.29 1.16 0.48 - 201 -268.68 0.76 0.22 - 202 626.35 4.00 7.68 - 203 140.11 0.89 0.48 - 204 626.35 1.78 1.07 - 205 513.69 1.46 0.74 - 207 547.40 1.55 0.83 - 209 -106.34 0.68 0.29 - 211 157.01 0.45 0.08 - 213 620.03 1.76 1.05 - 215 595.87 1.69 0.97 - 217 16.69 0.05 0.00 - 219 122.64 0.35 0.05 - 221 -122.64 0.78 0.37 - 223 724.35 2.05 1.39 - 225 742.58 2.11 1.46 - 229 5007.88 3.55 1.47 - 231 4757.70 3.37 1.34 - 233 4613.00 3.27 1.47 - 235 122.51 0.35 0.05 - 237 557.86 1.58 0.86 - 238 701.65 1.99 1.31 - 239 218.04 0.62 0.15 - 240 701.65 1.99 1.31 - 241 701.65 1.99 1.31 - 243 700.72 1.12 0.32 - 245 323.14 0.52 0.08 - 247 193.17 0.31 0.03 - 249 94.52 0.15 0.01 - 251 44.21 0.09 0.00 - 257 24.40 0.07 0.00 - 261 115.06 0.73 0.33 - 263 17.63 0.05 0.00 - 269 368.30 1.04 0.40 - 271 -28.75 0.18 0.03 - 273 380.35 1.08 0.42 - 275 127.45 0.36 0.06 - 277 4.64 0.01 0.00 - 281 122.81 0.50 0.13 - 283 205.16 0.58 0.13 - 285 -99.17 0.28 0.04 - 287 146.67 0.60 0.18 - 289 -125.26 0.51 0.13 - 291 58.34 0.24 0.03 - 293 -80.15 0.51 0.17 - 295 106.00 0.30 0.04 - 297 -219.30 1.40 1.10 - 299 -128.66 0.82 0.41 - 301 -128.66 0.82 0.41 - 303 -90.64 0.58 0.21 - 305 -574.60 1.63 0.91 - 307 -665.24 1.89 1.19 - 309 -126.91 0.81 0.40 - 311 722.78 2.05 1.39 - 313 -39.33 0.11 0.01 - 315 -1765.63 1.25 0.25 - 317 121.07 0.77 0.37 - 319 1.44 0.00 0.00 - 321 6664.95 3.03 0.84 - 323 96.97 0.28 0.03 - 325 196.33 1.25 0.90 - 329 7664.82 3.48 1.11 - 330 7664.82 3.48 1.11 - 333 7664.82 3.48 1.11 - 10 3289.86 0.00 -75.01 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 8:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 242.38 41.33 100.00 - 15 0.00 162.97 56.75 0.00 - 20 0.00 163.77 15.07 0.00 - 35 1815.00 154.00 61.31 17.95 - 40 0.00 153.57 9.39 99.93 - 50 0.00 142.91 11.44 32.01 - 60 0.00 215.99 93.59 0.00 - 601 0.00 215.99 93.59 0.00 - 61 0.00 215.99 93.59 0.00 - 101 182.35 181.47 60.43 100.00 - 103 127.87 179.14 58.99 100.00 - 105 129.96 170.18 61.39 100.00 - 107 52.45 169.47 63.90 100.00 - 109 222.14 173.26 66.28 100.00 - 111 136.26 164.07 66.76 100.00 - 113 19.21 161.82 69.25 100.00 - 115 50.02 164.24 65.10 100.00 - 117 113.00 164.40 65.34 100.00 - 119 169.08 162.94 69.74 7.07 - 120 0.00 163.82 70.98 79.86 - 121 39.96 164.42 72.11 0.00 - 123 0.00 166.04 67.18 0.00 - 125 43.78 164.29 66.42 0.00 - 127 16.95 163.93 46.77 0.00 - 129 0.00 163.93 48.93 0.00 - 131 41.04 163.92 68.43 0.00 - 139 5.65 163.36 57.35 0.00 - 141 9.46 162.97 68.88 0.00 - 143 5.95 162.97 72.57 0.00 - 145 26.52 162.91 70.16 1.88 - 147 8.21 162.90 62.57 6.78 - 149 25.99 162.89 63.65 6.02 - 151 138.70 162.89 56.06 4.90 - 153 42.40 162.91 41.90 0.00 - 157 49.72 161.21 64.17 7.07 - 159 39.67 158.81 66.21 7.07 - 161 15.17 157.18 66.37 8.77 - 163 9.04 156.82 65.78 8.82 - 164 0.00 156.82 65.78 0.00 - 166 2.50 156.82 68.82 0.00 - 167 13.98 155.30 69.46 12.45 - 169 0.00 155.30 69.46 11.39 - 171 37.77 154.24 68.56 12.22 - 173 0.00 154.21 68.55 12.45 - 177 55.84 154.01 63.27 99.99 - 179 0.00 154.01 63.27 99.99 - 181 0.00 154.01 63.27 17.95 - 183 0.00 154.12 62.01 99.99 - 184 0.00 153.14 59.42 100.00 - 185 24.62 153.90 59.75 100.00 - 187 0.00 155.44 61.93 100.00 - 189 103.60 155.27 65.55 99.99 - 191 78.62 158.22 57.72 100.00 - 193 68.46 158.22 60.76 99.99 - 195 0.00 158.20 61.83 99.99 - 197 16.36 159.88 59.31 100.00 - 199 114.55 148.36 65.15 12.45 - 201 42.83 147.51 63.87 12.47 - 203 4643.00 147.33 62.97 12.59 - 204 0.00 154.90 58.02 100.00 - 205 62.75 148.33 55.17 99.50 - 206 0.00 146.74 63.15 74.12 - 207 66.61 147.31 59.93 74.20 - 208 0.00 146.10 56.37 74.10 - 209 0.84 144.98 63.68 74.06 - 211 8.32 144.60 59.62 73.79 - 213 13.38 144.53 59.59 71.72 - 215 88.50 144.43 59.55 0.00 - 217 23.25 144.42 59.98 0.00 - 219 39.67 144.41 60.84 0.00 - 225 21.89 144.41 59.11 0.00 - 229 61.61 143.78 57.75 68.42 - 231 15.82 143.78 60.13 0.00 - 237 14.99 143.74 56.22 69.14 - 239 42.83 143.51 56.55 68.50 - 241 0.00 143.50 56.55 68.09 - 243 4.17 143.50 56.11 0.00 - 247 67.56 143.44 54.35 66.64 - 249 0.00 143.44 54.35 67.29 - 251 23.19 143.37 49.12 47.73 - 253 52.34 143.09 46.40 4.34 - 255 38.77 143.12 50.32 47.16 - 257 0.00 164.63 63.97 100.00 - 259 0.00 164.79 60.57 100.00 - 261 0.00 165.00 71.49 100.00 - 263 0.00 165.43 71.68 100.00 - 265 0.00 155.81 67.51 10.85 - 267 0.00 156.51 58.72 99.99 - 269 0.00 155.26 67.27 29.90 - 271 0.00 154.08 64.16 14.40 - 273 0.00 148.33 60.80 12.27 - 275 0.00 147.50 59.58 12.37 - River -7631.38 220.00 0.00 0.00 Reservoir - Lake -3265.74 167.00 0.00 100.00 Reservoir - 1 355.87 153.57 9.39 5.88 Tank - 2 170.66 142.91 11.44 0.00 Tank - 3 986.40 163.77 15.07 0.00 Tank - - - Link Results at 8:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -986.40 0.04 0.00 - 40 -355.87 0.01 0.00 - 50 -170.66 0.01 0.00 - 60 7631.38 5.41 3.26 - 101 3265.74 4.12 4.29 - 103 1729.18 2.76 1.72 - 105 1354.21 3.84 4.44 - 107 407.33 1.16 0.48 - 109 1601.31 2.56 1.49 - 111 1379.16 3.91 4.60 - 112 218.67 0.62 0.15 - 113 707.85 2.01 1.34 - 114 231.00 1.47 1.21 - 115 354.88 2.27 2.68 - 116 919.64 2.61 2.17 - 117 -816.92 2.32 1.74 - 119 -144.81 0.41 0.07 - 120 -666.50 1.89 1.20 - 121 -322.43 0.91 0.31 - 122 107.39 0.69 0.29 - 123 6196.96 2.81 0.74 - 125 7631.38 3.46 1.08 - 129 1287.06 0.91 0.14 - 131 1134.06 0.80 0.11 - 133 -986.40 1.01 0.21 - 135 130.70 0.09 0.00 - 137 41.04 0.07 0.00 - 145 89.66 0.57 0.21 - 147 84.01 0.54 0.19 - 149 -5.95 0.04 0.00 - 151 0.00 0.00 0.00 - 153 -68.60 0.19 0.02 - 155 -42.07 0.12 0.01 - 159 33.86 0.10 0.00 - 161 7.88 0.05 0.00 - 163 -66.83 0.19 0.02 - 169 109.23 0.70 0.30 - 171 64.00 0.18 0.02 - 173 6630.38 3.01 0.84 - 175 6580.66 2.99 0.82 - 177 6540.99 2.97 0.81 - 179 6659.87 3.02 0.84 - 180 2.50 0.01 0.00 - 181 2.50 0.01 0.00 - 183 6782.48 3.08 0.87 - 185 -13.98 0.09 0.01 - 186 518.22 3.31 5.41 - 187 6634.96 3.01 0.84 - 189 4992.26 2.27 0.49 - 191 -1604.94 1.14 0.21 - 193 -1815.00 1.29 0.26 - 195 -11.46 0.03 0.00 - 197 -67.31 0.19 0.02 - 199 -423.17 1.20 0.52 - 201 -355.87 1.01 0.37 - 202 625.27 3.99 7.66 - 203 131.67 0.84 0.43 - 204 625.27 1.77 1.06 - 205 518.22 1.47 0.75 - 207 554.84 1.57 0.85 - 209 -115.16 0.74 0.33 - 211 133.53 0.38 0.06 - 213 633.38 1.80 1.09 - 215 608.35 1.73 1.01 - 217 25.36 0.07 0.00 - 219 134.05 0.38 0.06 - 221 -134.05 0.86 0.44 - 223 737.36 2.09 1.44 - 225 753.72 2.14 1.50 - 229 4992.26 3.54 1.46 - 231 4766.83 3.38 1.34 - 233 4643.00 3.29 1.49 - 235 110.88 0.31 0.04 - 237 551.82 1.57 0.84 - 238 687.79 1.95 1.27 - 239 202.59 0.57 0.13 - 240 687.79 1.95 1.27 - 241 687.79 1.95 1.27 - 243 686.96 1.10 0.31 - 245 303.52 0.48 0.07 - 247 173.31 0.28 0.02 - 249 84.81 0.14 0.01 - 251 39.67 0.08 0.00 - 257 21.89 0.06 0.00 - 261 116.83 0.75 0.34 - 263 15.82 0.04 0.00 - 269 375.12 1.06 0.41 - 271 -39.39 0.25 0.05 - 273 399.52 1.13 0.46 - 275 136.18 0.39 0.06 - 277 4.17 0.01 0.00 - 281 132.01 0.54 0.14 - 283 220.52 0.63 0.15 - 285 -104.06 0.30 0.04 - 287 168.51 0.69 0.23 - 289 -170.66 0.70 0.23 - 291 52.34 0.21 0.03 - 293 -93.27 0.60 0.23 - 295 116.46 0.33 0.05 - 297 -236.68 1.51 1.27 - 299 -136.28 0.87 0.46 - 301 -136.28 0.87 0.46 - 303 -100.41 0.64 0.26 - 305 -580.24 1.65 0.92 - 307 -680.64 1.93 1.24 - 309 -134.14 0.86 0.44 - 311 742.49 2.11 1.46 - 313 -65.07 0.18 0.02 - 315 -1803.54 1.28 0.26 - 317 121.59 0.78 0.37 - 319 -10.70 0.03 0.00 - 321 6648.33 3.02 0.84 - 323 81.00 0.23 0.02 - 325 198.60 1.27 0.92 - 329 7631.38 3.46 1.10 - 330 7631.38 3.46 1.10 - 333 7631.38 3.46 1.10 - 10 3265.74 0.00 -75.38 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 9:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 241.99 41.16 100.00 - 15 0.00 162.56 56.57 0.00 - 20 0.00 164.15 15.23 0.00 - 35 1825.00 154.05 61.33 14.51 - 40 0.00 154.07 9.61 99.99 - 50 0.00 143.60 11.74 60.89 - 60 0.00 215.91 93.55 0.00 - 601 0.00 215.91 93.55 0.00 - 61 0.00 215.91 93.55 0.00 - 101 208.94 180.19 59.88 100.00 - 103 146.52 177.84 58.43 100.00 - 105 148.91 169.10 60.92 100.00 - 107 60.10 168.41 63.44 100.00 - 109 254.54 172.00 65.73 100.00 - 111 156.13 163.29 66.42 100.00 - 113 22.01 161.19 68.98 100.00 - 115 57.31 163.48 64.77 100.00 - 117 129.48 163.67 65.02 100.00 - 119 193.74 162.48 69.54 8.15 - 120 0.00 163.23 70.73 83.89 - 121 45.79 163.92 71.89 0.00 - 123 1866.00 164.91 66.69 0.00 - 125 50.16 163.94 66.27 0.00 - 127 19.43 164.04 46.82 0.00 - 129 0.00 164.04 48.98 0.00 - 131 47.02 164.03 68.47 0.00 - 139 6.48 163.16 57.26 0.00 - 141 10.84 162.56 68.71 0.00 - 143 6.82 162.56 72.39 0.00 - 145 30.39 162.46 69.96 0.71 - 147 9.41 162.43 62.37 6.87 - 149 29.78 162.42 63.45 6.02 - 151 158.93 162.41 55.86 4.55 - 153 48.59 162.43 41.70 0.00 - 157 56.97 160.82 64.01 8.15 - 159 45.45 158.54 66.10 8.15 - 161 17.38 157.00 66.29 9.99 - 163 10.36 156.65 65.71 9.97 - 164 0.00 156.65 65.71 0.00 - 166 2.86 156.65 68.75 0.00 - 167 16.02 155.22 69.42 10.73 - 169 0.00 155.22 69.42 11.26 - 171 43.27 154.22 68.56 10.84 - 173 0.00 154.20 68.55 10.73 - 177 63.99 154.06 63.29 99.99 - 179 0.00 154.07 63.29 99.99 - 181 0.00 154.06 63.29 14.50 - 183 0.00 154.16 62.03 99.99 - 184 0.00 153.10 59.40 100.00 - 185 28.22 153.87 59.74 100.00 - 187 0.00 155.31 61.88 100.00 - 189 118.71 155.17 65.50 99.99 - 191 90.09 157.84 57.56 100.00 - 193 78.44 157.84 60.59 100.00 - 195 0.00 157.82 61.67 99.99 - 197 18.74 159.38 59.09 100.00 - 199 131.25 148.30 65.13 10.73 - 201 49.07 147.46 63.85 10.72 - 203 4643.00 147.28 62.95 10.66 - 204 0.00 154.80 57.97 100.00 - 205 71.90 148.27 55.15 100.00 - 206 0.00 146.74 63.15 76.43 - 207 76.33 147.27 59.91 76.43 - 208 0.00 146.13 56.39 76.44 - 209 0.96 145.07 63.73 76.46 - 211 9.54 144.72 59.67 76.19 - 213 15.33 144.65 59.64 74.10 - 215 101.41 144.51 59.58 0.00 - 217 26.64 144.50 60.01 0.00 - 219 45.45 144.49 60.87 0.00 - 225 25.08 144.49 59.14 0.00 - 229 70.60 144.03 57.86 72.39 - 231 18.13 144.02 60.24 0.00 - 237 17.17 144.02 56.34 73.67 - 239 49.07 143.85 56.70 73.50 - 241 0.00 143.85 56.70 73.27 - 243 4.77 143.85 56.26 0.00 - 247 77.42 143.81 54.51 72.41 - 249 0.00 143.81 54.51 72.85 - 251 26.58 143.76 49.29 65.78 - 253 59.97 143.61 46.63 33.64 - 255 44.43 143.65 50.54 64.69 - 257 0.00 163.94 63.67 100.00 - 259 0.00 164.08 60.26 100.00 - 261 0.00 164.24 71.17 100.00 - 263 0.00 164.65 71.34 100.00 - 265 0.00 155.70 67.47 11.56 - 267 0.00 156.30 58.63 99.99 - 269 0.00 155.17 67.24 39.98 - 271 0.00 154.11 64.17 13.95 - 273 0.00 148.27 60.78 11.22 - 275 0.00 147.45 59.56 11.66 - River -7717.07 220.00 0.00 0.00 Reservoir - Lake -3291.14 167.00 0.00 100.00 Reservoir - 1 22.08 154.07 9.61 7.75 Tank - 2 72.91 143.60 11.74 0.00 Tank - 3 -773.71 164.15 15.23 0.00 Tank - - - Link Results at 9:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 773.71 0.03 0.00 - 40 -22.08 0.00 0.00 - 50 -72.91 0.00 0.00 - 60 7717.07 5.47 3.32 - 101 3291.14 4.15 4.35 - 103 1740.87 2.78 1.74 - 105 1341.32 3.81 4.37 - 107 403.89 1.15 0.47 - 109 1594.35 2.54 1.48 - 111 1339.81 3.80 4.36 - 112 225.19 0.64 0.16 - 113 682.46 1.94 1.25 - 114 223.85 1.43 1.14 - 115 343.78 2.19 2.53 - 116 884.29 2.51 2.02 - 117 -788.53 2.24 1.63 - 119 -162.56 0.46 0.09 - 120 -612.48 1.74 1.02 - 121 -276.86 0.79 0.23 - 122 115.99 0.74 0.34 - 123 6118.73 2.78 0.72 - 125 5851.07 2.66 0.66 - 129 -429.44 0.30 0.02 - 131 -594.17 0.42 0.03 - 133 773.71 0.79 0.13 - 135 160.12 0.11 0.00 - 137 47.02 0.08 0.00 - 145 113.09 0.72 0.32 - 147 106.61 0.68 0.29 - 149 -6.82 0.04 0.00 - 151 -0.00 0.00 0.00 - 153 -88.96 0.25 0.03 - 155 -58.56 0.17 0.01 - 159 49.16 0.14 0.01 - 161 19.38 0.12 0.01 - 163 -65.98 0.19 0.02 - 169 114.57 0.73 0.33 - 171 73.56 0.21 0.02 - 173 6463.90 2.93 0.80 - 175 6406.93 2.91 0.78 - 177 6361.47 2.89 0.77 - 179 6463.93 2.93 0.80 - 180 2.86 0.01 0.00 - 181 2.86 0.01 0.00 - 183 6574.33 2.98 0.82 - 185 -16.02 0.10 0.01 - 186 500.95 3.20 5.08 - 187 6410.82 2.91 0.78 - 189 5010.54 2.27 0.50 - 191 -1357.01 0.96 0.15 - 193 -1825.00 1.29 0.26 - 195 -280.14 0.79 0.24 - 197 -344.13 0.98 0.35 - 199 -366.21 1.04 0.39 - 201 -22.08 0.06 0.00 - 202 626.47 4.00 7.68 - 203 153.74 0.98 0.57 - 204 626.47 1.78 1.07 - 205 500.95 1.42 0.70 - 207 519.95 1.47 0.75 - 209 -101.19 0.65 0.26 - 211 147.49 0.42 0.07 - 213 602.14 1.71 0.99 - 215 577.83 1.64 0.92 - 217 15.43 0.04 0.00 - 219 119.84 0.34 0.05 - 221 -119.84 0.76 0.36 - 223 707.66 2.01 1.34 - 225 726.41 2.06 1.40 - 229 5010.54 3.55 1.47 - 231 4765.56 3.38 1.34 - 233 4643.00 3.29 1.49 - 235 113.72 0.32 0.05 - 237 546.96 1.55 0.83 - 238 665.46 1.89 1.19 - 239 194.83 0.55 0.12 - 240 665.46 1.89 1.19 - 241 665.46 1.89 1.19 - 243 664.50 1.06 0.29 - 245 318.90 0.51 0.08 - 247 198.58 0.32 0.03 - 249 97.17 0.16 0.01 - 251 45.45 0.09 0.00 - 257 25.08 0.07 0.00 - 261 104.98 0.67 0.28 - 263 18.13 0.05 0.00 - 269 336.07 0.95 0.34 - 271 -16.26 0.10 0.01 - 273 335.15 0.95 0.33 - 275 110.10 0.31 0.04 - 277 4.77 0.01 0.00 - 281 105.33 0.43 0.10 - 283 175.98 0.50 0.10 - 285 -87.52 0.25 0.03 - 287 115.43 0.47 0.11 - 289 -72.91 0.30 0.05 - 291 59.97 0.24 0.03 - 293 -61.88 0.39 0.11 - 295 88.46 0.25 0.03 - 297 -219.63 1.40 1.10 - 299 -128.42 0.82 0.41 - 301 -128.42 0.82 0.41 - 303 -91.21 0.58 0.22 - 305 -568.90 1.61 0.89 - 307 -660.11 1.87 1.17 - 309 -123.62 0.79 0.38 - 311 701.45 1.99 1.31 - 313 -40.36 0.11 0.01 - 315 -1544.86 1.10 0.19 - 317 121.34 0.77 0.37 - 319 -7.62 0.02 0.00 - 321 6450.71 2.93 0.79 - 323 73.49 0.21 0.02 - 325 187.85 1.20 0.83 - 329 7717.07 3.50 1.12 - 330 7717.07 3.50 1.11 - 333 7717.07 3.50 1.11 - 10 3291.14 0.00 -74.99 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 10:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 242.00 41.17 100.00 - 15 0.00 162.39 56.50 0.00 - 20 0.00 163.85 15.10 0.00 - 35 1856.00 154.07 61.34 27.08 - 40 0.00 154.10 9.62 99.99 - 50 0.00 143.90 11.87 65.89 - 60 0.00 215.90 93.55 0.00 - 601 0.00 215.89 93.55 0.00 - 61 0.00 215.89 93.55 0.00 - 101 205.15 180.25 59.90 100.00 - 103 143.86 177.90 58.45 100.00 - 105 146.20 169.10 60.92 100.00 - 107 59.01 168.41 63.44 100.00 - 109 249.91 172.06 65.76 100.00 - 111 153.30 163.27 66.41 100.00 - 113 21.61 161.18 68.97 100.00 - 115 56.27 163.44 64.75 100.00 - 117 127.13 163.60 64.99 100.00 - 119 190.22 162.32 69.47 7.38 - 120 0.00 163.11 70.67 81.06 - 121 44.96 163.72 71.81 0.00 - 123 1836.00 164.73 66.61 0.00 - 125 49.25 163.73 66.18 0.00 - 127 19.07 163.79 46.70 0.00 - 129 0.00 163.78 48.87 0.00 - 131 46.17 163.77 68.36 0.00 - 139 6.36 162.95 57.17 0.00 - 141 10.64 162.39 68.63 0.00 - 143 6.70 162.39 72.31 0.00 - 145 29.84 162.30 69.89 0.14 - 147 9.23 162.27 62.30 4.45 - 149 29.24 162.26 63.38 6.73 - 151 156.04 162.25 55.79 4.96 - 153 47.70 162.27 41.63 0.00 - 157 55.93 160.70 63.96 7.38 - 159 44.63 158.48 66.07 7.38 - 161 17.06 156.96 66.28 9.09 - 163 10.17 156.63 65.70 9.12 - 164 0.00 156.63 65.70 0.00 - 166 2.81 156.63 68.73 0.00 - 167 15.72 155.22 69.42 11.54 - 169 0.00 155.22 69.42 11.23 - 171 42.49 154.24 68.57 11.49 - 173 0.00 154.22 68.56 11.54 - 177 62.82 154.09 63.30 100.00 - 179 0.00 154.10 63.31 100.00 - 181 0.00 154.08 63.30 27.08 - 183 0.00 154.18 62.04 100.00 - 184 0.00 153.15 59.43 100.00 - 185 27.70 153.90 59.75 100.00 - 187 0.00 155.32 61.88 100.00 - 189 116.55 155.19 65.51 100.00 - 191 88.45 157.84 57.56 100.00 - 193 77.01 157.84 60.59 100.00 - 195 0.00 157.82 61.67 100.00 - 197 18.40 159.37 59.09 100.00 - 199 128.87 148.46 65.19 11.54 - 201 48.18 147.63 63.92 11.56 - 203 4592.00 147.45 63.03 11.61 - 204 0.00 154.82 57.99 100.00 - 205 70.59 148.43 55.21 100.00 - 206 0.00 146.94 63.23 76.68 - 207 74.94 147.46 59.99 76.66 - 208 0.00 146.35 56.48 76.70 - 209 0.94 145.33 63.84 76.82 - 211 9.36 144.98 59.79 76.95 - 213 15.06 144.91 59.76 76.43 - 215 99.57 144.78 59.70 1.74 - 217 26.16 144.77 60.13 0.00 - 219 44.63 144.76 60.99 0.00 - 225 24.62 144.77 59.26 0.00 - 229 69.31 144.31 57.98 74.20 - 231 17.80 144.31 60.36 0.00 - 237 16.86 144.31 56.46 76.20 - 239 48.18 144.14 56.82 76.20 - 241 0.00 144.14 56.82 76.15 - 243 4.69 144.14 56.39 0.00 - 247 76.01 144.10 54.64 75.78 - 249 0.00 144.10 54.64 75.96 - 251 26.09 144.06 49.42 70.41 - 253 58.88 143.91 46.76 61.64 - 255 43.62 143.95 50.67 70.97 - 257 0.00 163.85 63.63 100.00 - 259 0.00 164.00 60.23 100.00 - 261 0.00 164.18 71.14 100.00 - 263 0.00 164.59 71.32 100.00 - 265 0.00 155.70 67.46 11.00 - 267 0.00 156.31 58.63 100.00 - 269 0.00 155.18 67.24 30.54 - 271 0.00 154.13 64.18 13.86 - 273 0.00 148.43 60.85 10.15 - 275 0.00 147.62 59.63 10.75 - River -7731.31 220.00 0.00 0.00 Reservoir - Lake -3289.92 167.00 0.00 100.00 Reservoir - 1 -13.66 154.10 9.62 7.87 Tank - 2 72.20 143.90 11.87 0.00 Tank - 3 -613.26 163.85 15.10 0.00 Tank - - - Link Results at 10:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 613.26 0.03 0.00 - 40 13.66 0.00 0.00 - 50 -72.20 0.00 0.00 - 60 7731.31 5.48 3.33 - 101 3289.92 4.15 4.35 - 103 1739.64 2.78 1.74 - 105 1345.14 3.82 4.39 - 107 404.21 1.15 0.47 - 109 1595.79 2.55 1.48 - 111 1345.87 3.82 4.39 - 112 213.68 0.61 0.15 - 113 681.37 1.93 1.25 - 114 222.61 1.42 1.13 - 115 345.19 2.20 2.55 - 116 882.37 2.50 2.01 - 117 -794.73 2.25 1.66 - 119 -147.37 0.42 0.07 - 120 -628.75 1.78 1.07 - 121 -294.89 0.84 0.26 - 122 108.51 0.69 0.30 - 123 6018.67 2.73 0.70 - 125 5895.31 2.68 0.67 - 129 -276.83 0.20 0.01 - 131 -438.52 0.31 0.02 - 133 613.26 0.63 0.09 - 135 155.67 0.11 0.00 - 137 46.17 0.07 0.00 - 145 109.50 0.70 0.30 - 147 103.14 0.66 0.27 - 149 -6.70 0.04 0.00 - 151 -0.00 0.00 0.00 - 153 -85.81 0.24 0.03 - 155 -55.97 0.16 0.01 - 159 46.73 0.13 0.01 - 161 17.50 0.11 0.01 - 163 -64.73 0.18 0.02 - 169 112.43 0.72 0.32 - 171 73.81 0.21 0.02 - 173 6383.39 2.90 0.78 - 175 6327.46 2.87 0.77 - 177 6282.84 2.85 0.76 - 179 6388.26 2.90 0.78 - 180 2.81 0.01 0.00 - 181 2.81 0.01 0.00 - 183 6499.99 2.95 0.80 - 185 -15.72 0.10 0.01 - 186 496.66 3.17 5.00 - 187 6345.37 2.88 0.77 - 189 4949.30 2.25 0.49 - 191 -1353.58 0.96 0.15 - 193 -1856.00 1.32 0.27 - 195 -315.94 0.90 0.30 - 197 -378.76 1.07 0.42 - 199 -365.10 1.04 0.39 - 201 13.66 0.04 0.00 - 202 619.25 3.95 7.52 - 203 150.29 0.96 0.55 - 204 619.25 1.76 1.04 - 205 496.66 1.41 0.69 - 207 515.39 1.46 0.74 - 209 -103.53 0.66 0.27 - 211 138.90 0.39 0.07 - 213 600.19 1.70 0.98 - 215 575.99 1.63 0.91 - 217 17.84 0.05 0.00 - 219 122.48 0.35 0.05 - 221 -122.48 0.78 0.37 - 223 706.49 2.00 1.33 - 225 724.89 2.06 1.40 - 229 4949.30 3.51 1.44 - 231 4709.83 3.34 1.31 - 233 4592.00 3.26 1.46 - 235 110.60 0.31 0.04 - 237 539.30 1.53 0.81 - 238 653.97 1.86 1.15 - 239 189.61 0.54 0.12 - 240 653.97 1.86 1.15 - 241 653.97 1.86 1.15 - 243 653.03 1.04 0.28 - 245 313.25 0.50 0.07 - 247 194.97 0.31 0.03 - 249 95.41 0.15 0.01 - 251 44.63 0.09 0.00 - 257 24.62 0.07 0.00 - 261 103.22 0.66 0.27 - 263 17.80 0.05 0.00 - 269 330.42 0.94 0.33 - 271 -16.11 0.10 0.01 - 273 329.67 0.94 0.32 - 275 108.33 0.31 0.04 - 277 4.69 0.01 0.00 - 281 103.64 0.42 0.09 - 283 173.16 0.49 0.10 - 285 -86.08 0.24 0.03 - 287 113.72 0.46 0.11 - 289 -72.20 0.29 0.05 - 291 58.88 0.24 0.03 - 293 -60.98 0.39 0.10 - 295 87.07 0.25 0.03 - 297 -225.35 1.44 1.16 - 299 -130.83 0.84 0.42 - 301 -130.83 0.84 0.42 - 303 -94.52 0.60 0.23 - 305 -569.38 1.62 0.89 - 307 -663.90 1.88 1.19 - 309 -124.72 0.80 0.39 - 311 700.71 1.99 1.31 - 313 -47.58 0.13 0.01 - 315 -1540.06 1.09 0.19 - 317 119.96 0.77 0.36 - 319 -9.36 0.03 0.00 - 321 6375.27 2.89 0.78 - 323 69.65 0.20 0.02 - 325 186.48 1.19 0.81 - 329 7731.31 3.51 1.12 - 330 7731.31 3.51 1.11 - 333 7731.31 3.51 1.13 - 10 3289.92 0.00 -75.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 11:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 241.67 41.02 100.00 - 15 360.00 150.04 51.15 0.00 - 20 0.00 163.62 15.00 0.00 - 35 1801.00 153.90 61.27 28.35 - 40 0.00 154.08 9.61 99.99 - 50 0.00 144.20 12.00 71.40 - 60 0.00 215.87 93.54 0.00 - 601 0.00 215.87 93.53 0.00 - 61 0.00 215.86 93.53 0.00 - 101 226.04 179.16 59.43 100.00 - 103 158.51 176.79 57.97 100.00 - 105 161.09 168.16 60.51 100.00 - 107 65.02 167.47 63.03 100.00 - 109 275.37 170.97 65.29 100.00 - 111 168.91 162.54 66.10 100.00 - 113 23.81 160.55 68.70 100.00 - 115 62.00 162.72 64.44 100.00 - 117 140.07 162.92 64.70 100.00 - 119 209.59 161.84 69.26 7.83 - 120 0.00 162.54 70.43 82.74 - 121 49.54 163.32 71.64 0.00 - 123 1818.00 164.35 66.45 0.00 - 125 54.26 163.34 66.01 0.00 - 127 21.02 163.47 46.57 0.00 - 129 0.00 163.47 48.73 0.00 - 131 50.87 163.45 68.22 0.00 - 139 7.01 160.60 56.15 0.00 - 141 11.72 158.59 66.98 0.00 - 143 7.38 154.58 68.93 0.00 - 145 32.88 158.93 68.43 0.00 - 147 10.17 159.23 60.98 2.70 - 149 32.21 159.36 62.12 6.80 - 151 171.93 160.77 55.15 4.99 - 153 52.56 160.81 41.00 0.00 - 157 61.63 160.27 63.77 7.83 - 159 49.17 158.11 65.91 7.83 - 161 18.80 156.65 66.14 9.59 - 163 11.21 156.32 65.57 9.57 - 164 0.00 156.32 65.57 0.00 - 166 3.09 156.32 68.60 0.00 - 167 17.33 154.97 69.31 10.89 - 169 0.00 154.97 69.31 11.05 - 171 46.81 154.03 68.48 10.91 - 173 0.00 154.01 68.47 10.89 - 177 69.22 153.92 63.23 100.00 - 179 0.00 153.94 63.24 100.00 - 181 0.00 153.90 63.22 28.34 - 183 0.00 154.01 61.97 100.00 - 184 0.00 152.92 59.33 100.00 - 185 30.52 153.67 59.65 100.00 - 187 0.00 155.03 61.76 100.00 - 189 128.42 154.92 65.39 100.00 - 191 97.46 157.39 57.36 100.00 - 193 84.86 157.39 60.40 100.00 - 195 0.00 157.37 61.47 100.00 - 197 20.28 158.83 58.86 100.00 - 199 141.99 148.19 65.08 10.89 - 201 53.09 147.36 63.81 10.89 - 203 4613.00 147.19 62.91 10.86 - 204 0.00 154.56 57.87 100.00 - 205 77.78 148.16 55.10 100.00 - 206 0.00 146.74 63.15 76.74 - 207 82.57 147.21 59.89 76.74 - 208 0.00 146.19 56.41 76.75 - 209 1.04 145.25 63.80 76.81 - 211 10.32 144.93 59.77 76.88 - 213 16.59 144.86 59.73 76.71 - 215 109.71 144.70 59.67 66.91 - 217 28.82 144.69 60.09 0.00 - 219 49.17 144.68 60.96 0.00 - 225 27.13 144.68 59.22 0.00 - 229 76.37 144.39 58.01 76.45 - 231 19.61 144.38 60.40 0.00 - 237 18.58 144.39 56.50 76.56 - 239 53.09 144.28 56.88 76.67 - 241 0.00 144.27 56.88 76.70 - 243 5.16 144.27 56.45 0.00 - 247 83.75 144.25 54.70 76.70 - 249 0.00 144.25 54.70 76.70 - 251 28.75 144.23 49.50 73.72 - 253 64.88 144.15 46.86 69.96 - 255 48.06 144.19 50.78 74.47 - 257 0.00 163.20 63.35 100.00 - 259 0.00 163.34 59.94 100.00 - 261 0.00 163.48 70.84 100.00 - 263 0.00 163.88 71.01 100.00 - 265 0.00 155.43 67.35 11.19 - 267 0.00 155.97 58.48 100.00 - 269 0.00 154.92 67.13 33.62 - 271 0.00 153.94 64.10 13.64 - 273 0.00 148.16 60.73 10.61 - 275 0.00 147.36 59.52 10.79 - River -7759.91 220.00 0.00 0.00 Reservoir - Lake -3311.52 167.00 0.00 100.00 Reservoir - 1 -189.38 154.08 9.61 7.87 Tank - 2 -14.76 144.20 12.00 0.00 Tank - 3 -943.68 163.62 15.00 0.00 Tank - - - Link Results at 11:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 943.68 0.04 0.00 - 40 189.38 0.01 0.00 - 50 14.76 0.00 0.00 - 60 7759.91 5.50 3.36 - 101 3311.52 4.18 4.40 - 103 1749.92 2.79 1.76 - 105 1335.55 3.79 4.33 - 107 401.90 1.14 0.47 - 109 1591.42 2.54 1.48 - 111 1316.05 3.73 4.22 - 112 222.07 0.63 0.16 - 113 663.48 1.88 1.19 - 114 217.88 1.39 1.09 - 115 336.88 2.15 2.44 - 116 857.54 2.43 1.91 - 117 -772.56 2.19 1.57 - 119 -165.07 0.47 0.09 - 120 -591.46 1.68 0.96 - 121 -255.95 0.73 0.20 - 122 124.03 0.79 0.38 - 123 6221.08 2.82 0.74 - 125 5941.91 2.70 0.68 - 129 -452.74 0.32 0.02 - 131 -658.62 0.47 0.04 - 133 943.68 0.96 0.19 - 135 264.04 0.19 0.01 - 137 50.87 0.08 0.00 - 145 213.17 1.36 1.04 - 147 206.16 1.32 0.98 - 149 -367.38 2.34 2.86 - 151 -360.00 2.30 2.75 - 153 172.94 0.49 0.10 - 155 205.82 0.58 0.14 - 159 -215.99 0.61 0.15 - 161 -248.20 1.58 1.38 - 163 -99.05 0.28 0.04 - 169 151.62 0.97 0.56 - 171 321.08 0.91 0.31 - 173 6281.86 2.85 0.76 - 175 6220.23 2.82 0.74 - 177 6171.06 2.80 0.73 - 179 6263.68 2.84 0.75 - 180 3.09 0.01 0.00 - 181 3.09 0.01 0.00 - 183 6366.22 2.89 0.77 - 185 -17.33 0.11 0.01 - 186 485.54 3.10 4.79 - 187 6198.17 2.81 0.74 - 189 4973.46 2.26 0.49 - 191 -1177.89 0.84 0.12 - 193 -1801.00 1.28 0.26 - 195 -443.91 1.26 0.56 - 197 -513.13 1.46 0.74 - 199 -323.75 0.92 0.31 - 201 189.38 0.54 0.12 - 202 621.23 3.97 7.56 - 203 166.22 1.06 0.66 - 204 621.23 1.76 1.05 - 205 485.54 1.38 0.66 - 207 489.97 1.39 0.68 - 209 -92.54 0.59 0.22 - 211 150.73 0.43 0.08 - 213 578.08 1.64 0.92 - 215 554.33 1.57 0.85 - 217 9.92 0.03 0.00 - 219 111.42 0.32 0.04 - 221 -111.42 0.71 0.31 - 223 685.46 1.94 1.26 - 225 705.73 2.00 1.33 - 229 4973.46 3.53 1.45 - 231 4721.49 3.35 1.32 - 233 4613.00 3.27 1.47 - 235 109.98 0.31 0.04 - 237 533.29 1.51 0.79 - 238 626.26 1.78 1.07 - 239 175.55 0.50 0.10 - 240 626.26 1.78 1.07 - 241 626.26 1.78 1.07 - 243 625.23 1.00 0.26 - 245 321.79 0.51 0.08 - 247 214.83 0.34 0.04 - 249 105.12 0.17 0.01 - 251 49.17 0.10 0.00 - 257 27.13 0.08 0.00 - 261 90.38 0.58 0.21 - 263 19.61 0.06 0.00 - 269 293.12 0.83 0.26 - 271 5.61 0.04 0.00 - 273 268.93 0.76 0.22 - 275 84.04 0.24 0.03 - 277 5.16 0.01 0.00 - 281 78.88 0.32 0.06 - 283 131.80 0.37 0.06 - 285 -70.70 0.20 0.02 - 287 65.83 0.27 0.04 - 289 14.76 0.06 0.00 - 291 64.88 0.27 0.04 - 293 -32.35 0.21 0.03 - 295 61.10 0.17 0.01 - 297 -211.47 1.35 1.03 - 299 -124.53 0.79 0.39 - 301 -124.53 0.79 0.39 - 303 -86.94 0.55 0.20 - 305 -561.10 1.59 0.87 - 307 -648.04 1.84 1.13 - 309 -116.85 0.75 0.34 - 311 671.18 1.90 1.21 - 313 -28.47 0.08 0.00 - 315 -1357.09 0.96 0.15 - 317 120.14 0.77 0.36 - 319 -10.16 0.03 0.00 - 321 6249.37 2.84 0.75 - 323 55.41 0.16 0.01 - 325 179.20 1.14 0.76 - 329 7759.91 3.52 1.13 - 330 7759.91 3.52 1.13 - 333 7759.91 3.52 1.13 - 10 3311.52 0.00 -74.67 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 12:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 241.67 41.02 100.00 - 15 360.00 149.80 51.04 0.00 - 20 0.00 163.26 14.85 0.00 - 35 1819.00 153.70 61.18 34.44 - 40 0.00 153.81 9.50 99.99 - 50 0.00 144.14 11.97 70.82 - 60 0.00 215.85 93.53 0.00 - 601 0.00 215.84 93.53 0.00 - 61 0.00 215.84 93.53 0.00 - 101 220.34 179.19 59.44 100.00 - 103 154.51 176.81 57.98 100.00 - 105 157.03 168.10 60.49 100.00 - 107 63.38 167.41 63.01 100.00 - 109 268.42 170.98 65.29 100.00 - 111 164.65 162.42 66.04 100.00 - 113 23.21 160.42 68.64 100.00 - 115 60.44 162.59 64.38 100.00 - 117 136.54 162.76 64.63 100.00 - 119 204.31 161.58 69.15 6.86 - 120 0.00 162.32 70.33 79.03 - 121 48.29 163.03 71.51 0.00 - 123 1818.00 164.06 66.32 0.00 - 125 52.90 163.05 65.88 0.00 - 127 20.49 163.14 46.42 0.00 - 129 0.00 163.14 48.59 0.00 - 131 49.59 163.12 68.08 0.00 - 139 6.83 160.32 56.03 0.00 - 141 11.43 158.35 66.88 0.00 - 143 7.19 154.35 68.83 0.00 - 145 32.05 158.70 68.33 2.74 - 147 9.92 159.00 60.88 5.64 - 149 31.40 159.13 62.02 5.66 - 151 167.60 160.54 55.04 5.98 - 153 51.24 160.58 40.89 0.00 - 157 60.08 160.03 63.66 6.86 - 159 47.93 157.89 65.81 6.86 - 161 18.33 156.44 66.05 8.52 - 163 10.93 156.12 65.48 8.58 - 164 0.00 156.12 65.48 0.02 - 166 3.02 156.12 68.51 0.00 - 167 16.89 154.78 69.23 11.11 - 169 0.00 154.78 69.23 10.82 - 171 45.63 153.85 68.40 11.09 - 173 0.00 153.83 68.39 11.12 - 177 67.48 153.72 63.14 100.00 - 179 0.00 153.74 63.15 100.00 - 181 0.00 153.71 63.14 34.44 - 183 0.00 153.81 61.88 100.00 - 184 0.00 152.77 59.26 100.00 - 185 29.75 153.51 59.58 100.00 - 187 0.00 154.86 61.68 100.00 - 189 125.19 154.74 65.31 100.00 - 191 95.00 157.23 57.29 100.00 - 193 82.72 157.23 60.33 100.00 - 195 0.00 157.21 61.40 100.00 - 197 19.77 158.69 58.79 100.00 - 199 138.41 148.18 65.07 11.12 - 201 51.75 147.37 63.81 11.14 - 203 4531.00 147.20 62.92 11.19 - 204 0.00 154.38 57.79 100.00 - 205 75.82 148.15 55.09 100.00 - 206 0.00 146.74 63.15 77.91 - 207 80.49 147.22 59.89 77.91 - 208 0.00 146.19 56.41 77.91 - 209 1.01 145.24 63.80 77.89 - 211 10.06 144.92 59.76 77.87 - 213 16.17 144.85 59.73 76.76 - 215 106.94 144.70 59.67 72.49 - 217 28.10 144.69 60.09 0.00 - 219 47.93 144.68 60.96 0.00 - 225 26.45 144.68 59.22 0.00 - 229 74.45 144.36 58.00 76.73 - 231 19.12 144.36 60.38 0.00 - 237 18.11 144.36 56.48 76.82 - 239 51.75 144.24 56.86 76.87 - 241 0.00 144.24 56.86 76.88 - 243 5.03 144.24 56.43 0.00 - 247 81.64 144.21 54.69 76.83 - 249 0.00 144.21 54.69 76.88 - 251 28.03 144.18 49.48 76.07 - 253 63.24 144.10 46.84 73.97 - 255 46.85 144.14 50.76 75.19 - 257 0.00 163.02 63.27 100.00 - 259 0.00 163.16 59.87 100.00 - 261 0.00 163.32 70.77 100.00 - 263 0.00 163.73 70.94 100.00 - 265 0.00 155.23 67.26 10.53 - 267 0.00 155.79 58.41 100.00 - 269 0.00 154.73 67.05 25.24 - 271 0.00 153.75 64.02 13.00 - 273 0.00 148.15 60.73 9.98 - 275 0.00 147.37 59.52 10.44 - River -7781.19 220.00 0.00 0.00 Reservoir - Lake -3310.99 167.00 0.00 100.00 Reservoir - 1 -133.92 153.81 9.50 7.87 Tank - 2 3.40 144.14 11.97 0.00 Tank - 3 -841.12 163.26 14.85 0.00 Tank - - - Link Results at 12:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 841.12 0.04 0.00 - 40 133.92 0.01 0.00 - 50 -3.40 0.00 0.00 - 60 7781.19 5.52 3.37 - 101 3310.99 4.17 4.40 - 103 1749.39 2.79 1.76 - 105 1341.26 3.80 4.37 - 107 402.91 1.14 0.47 - 109 1594.88 2.54 1.48 - 111 1326.46 3.76 4.28 - 112 212.70 0.60 0.14 - 113 666.16 1.89 1.19 - 114 217.93 1.39 1.09 - 115 339.53 2.17 2.47 - 116 860.88 2.44 1.92 - 117 -781.32 2.22 1.60 - 119 -151.54 0.43 0.08 - 120 -610.94 1.73 1.02 - 121 -275.35 0.78 0.23 - 122 117.71 0.75 0.35 - 123 6154.68 2.79 0.73 - 125 5963.19 2.71 0.69 - 129 -357.50 0.25 0.01 - 131 -560.05 0.40 0.03 - 133 841.12 0.86 0.15 - 135 260.58 0.18 0.01 - 137 49.59 0.08 0.00 - 145 210.99 1.35 1.02 - 147 204.16 1.30 0.96 - 149 -367.19 2.34 2.86 - 151 -360.00 2.30 2.75 - 153 174.46 0.49 0.10 - 155 206.51 0.59 0.14 - 159 -216.43 0.61 0.15 - 161 -247.83 1.58 1.38 - 163 -98.42 0.28 0.03 - 169 149.66 0.96 0.54 - 171 317.01 0.90 0.30 - 173 6244.31 2.83 0.75 - 175 6184.23 2.81 0.73 - 177 6136.30 2.79 0.72 - 179 6233.21 2.83 0.74 - 180 3.02 0.01 0.00 - 181 3.02 0.01 0.00 - 183 6338.19 2.88 0.77 - 185 -16.89 0.11 0.01 - 186 483.77 3.09 4.76 - 187 6176.66 2.80 0.73 - 189 4893.94 2.22 0.48 - 191 -1237.09 0.88 0.13 - 193 -1819.00 1.29 0.26 - 195 -402.11 1.14 0.47 - 197 -469.59 1.33 0.63 - 199 -335.67 0.95 0.34 - 201 133.92 0.38 0.06 - 202 611.80 3.91 7.35 - 203 157.78 1.01 0.60 - 204 611.80 1.74 1.02 - 205 483.77 1.37 0.66 - 207 493.45 1.40 0.69 - 209 -96.78 0.62 0.24 - 211 144.64 0.41 0.07 - 213 580.55 1.65 0.93 - 215 557.03 1.58 0.86 - 217 13.02 0.04 0.00 - 219 115.24 0.33 0.05 - 221 -115.24 0.74 0.33 - 223 688.58 1.95 1.27 - 225 708.35 2.01 1.34 - 229 4893.94 3.47 1.41 - 231 4645.09 3.29 1.28 - 233 4531.00 3.21 1.42 - 235 110.44 0.31 0.04 - 237 528.24 1.50 0.78 - 238 628.27 1.78 1.07 - 239 180.52 0.51 0.11 - 240 628.27 1.78 1.07 - 241 628.27 1.78 1.07 - 243 627.26 1.00 0.26 - 245 318.15 0.51 0.07 - 247 209.41 0.33 0.03 - 249 102.47 0.16 0.01 - 251 47.93 0.10 0.00 - 257 26.45 0.08 0.00 - 261 92.56 0.59 0.22 - 263 19.12 0.05 0.00 - 269 299.06 0.85 0.27 - 271 1.00 0.01 0.00 - 273 279.95 0.79 0.24 - 275 88.59 0.25 0.03 - 277 5.03 0.01 0.00 - 281 83.55 0.34 0.06 - 283 139.61 0.40 0.07 - 285 -73.43 0.21 0.02 - 287 75.35 0.31 0.05 - 289 -3.40 0.01 0.00 - 291 63.24 0.26 0.04 - 293 -38.15 0.24 0.04 - 295 66.18 0.19 0.02 - 297 -217.88 1.39 1.09 - 299 -127.34 0.81 0.40 - 301 -127.34 0.81 0.40 - 303 -90.54 0.58 0.21 - 305 -563.44 1.60 0.88 - 307 -653.98 1.86 1.15 - 309 -118.92 0.76 0.35 - 311 675.95 1.92 1.23 - 313 -35.17 0.10 0.01 - 315 -1416.89 1.00 0.17 - 317 118.18 0.75 0.35 - 319 -7.74 0.02 0.00 - 321 6219.27 2.82 0.74 - 323 62.34 0.18 0.01 - 325 179.80 1.15 0.76 - 329 7781.19 3.53 1.14 - 330 7781.19 3.53 1.14 - 333 7781.19 3.53 1.14 - 10 3310.99 0.00 -74.67 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 13:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 241.82 41.08 100.00 - 15 360.00 149.72 51.01 0.00 - 20 0.00 162.94 14.71 0.00 - 35 1733.00 153.60 61.14 31.88 - 40 0.00 153.63 9.41 99.99 - 50 0.00 144.15 11.98 71.06 - 60 0.00 215.83 93.52 0.00 - 601 0.00 215.83 93.52 0.00 - 61 0.00 215.83 93.52 0.00 - 101 205.15 179.64 59.64 100.00 - 103 143.86 177.28 58.18 100.00 - 105 146.20 168.39 60.61 100.00 - 107 59.01 167.69 63.13 100.00 - 109 249.91 171.40 65.47 100.00 - 111 153.30 162.56 66.10 100.00 - 113 21.61 160.50 68.68 100.00 - 115 56.27 162.70 64.43 100.00 - 117 127.13 162.81 64.65 100.00 - 119 190.22 161.40 69.07 7.29 - 120 0.00 162.25 70.30 80.73 - 121 44.96 162.81 71.41 0.00 - 123 1822.00 163.84 66.23 0.00 - 125 49.25 162.81 65.78 0.00 - 127 19.07 162.86 46.30 0.00 - 129 0.00 162.86 48.47 0.00 - 131 46.17 162.84 67.96 0.00 - 139 6.36 160.16 55.96 0.00 - 141 10.64 158.26 66.84 0.00 - 143 6.70 154.27 68.79 0.00 - 145 29.84 158.62 68.30 5.53 - 147 9.23 158.92 60.84 5.24 - 149 29.24 159.05 61.98 5.24 - 151 156.04 160.44 55.00 5.24 - 153 47.70 160.47 40.85 0.00 - 157 55.93 159.87 63.60 7.29 - 159 44.63 157.76 65.76 7.29 - 161 17.06 156.33 66.01 8.99 - 163 10.17 156.02 65.44 8.97 - 164 0.00 156.02 65.44 11.12 - 166 2.81 156.02 68.47 0.00 - 167 15.72 154.68 69.19 10.30 - 169 0.00 154.68 69.19 10.42 - 171 42.49 153.76 68.36 10.31 - 173 0.00 153.73 68.35 10.29 - 177 62.82 153.62 63.10 100.00 - 179 0.00 153.63 63.10 100.00 - 181 0.00 153.61 63.09 31.86 - 183 0.00 153.70 61.83 100.00 - 184 0.00 152.71 59.23 100.00 - 185 27.70 153.43 59.55 100.00 - 187 0.00 154.79 61.66 100.00 - 189 116.55 154.65 65.28 100.00 - 191 88.45 157.24 57.30 100.00 - 193 77.01 157.24 60.33 100.00 - 195 0.00 157.22 61.41 100.00 - 197 18.40 158.74 58.82 100.00 - 199 128.87 148.17 65.07 10.29 - 201 48.18 147.37 63.81 10.28 - 203 4521.00 147.20 62.92 10.27 - 204 0.00 154.31 57.76 100.00 - 205 70.59 148.15 55.09 100.00 - 206 0.00 146.77 63.16 77.17 - 207 74.94 147.23 59.90 77.17 - 208 0.00 146.24 56.43 77.18 - 209 0.94 145.32 63.83 77.22 - 211 9.36 145.01 59.80 77.26 - 213 15.06 144.94 59.77 77.90 - 215 99.57 144.81 59.71 75.78 - 217 26.16 144.80 60.14 15.44 - 219 44.63 144.79 61.00 0.00 - 225 24.62 144.79 59.27 0.00 - 229 69.31 144.43 58.03 76.76 - 231 17.80 144.43 60.41 0.00 - 237 16.86 144.43 56.52 77.88 - 239 48.18 144.30 56.89 77.86 - 241 0.00 144.30 56.89 77.86 - 243 4.69 144.29 56.46 0.00 - 247 76.01 144.26 54.71 77.50 - 249 0.00 144.26 54.71 77.84 - 251 26.09 144.23 49.50 76.70 - 253 58.88 144.13 46.85 75.06 - 255 43.62 144.16 50.77 76.35 - 257 0.00 163.04 63.28 100.00 - 259 0.00 163.19 59.88 100.00 - 261 0.00 163.39 70.80 100.00 - 263 0.00 163.81 70.98 100.00 - 265 0.00 155.13 67.22 10.55 - 267 0.00 155.74 58.38 100.00 - 269 0.00 154.65 67.01 27.84 - 271 0.00 153.65 63.98 12.52 - 273 0.00 148.15 60.73 10.38 - 275 0.00 147.37 59.52 10.57 - River -7797.99 220.00 0.00 0.00 Reservoir - Lake -3301.99 167.00 0.00 100.00 Reservoir - 1 10.99 153.63 9.41 7.87 Tank - 2 36.11 144.15 11.98 0.00 Tank - 3 -675.07 162.94 14.71 0.00 Tank - - - Link Results at 13:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 675.07 0.03 0.00 - 40 -10.99 0.00 0.00 - 50 -36.11 0.00 0.00 - 60 7797.99 5.53 3.39 - 101 3301.99 4.16 4.38 - 103 1744.60 2.78 1.75 - 105 1352.25 3.84 4.43 - 107 405.02 1.15 0.48 - 109 1600.74 2.55 1.49 - 111 1350.83 3.83 4.42 - 112 194.13 0.55 0.12 - 113 674.65 1.91 1.22 - 114 219.10 1.40 1.10 - 115 346.00 2.21 2.56 - 116 872.14 2.47 1.97 - 117 -801.03 2.27 1.68 - 119 -123.49 0.35 0.05 - 120 -653.91 1.86 1.15 - 121 -317.87 0.90 0.30 - 122 103.50 0.66 0.27 - 123 6036.59 2.74 0.70 - 125 5975.99 2.71 0.69 - 129 -209.06 0.15 0.00 - 131 -403.50 0.29 0.02 - 133 675.07 0.69 0.10 - 135 252.50 0.18 0.01 - 137 46.17 0.07 0.00 - 145 206.33 1.32 0.98 - 147 199.97 1.28 0.93 - 149 -366.70 2.34 2.85 - 151 -360.00 2.30 2.75 - 153 177.37 0.50 0.10 - 155 207.21 0.59 0.14 - 159 -216.44 0.61 0.15 - 161 -245.68 1.57 1.36 - 163 -97.49 0.28 0.03 - 169 145.19 0.93 0.51 - 171 304.23 0.86 0.28 - 173 6196.06 2.81 0.74 - 175 6140.12 2.79 0.72 - 177 6095.50 2.77 0.71 - 179 6202.72 2.82 0.74 - 180 2.81 0.01 0.00 - 181 2.81 0.01 0.00 - 183 6314.13 2.87 0.76 - 185 -15.72 0.10 0.01 - 186 486.24 3.10 4.80 - 187 6170.01 2.80 0.73 - 189 4854.20 2.20 0.47 - 191 -1273.32 0.90 0.14 - 193 -1733.00 1.23 0.24 - 195 -278.64 0.79 0.24 - 197 -341.47 0.97 0.35 - 199 -352.45 1.00 0.37 - 201 -10.99 0.03 0.00 - 202 607.26 3.88 7.25 - 203 148.72 0.95 0.54 - 204 607.26 1.72 1.01 - 205 486.24 1.38 0.67 - 207 501.17 1.42 0.71 - 209 -104.08 0.66 0.28 - 211 128.40 0.36 0.06 - 213 590.31 1.67 0.95 - 215 566.29 1.61 0.88 - 217 19.85 0.06 0.00 - 219 124.28 0.35 0.05 - 221 -124.28 0.79 0.38 - 223 698.61 1.98 1.30 - 225 717.01 2.03 1.37 - 229 4854.20 3.44 1.39 - 231 4622.02 3.28 1.27 - 233 4521.00 3.21 1.42 - 235 103.32 0.29 0.04 - 237 522.21 1.48 0.76 - 238 617.89 1.75 1.04 - 239 170.62 0.48 0.10 - 240 617.89 1.75 1.04 - 241 617.89 1.75 1.04 - 243 616.95 0.98 0.26 - 245 304.46 0.49 0.07 - 247 194.97 0.31 0.03 - 249 95.41 0.15 0.01 - 251 44.63 0.09 0.00 - 257 24.62 0.07 0.00 - 261 94.43 0.60 0.23 - 263 17.80 0.05 0.00 - 269 303.13 0.86 0.28 - 271 -7.32 0.05 0.00 - 273 293.58 0.83 0.26 - 275 94.82 0.27 0.03 - 277 4.69 0.01 0.00 - 281 90.13 0.37 0.07 - 283 150.59 0.43 0.08 - 285 -76.80 0.22 0.02 - 287 90.92 0.37 0.07 - 289 -36.11 0.15 0.01 - 291 58.88 0.24 0.03 - 293 -47.70 0.30 0.07 - 295 73.79 0.21 0.02 - 297 -232.54 1.48 1.23 - 299 -133.79 0.85 0.44 - 301 -133.79 0.85 0.44 - 303 -98.75 0.63 0.25 - 305 -568.49 1.61 0.89 - 307 -667.24 1.89 1.20 - 309 -124.39 0.79 0.38 - 311 690.69 1.96 1.28 - 313 -52.64 0.15 0.01 - 315 -1454.36 1.03 0.17 - 317 117.77 0.75 0.35 - 319 -14.46 0.04 0.00 - 321 6189.74 2.81 0.74 - 323 52.84 0.15 0.01 - 325 181.04 1.16 0.77 - 329 7797.99 3.54 1.14 - 330 7797.99 3.54 1.14 - 333 7797.99 3.54 1.14 - 10 3301.99 0.00 -74.82 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 14:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 242.09 41.20 100.00 - 15 360.00 149.80 51.04 0.49 - 20 0.00 162.69 14.60 0.00 - 35 1664.00 153.74 61.20 27.92 - 40 0.00 153.64 9.42 99.99 - 50 0.00 144.30 12.04 72.61 - 60 0.00 215.82 93.51 0.00 - 601 0.00 215.82 93.51 0.00 - 61 0.00 215.82 93.51 0.00 - 101 182.35 180.52 60.02 100.00 - 103 127.87 178.18 58.57 100.00 - 105 129.96 169.04 60.89 100.00 - 107 52.45 168.33 63.40 100.00 - 109 222.14 172.25 65.84 100.00 - 111 136.26 162.98 66.29 100.00 - 113 19.21 160.87 68.84 100.00 - 115 50.02 163.08 64.60 100.00 - 117 113.00 163.13 64.79 100.00 - 119 169.08 161.34 69.04 8.23 - 120 0.00 162.33 70.34 84.17 - 121 39.96 162.65 71.34 0.00 - 123 1822.00 163.69 66.16 0.00 - 125 43.78 162.65 65.71 0.00 - 127 16.95 162.66 46.21 0.00 - 129 0.00 162.65 48.38 0.00 - 131 41.04 162.64 67.87 0.00 - 139 5.65 160.11 55.94 0.00 - 141 9.46 158.32 66.87 1.28 - 143 5.95 154.34 68.83 1.07 - 145 26.52 158.70 68.33 5.24 - 147 8.21 159.00 60.88 5.52 - 149 25.99 159.13 62.02 5.52 - 151 138.70 160.48 55.02 5.52 - 153 42.40 160.52 40.87 0.00 - 157 49.72 159.86 63.59 8.23 - 159 39.67 157.81 65.78 8.23 - 161 15.17 156.43 66.05 10.05 - 163 9.04 156.12 65.48 10.00 - 164 0.00 156.12 65.48 11.03 - 166 2.50 156.12 68.51 0.00 - 167 13.98 154.82 69.25 10.93 - 169 0.00 154.82 69.25 11.18 - 171 37.77 153.90 68.42 10.96 - 173 0.00 153.88 68.41 10.93 - 177 55.84 153.75 63.15 100.00 - 179 0.00 153.75 63.15 100.00 - 181 0.00 153.74 63.15 27.94 - 183 0.00 153.84 61.89 100.00 - 184 0.00 152.91 59.32 100.00 - 185 24.62 153.61 59.63 100.00 - 187 0.00 154.98 61.74 100.00 - 189 103.60 154.81 65.35 100.00 - 191 78.62 157.51 57.42 100.00 - 193 68.46 157.51 60.45 100.00 - 195 0.00 157.49 61.52 100.00 - 197 16.36 159.06 58.96 100.00 - 199 114.55 148.53 65.22 10.93 - 201 42.83 147.75 63.98 10.91 - 203 4449.00 147.59 63.08 10.83 - 204 0.00 154.50 57.84 100.00 - 205 62.75 148.51 55.25 100.00 - 206 0.00 147.15 63.33 77.97 - 207 66.61 147.62 60.06 77.96 - 208 0.00 146.62 56.60 77.98 - 209 0.84 145.71 64.00 77.95 - 211 8.32 145.40 59.97 77.93 - 213 13.38 145.34 59.94 77.19 - 215 88.50 145.24 59.90 76.95 - 217 23.25 145.23 60.33 68.93 - 219 39.67 145.22 61.19 0.00 - 225 21.89 145.22 59.46 0.00 - 229 61.61 144.77 58.18 77.90 - 231 15.82 144.77 60.56 0.00 - 237 14.99 144.76 56.66 77.11 - 239 42.83 144.60 57.02 77.25 - 241 0.00 144.60 57.02 77.25 - 243 4.17 144.60 56.59 0.00 - 247 67.56 144.55 54.84 77.31 - 249 0.00 144.55 54.84 77.25 - 251 23.19 144.51 49.62 76.87 - 253 52.34 144.35 46.95 76.12 - 255 38.77 144.38 50.86 77.02 - 257 0.00 163.27 63.38 100.00 - 259 0.00 163.45 59.99 100.00 - 261 0.00 163.72 70.94 100.00 - 263 0.00 164.16 71.13 100.00 - 265 0.00 155.26 67.27 11.47 - 267 0.00 155.94 58.47 100.00 - 269 0.00 154.80 67.07 36.83 - 271 0.00 153.79 64.04 14.14 - 273 0.00 148.50 60.88 15.51 - 275 0.00 147.75 59.69 9.75 - River -7809.38 220.00 0.00 0.00 Reservoir - Lake -3284.64 167.00 0.00 100.00 Reservoir - 1 166.39 153.64 9.42 7.87 Tank - 2 99.10 144.30 12.04 0.00 Tank - 3 -392.66 162.69 14.60 0.00 Tank - - - Link Results at 14:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 392.66 0.02 0.00 - 40 -166.39 0.01 0.00 - 50 -99.10 0.00 0.00 - 60 7809.38 5.54 3.40 - 101 3284.64 4.14 4.34 - 103 1735.50 2.77 1.73 - 105 1366.79 3.88 4.52 - 107 407.87 1.16 0.48 - 109 1607.63 2.57 1.50 - 111 1385.49 3.93 4.64 - 112 162.65 0.46 0.09 - 113 684.71 1.94 1.26 - 114 220.05 1.40 1.11 - 115 355.42 2.27 2.69 - 116 885.55 2.51 2.02 - 117 -828.96 2.35 1.79 - 119 -77.30 0.22 0.02 - 120 -715.02 2.03 1.36 - 121 -382.96 1.09 0.43 - 122 76.36 0.49 0.16 - 123 5824.17 2.64 0.66 - 125 5987.38 2.72 0.69 - 129 46.89 0.03 0.00 - 131 -135.11 0.10 0.00 - 133 392.66 0.40 0.04 - 135 240.59 0.17 0.01 - 137 41.04 0.07 0.00 - 145 199.55 1.27 0.92 - 147 193.90 1.24 0.88 - 149 -365.95 2.34 2.84 - 151 -360.00 2.30 2.75 - 153 181.51 0.51 0.11 - 155 208.03 0.59 0.14 - 159 -216.24 0.61 0.15 - 161 -242.23 1.55 1.32 - 163 -95.83 0.27 0.03 - 169 138.23 0.88 0.47 - 171 285.10 0.81 0.25 - 173 6085.00 2.76 0.71 - 175 6035.28 2.74 0.70 - 177 5995.61 2.72 0.69 - 179 6117.62 2.78 0.72 - 180 2.50 0.01 0.00 - 181 2.50 0.01 0.00 - 183 6238.33 2.83 0.75 - 185 -13.98 0.09 0.01 - 186 486.95 3.11 4.82 - 187 6123.88 2.78 0.72 - 189 4755.79 2.16 0.45 - 191 -1330.33 0.94 0.15 - 193 -1664.00 1.18 0.22 - 195 -151.72 0.43 0.08 - 197 -207.57 0.59 0.14 - 199 -373.96 1.06 0.41 - 201 -166.39 0.47 0.09 - 202 596.18 3.81 7.01 - 203 133.86 0.85 0.44 - 204 596.18 1.69 0.97 - 205 486.95 1.38 0.67 - 207 507.82 1.44 0.72 - 209 -115.20 0.74 0.33 - 211 100.47 0.28 0.04 - 213 602.14 1.71 0.99 - 215 577.71 1.64 0.92 - 217 30.04 0.09 0.00 - 219 137.17 0.39 0.06 - 221 -137.17 0.88 0.46 - 223 710.81 2.02 1.35 - 225 727.17 2.06 1.40 - 229 4755.79 3.37 1.34 - 231 4544.19 3.22 1.23 - 233 4449.00 3.16 1.37 - 235 97.05 0.28 0.03 - 237 514.51 1.46 0.74 - 238 616.24 1.75 1.03 - 239 168.34 0.48 0.09 - 240 616.24 1.75 1.03 - 241 616.24 1.75 1.03 - 243 615.40 0.98 0.25 - 245 286.78 0.46 0.06 - 247 173.31 0.28 0.02 - 249 84.81 0.14 0.01 - 251 39.67 0.08 0.00 - 257 21.89 0.06 0.00 - 261 100.09 0.64 0.26 - 263 15.82 0.04 0.00 - 269 320.29 0.91 0.31 - 271 -22.66 0.14 0.02 - 273 327.97 0.93 0.32 - 275 109.38 0.31 0.04 - 277 4.17 0.01 0.00 - 281 105.21 0.43 0.10 - 283 175.77 0.50 0.10 - 285 -85.54 0.24 0.03 - 287 123.18 0.50 0.13 - 289 -99.10 0.40 0.09 - 291 52.34 0.21 0.03 - 293 -67.03 0.43 0.12 - 295 90.23 0.26 0.03 - 297 -255.71 1.63 1.46 - 299 -143.93 0.92 0.50 - 301 -143.93 0.92 0.50 - 303 -111.78 0.71 0.32 - 305 -573.26 1.63 0.90 - 307 -685.03 1.94 1.26 - 309 -132.25 0.84 0.43 - 311 709.95 2.01 1.34 - 313 -81.48 0.23 0.02 - 315 -1512.28 1.07 0.19 - 317 115.97 0.74 0.34 - 319 -18.92 0.05 0.00 - 321 6106.08 2.77 0.72 - 323 52.36 0.15 0.01 - 325 181.95 1.16 0.78 - 329 7809.38 3.54 1.15 - 330 7809.38 3.54 1.14 - 333 7809.38 3.54 1.14 - 10 3284.64 0.00 -75.09 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 15:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 152.21 2.26 100.00 - 15 360.00 148.27 50.38 3.19 - 20 0.00 162.54 14.53 0.00 - 35 1620.00 151.74 60.33 24.42 - 40 0.00 153.88 9.52 100.00 - 50 0.00 144.70 12.22 77.44 - 60 0.00 215.70 93.46 0.00 - 601 0.00 215.70 93.46 0.00 - 61 0.00 215.70 93.46 0.00 - 101 157.66 152.21 47.75 100.00 - 103 110.56 152.18 47.31 100.00 - 105 112.36 152.92 53.91 100.00 - 107 45.35 152.90 56.72 100.00 - 109 192.06 152.18 57.14 100.00 - 111 117.81 152.34 61.67 100.00 - 113 16.61 152.33 65.14 100.00 - 115 43.24 152.90 60.19 100.00 - 117 97.70 154.74 61.16 100.00 - 119 146.19 158.97 68.01 9.77 - 120 0.00 157.61 68.29 89.32 - 121 34.55 160.99 70.62 0.00 - 123 1817.00 162.06 65.46 0.00 - 125 37.85 161.16 65.07 0.00 - 127 14.66 161.94 45.90 0.00 - 129 0.00 161.93 48.07 0.00 - 131 35.48 161.93 67.56 0.00 - 139 4.89 158.93 55.43 0.00 - 141 8.18 156.77 66.20 2.85 - 143 5.15 152.82 68.17 2.68 - 145 22.93 157.07 67.63 5.52 - 147 7.10 157.31 60.15 6.16 - 149 22.47 157.41 61.27 6.16 - 151 119.92 158.47 54.15 6.16 - 153 36.66 158.52 40.00 0.00 - 157 42.99 157.46 62.55 9.77 - 159 34.30 155.38 64.73 9.77 - 161 13.11 153.97 64.98 11.77 - 163 7.82 153.68 64.42 11.68 - 164 0.00 153.68 64.42 9.35 - 166 2.16 153.68 67.46 0.00 - 167 12.08 152.51 68.25 12.18 - 169 0.00 152.51 68.25 12.52 - 171 32.65 151.80 67.51 12.21 - 173 0.00 151.78 67.50 12.18 - 177 48.28 151.79 62.30 100.00 - 179 0.00 151.84 62.33 100.00 - 181 0.00 151.75 62.29 24.43 - 183 0.00 151.84 61.03 100.00 - 184 0.00 150.59 58.32 100.00 - 185 21.29 151.19 58.58 100.00 - 187 0.00 151.87 60.39 100.00 - 189 89.57 152.08 64.16 100.00 - 191 67.98 152.19 55.11 100.00 - 193 59.19 152.25 58.17 100.00 - 195 0.00 152.28 59.27 100.00 - 197 14.14 152.23 55.99 100.00 - 199 99.04 146.83 64.49 12.18 - 201 37.03 146.10 63.26 12.13 - 203 4439.00 145.94 62.37 12.01 - 204 0.00 151.63 56.60 100.00 - 205 54.25 146.82 54.52 100.00 - 206 0.00 145.88 62.78 77.72 - 207 57.59 146.11 59.41 77.70 - 208 0.00 145.62 56.17 77.75 - 209 0.72 145.17 63.77 77.85 - 211 7.20 145.02 59.80 77.90 - 213 11.57 144.98 59.79 77.97 - 215 76.52 144.90 59.75 76.79 - 217 20.10 144.90 60.18 72.18 - 219 34.30 144.89 61.05 0.00 - 225 18.92 144.89 59.32 0.00 - 229 53.27 144.77 58.18 77.18 - 231 13.68 144.77 60.56 0.00 - 237 12.96 144.77 56.66 77.82 - 239 37.03 144.72 57.08 77.71 - 241 0.00 144.72 57.08 77.68 - 243 3.60 144.72 56.64 0.00 - 247 58.42 144.71 54.90 77.66 - 249 0.00 144.71 54.90 77.68 - 251 20.05 144.71 49.70 77.86 - 253 45.25 144.67 47.09 76.63 - 255 33.52 144.70 51.00 77.11 - 257 0.00 155.85 60.16 100.00 - 259 0.00 155.60 56.59 100.00 - 261 0.00 154.72 67.04 100.00 - 263 0.00 154.62 67.00 100.00 - 265 0.00 152.88 66.24 13.00 - 267 0.00 152.23 56.86 100.00 - 269 0.00 152.23 65.96 51.48 - 271 0.00 151.76 63.16 16.86 - 273 0.00 146.82 60.15 25.47 - 275 0.00 146.11 58.98 20.46 - River -7930.21 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -808.20 153.88 9.52 7.87 Tank - 2 -26.94 144.70 12.22 0.00 Tank - 3 -2000.58 162.54 14.53 0.00 Tank - - - Link Results at 15:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 2000.58 0.08 0.00 - 40 808.20 0.03 0.00 - 50 26.94 0.00 0.00 - 60 7930.21 5.62 3.50 - 101 0.00 0.00 0.00 - 103 147.42 0.24 0.02 - 105 -305.07 0.87 0.28 - 107 51.96 0.15 0.01 - 109 36.86 0.06 0.00 - 111 -155.20 0.44 0.08 - 112 410.14 1.16 0.49 - 113 31.72 0.09 0.00 - 114 105.93 0.68 0.29 - 115 6.60 0.04 0.00 - 116 121.04 0.34 0.05 - 117 469.39 1.33 0.62 - 119 -552.71 1.57 0.85 - 120 846.94 2.40 1.86 - 121 761.81 2.16 1.53 - 122 272.85 1.74 1.65 - 123 7344.52 3.33 1.01 - 125 6113.21 2.77 0.72 - 129 -1538.71 1.09 0.19 - 131 -1731.72 1.23 0.24 - 133 2000.58 2.04 0.76 - 135 254.20 0.18 0.01 - 137 35.48 0.06 0.00 - 145 218.72 1.40 1.09 - 147 213.83 1.36 1.05 - 149 -365.15 2.33 2.83 - 151 -360.00 2.30 2.75 - 153 159.49 0.45 0.08 - 155 182.42 0.52 0.11 - 159 -189.52 0.54 0.12 - 161 -211.99 1.35 1.03 - 163 -118.50 0.34 0.05 - 169 155.16 0.99 0.58 - 171 213.40 0.61 0.15 - 173 6137.99 2.79 0.72 - 175 6095.00 2.77 0.71 - 177 6060.71 2.75 0.71 - 179 5871.36 2.66 0.67 - 180 2.16 0.00 0.00 - 181 2.16 0.00 0.00 - 183 5731.71 2.60 0.64 - 185 -12.08 0.08 0.01 - 186 332.03 2.12 2.37 - 187 5331.63 2.42 0.56 - 189 4558.78 2.07 0.42 - 191 -740.20 0.52 0.05 - 193 -1620.00 1.15 0.21 - 195 -760.09 2.16 1.52 - 197 -808.37 2.29 1.71 - 199 -0.17 0.00 0.00 - 201 808.20 2.29 1.71 - 202 548.29 3.50 6.00 - 203 237.55 1.52 1.28 - 204 548.29 1.56 0.83 - 205 332.03 0.94 0.33 - 207 237.72 0.67 0.18 - 209 132.67 0.85 0.43 - 211 388.00 1.10 0.44 - 213 199.36 0.57 0.13 - 215 191.68 0.54 0.12 - 217 -176.07 0.50 0.10 - 219 -176.23 0.50 0.10 - 221 176.23 1.12 0.73 - 223 91.27 0.26 0.03 - 225 105.41 0.30 0.04 - 229 4558.78 3.23 1.24 - 231 4386.44 3.11 1.15 - 233 4439.00 3.15 1.37 - 235 73.31 0.21 0.02 - 237 455.69 1.29 0.59 - 238 420.17 1.19 0.51 - 239 22.07 0.06 0.00 - 240 420.17 1.19 0.51 - 241 420.17 1.19 0.51 - 243 419.45 0.67 0.12 - 245 220.35 0.35 0.04 - 247 149.84 0.24 0.02 - 249 73.32 0.12 0.00 - 251 34.30 0.07 0.00 - 257 18.92 0.05 0.00 - 261 58.94 0.38 0.10 - 263 13.68 0.04 0.00 - 269 191.90 0.54 0.12 - 271 8.01 0.05 0.00 - 273 170.94 0.48 0.10 - 275 52.39 0.15 0.01 - 277 3.60 0.01 0.00 - 281 48.79 0.20 0.02 - 283 81.52 0.23 0.02 - 285 -45.15 0.13 0.01 - 287 35.52 0.15 0.01 - 289 26.94 0.11 0.01 - 291 45.25 0.18 0.02 - 293 -16.32 0.10 0.01 - 295 36.38 0.10 0.01 - 297 357.98 2.28 2.73 - 299 172.05 1.10 0.70 - 301 172.05 1.10 0.70 - 303 185.93 1.19 0.81 - 305 111.40 0.32 0.04 - 307 297.33 0.84 0.27 - 309 129.68 0.83 0.42 - 311 62.00 0.18 0.01 - 313 268.28 0.76 0.22 - 315 -859.91 0.61 0.07 - 317 111.66 0.71 0.32 - 319 -38.35 0.11 0.01 - 321 5861.39 2.66 0.66 - 323 -89.59 0.25 0.03 - 325 119.72 0.76 0.36 - 329 7930.21 3.60 1.18 - 330 7930.21 3.60 1.17 - 333 7930.21 3.60 1.19 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 16:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 151.99 2.16 100.00 - 15 0.00 159.18 55.11 2.49 - 20 0.00 161.78 14.20 0.00 - 35 1613.00 151.33 60.16 42.05 - 40 0.00 152.73 9.03 7.87 - 50 0.00 144.59 12.17 77.38 - 60 0.00 215.67 93.45 0.00 - 601 0.00 215.67 93.45 0.00 - 61 0.00 215.67 93.45 0.00 - 101 150.06 151.99 47.66 100.00 - 103 105.23 151.96 47.21 100.00 - 105 106.94 152.70 53.81 99.90 - 107 43.17 152.68 56.62 100.00 - 109 182.81 151.95 57.04 100.00 - 111 112.13 152.08 61.56 53.27 - 113 15.81 152.06 65.02 100.00 - 115 41.16 152.66 60.08 1.18 - 117 92.99 154.52 61.06 0.00 - 119 139.14 158.73 67.91 0.00 - 120 0.00 157.37 68.19 0.00 - 121 32.89 160.65 70.47 0.00 - 123 1824.00 161.73 65.31 0.00 - 125 36.02 160.78 64.90 0.00 - 127 13.95 161.35 45.65 0.00 - 129 0.00 161.35 47.82 0.00 - 131 33.77 161.34 67.31 0.00 - 139 4.65 160.08 55.93 0.00 - 141 7.78 159.18 67.24 2.24 - 143 4.90 159.18 70.92 2.30 - 145 21.83 159.01 68.46 5.98 - 147 6.75 158.93 60.85 5.81 - 149 21.39 158.91 61.92 6.28 - 151 114.14 158.77 54.28 6.28 - 153 34.89 158.81 40.13 0.00 - 157 40.91 157.20 62.44 0.00 - 159 32.64 155.07 64.59 0.00 - 161 12.48 153.63 64.83 0.00 - 163 7.44 153.34 64.27 0.00 - 164 0.00 153.34 64.27 9.05 - 166 2.05 153.34 67.31 0.00 - 167 11.50 152.13 68.09 9.77 - 169 0.00 152.14 68.09 6.43 - 171 31.08 151.41 67.34 9.59 - 173 0.00 151.39 67.33 9.77 - 177 45.95 151.37 62.12 7.89 - 179 0.00 151.41 62.14 7.89 - 181 0.00 151.34 62.11 21.34 - 183 0.00 151.41 60.84 48.97 - 184 0.00 150.22 58.16 86.24 - 185 20.26 150.82 58.42 68.19 - 187 0.00 151.52 60.24 78.97 - 189 85.26 151.71 64.00 47.37 - 191 64.70 151.89 54.98 97.94 - 193 56.33 151.94 58.04 46.51 - 195 0.00 151.97 59.13 9.77 - 197 13.46 151.93 55.87 100.00 - 199 94.26 146.50 64.34 9.86 - 201 35.24 145.78 63.12 10.94 - 203 4449.00 145.61 62.23 11.78 - 204 0.00 151.27 56.45 79.15 - 205 51.63 146.49 54.37 100.00 - 206 0.00 145.59 62.65 95.82 - 207 54.82 145.79 59.27 95.82 - 208 0.00 145.37 56.06 95.82 - 209 0.69 144.98 63.69 95.82 - 211 6.85 144.85 59.73 89.62 - 213 11.01 144.81 59.71 77.90 - 215 72.83 144.74 59.68 76.79 - 217 19.13 144.73 60.11 74.11 - 219 32.64 144.73 60.98 0.00 - 225 18.01 144.73 59.25 0.00 - 229 50.70 144.64 58.12 77.85 - 231 13.02 144.63 60.50 0.00 - 237 12.33 144.64 56.61 77.90 - 239 35.24 144.60 57.02 77.91 - 241 0.00 144.60 57.02 77.92 - 243 3.43 144.60 56.59 0.00 - 247 55.60 144.59 54.85 77.91 - 249 0.00 144.59 54.85 77.97 - 251 19.09 144.59 49.65 77.46 - 253 43.07 144.56 47.04 77.43 - 255 31.91 144.58 50.95 77.03 - 257 0.00 155.62 60.06 0.00 - 259 0.00 155.37 56.49 0.00 - 261 0.00 154.49 66.94 0.23 - 263 0.00 154.40 66.90 15.16 - 265 0.00 152.52 66.09 2.77 - 267 0.00 151.90 56.72 38.95 - 269 0.00 151.85 65.80 9.74 - 271 0.00 151.36 62.98 9.85 - 273 0.00 146.49 60.01 42.35 - 275 0.00 145.79 58.84 41.54 - River -7954.92 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -641.32 152.73 9.03 7.87 Tank - 2 -36.26 144.59 12.17 0.00 Tank - 3 -1661.51 161.78 14.20 0.00 Tank - - - Link Results at 16:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 1661.51 0.07 0.00 - 40 641.32 0.03 0.00 - 50 36.26 0.00 0.00 - 60 7954.92 5.64 3.52 - 101 0.00 0.00 0.00 - 103 153.85 0.25 0.02 - 105 -303.91 0.86 0.28 - 107 58.13 0.16 0.01 - 109 48.62 0.08 0.00 - 111 -134.19 0.38 0.06 - 112 419.24 1.19 0.51 - 113 52.37 0.15 0.01 - 114 109.32 0.70 0.30 - 115 14.96 0.10 0.01 - 116 145.88 0.41 0.07 - 117 468.98 1.33 0.62 - 119 -554.76 1.57 0.85 - 120 848.27 2.41 1.87 - 121 759.69 2.16 1.52 - 122 268.45 1.71 1.60 - 123 7137.22 3.24 0.96 - 125 6130.92 2.78 0.72 - 129 -1307.63 0.93 0.14 - 131 -1476.02 1.05 0.18 - 133 1661.51 1.70 0.54 - 135 171.53 0.12 0.00 - 137 33.77 0.05 0.00 - 145 137.76 0.88 0.46 - 147 133.11 0.85 0.44 - 149 -4.90 0.03 0.00 - 151 -0.00 0.00 0.00 - 153 -120.43 0.34 0.05 - 155 -98.60 0.28 0.03 - 159 91.85 0.26 0.03 - 161 70.46 0.45 0.13 - 163 -97.47 0.28 0.03 - 169 132.37 0.84 0.43 - 171 -53.79 0.15 0.01 - 173 6203.60 2.82 0.74 - 175 6162.68 2.80 0.73 - 177 6130.04 2.78 0.72 - 179 5943.10 2.70 0.68 - 180 2.05 0.00 0.00 - 181 2.05 0.00 0.00 - 183 5807.96 2.64 0.65 - 185 -11.50 0.07 0.00 - 186 339.34 2.17 2.47 - 187 5409.26 2.46 0.57 - 189 4529.04 2.06 0.41 - 191 -849.15 0.60 0.06 - 193 -1613.00 1.14 0.21 - 195 -639.84 1.82 1.11 - 197 -685.79 1.95 1.26 - 199 -44.48 0.13 0.01 - 201 641.32 1.82 1.11 - 202 545.22 3.48 5.94 - 203 226.14 1.44 1.16 - 204 545.22 1.55 0.82 - 205 339.34 0.96 0.34 - 207 270.62 0.77 0.23 - 209 126.11 0.80 0.39 - 211 387.20 1.10 0.44 - 213 213.23 0.60 0.14 - 215 218.80 0.62 0.15 - 217 -170.84 0.48 0.10 - 219 -174.46 0.49 0.10 - 221 174.46 1.11 0.72 - 223 107.09 0.30 0.04 - 225 120.55 0.34 0.05 - 229 4529.04 3.21 1.22 - 231 4366.36 3.10 1.14 - 233 4449.00 3.16 1.37 - 235 68.41 0.19 0.02 - 237 451.21 1.28 0.58 - 238 389.30 1.10 0.44 - 239 -7.10 0.02 0.00 - 240 389.30 1.10 0.44 - 241 389.30 1.10 0.44 - 243 388.61 0.62 0.11 - 245 207.16 0.33 0.03 - 247 142.62 0.23 0.02 - 249 69.79 0.11 0.00 - 251 32.64 0.07 0.00 - 257 18.01 0.05 0.00 - 261 53.53 0.34 0.08 - 263 13.02 0.04 0.00 - 269 174.60 0.50 0.10 - 271 10.20 0.07 0.00 - 273 152.08 0.43 0.08 - 275 45.89 0.13 0.01 - 277 3.43 0.01 0.00 - 281 42.46 0.17 0.02 - 283 70.95 0.20 0.02 - 285 -40.38 0.11 0.01 - 287 27.23 0.11 0.01 - 289 36.26 0.15 0.01 - 291 43.07 0.18 0.02 - 293 -11.49 0.07 0.00 - 295 30.57 0.09 0.00 - 297 357.03 2.28 2.71 - 299 171.62 1.10 0.70 - 301 171.62 1.10 0.70 - 303 185.42 1.18 0.81 - 305 111.94 0.32 0.04 - 307 297.36 0.84 0.27 - 309 125.64 0.80 0.39 - 311 93.16 0.26 0.03 - 313 263.18 0.75 0.21 - 315 -973.16 0.69 0.08 - 317 110.78 0.71 0.31 - 319 -42.37 0.12 0.01 - 321 5933.60 2.69 0.68 - 323 -117.88 0.33 0.05 - 325 124.01 0.79 0.38 - 329 7954.92 3.61 1.19 - 330 7954.92 3.61 1.17 - 333 7954.92 3.61 1.19 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 17:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 151.66 2.02 100.00 - 15 0.00 158.69 54.90 2.47 - 20 0.00 161.15 13.93 0.00 - 35 1620.00 150.80 59.93 4.20 - 40 0.00 151.83 8.63 7.87 - 50 0.00 144.44 12.11 76.62 - 60 0.00 215.64 93.43 0.00 - 601 0.00 215.63 93.43 0.00 - 61 0.00 215.63 93.43 0.00 - 101 140.56 151.66 47.52 68.43 - 103 98.57 151.63 47.07 100.00 - 105 100.17 152.35 53.67 0.00 - 107 40.43 152.33 56.47 100.00 - 109 171.24 151.62 56.90 100.00 - 111 105.04 151.70 61.40 2.63 - 113 14.81 151.67 64.85 34.17 - 115 38.55 152.30 59.92 2.63 - 117 87.11 154.13 60.89 0.00 - 119 130.34 158.23 67.69 0.00 - 120 0.00 156.91 67.99 0.00 - 121 30.81 160.13 70.25 0.00 - 123 1816.00 161.23 65.09 0.00 - 125 33.74 160.25 64.67 0.00 - 127 13.07 160.77 45.40 0.00 - 129 0.00 160.76 47.56 0.00 - 131 31.63 160.76 67.06 0.00 - 139 4.36 159.55 55.70 0.00 - 141 7.29 158.69 67.03 0.00 - 143 4.59 158.69 70.71 2.25 - 145 20.45 158.52 68.25 5.52 - 147 6.33 158.45 60.64 6.16 - 149 20.03 158.42 61.71 5.86 - 151 106.92 158.28 54.07 2.63 - 153 32.69 158.32 39.92 0.00 - 157 38.32 156.70 62.22 0.00 - 159 30.58 154.57 64.38 0.00 - 161 11.69 153.13 64.62 0.00 - 163 6.97 152.83 64.06 0.00 - 164 0.00 152.83 64.06 9.84 - 166 1.92 152.83 67.09 0.00 - 167 10.77 151.63 67.87 0.00 - 169 0.00 151.63 67.87 0.00 - 171 29.11 150.89 67.11 0.00 - 173 0.00 150.87 67.11 0.00 - 177 43.05 150.84 61.89 10.44 - 179 0.00 150.87 61.91 10.50 - 181 0.00 150.81 61.88 4.14 - 183 0.00 150.87 60.61 19.09 - 184 0.00 149.75 57.95 52.55 - 185 18.98 150.33 58.21 51.08 - 187 0.00 151.05 60.03 70.95 - 189 79.86 151.23 63.79 21.04 - 191 60.61 151.47 54.80 66.60 - 193 52.77 151.51 57.85 45.54 - 195 0.00 151.55 58.95 0.00 - 197 12.61 151.53 55.69 100.00 - 199 88.30 146.06 64.16 0.00 - 201 33.01 145.35 62.94 1.09 - 203 4460.00 145.19 62.04 1.14 - 204 0.00 150.80 56.24 70.97 - 205 48.37 146.06 54.19 67.33 - 206 0.00 145.23 62.49 99.74 - 207 51.35 145.39 59.10 95.81 - 208 0.00 145.04 55.91 100.00 - 209 0.64 144.72 63.58 100.00 - 211 6.42 144.62 59.63 96.99 - 213 10.32 144.59 59.62 95.72 - 215 68.22 144.53 59.59 77.86 - 217 17.92 144.52 60.02 76.41 - 219 30.58 144.51 60.88 0.00 - 225 16.87 144.52 59.15 0.00 - 229 47.49 144.45 58.04 77.89 - 231 12.20 144.45 60.42 0.00 - 237 11.55 144.46 56.53 78.50 - 239 33.01 144.43 56.95 77.80 - 241 0.00 144.43 56.95 77.85 - 243 3.21 144.43 56.52 0.00 - 247 52.08 144.43 54.78 77.90 - 249 0.00 144.43 54.78 77.90 - 251 17.88 144.42 49.58 77.25 - 253 40.34 144.40 46.97 77.12 - 255 29.89 144.42 50.88 77.32 - 257 0.00 155.20 59.88 0.00 - 259 0.00 154.96 56.31 0.00 - 261 0.00 154.10 66.77 0.00 - 263 0.00 154.01 66.73 0.00 - 265 0.00 152.01 65.87 0.00 - 267 0.00 151.45 56.53 42.58 - 269 0.00 151.35 65.58 0.00 - 271 0.00 150.84 62.76 0.00 - 273 0.00 146.05 59.82 44.52 - 275 0.00 145.38 58.66 44.55 - River -7991.76 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -538.31 151.83 8.63 7.87 Tank - 2 -50.47 144.44 12.11 0.00 Tank - 3 -1571.06 161.15 13.93 0.00 Tank - - - Link Results at 17:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 1571.06 0.07 0.00 - 40 538.31 0.02 0.00 - 50 50.47 0.00 0.00 - 60 7991.76 5.67 3.55 - 101 0.00 0.00 0.00 - 103 159.65 0.25 0.02 - 105 -300.21 0.85 0.27 - 107 62.62 0.18 0.01 - 109 61.08 0.10 0.00 - 111 -110.16 0.31 0.04 - 112 422.92 1.20 0.51 - 113 72.07 0.20 0.02 - 114 111.65 0.71 0.31 - 115 22.19 0.14 0.02 - 116 168.91 0.48 0.09 - 117 463.01 1.31 0.61 - 119 -550.94 1.56 0.84 - 120 835.02 2.37 1.82 - 121 749.01 2.12 1.48 - 122 266.03 1.70 1.57 - 123 7106.59 3.23 0.95 - 125 6175.76 2.80 0.73 - 129 -1227.68 0.87 0.13 - 131 -1392.20 0.99 0.16 - 133 1571.06 1.60 0.49 - 135 165.79 0.12 0.00 - 137 31.63 0.05 0.00 - 145 134.15 0.86 0.44 - 147 129.79 0.83 0.42 - 149 -4.59 0.03 0.00 - 151 0.00 0.00 0.00 - 153 -117.91 0.33 0.05 - 155 -97.47 0.28 0.03 - 159 91.14 0.26 0.03 - 161 71.11 0.45 0.14 - 163 -98.10 0.28 0.03 - 169 130.78 0.83 0.42 - 171 -62.29 0.18 0.01 - 173 6203.53 2.82 0.74 - 175 6165.21 2.80 0.73 - 177 6134.63 2.78 0.72 - 179 5952.92 2.70 0.68 - 180 1.92 0.00 0.00 - 181 1.92 0.00 0.00 - 183 5824.94 2.64 0.66 - 185 -10.77 0.07 0.00 - 186 344.84 2.20 2.54 - 187 5435.71 2.47 0.58 - 189 4487.82 2.04 0.41 - 191 -918.77 0.65 0.07 - 193 -1620.00 1.15 0.21 - 195 -573.74 1.63 0.91 - 197 -616.79 1.75 1.04 - 199 -78.47 0.22 0.02 - 201 538.31 1.53 0.80 - 202 541.35 3.46 5.86 - 203 215.49 1.38 1.06 - 204 541.35 1.54 0.81 - 205 344.84 0.98 0.35 - 207 293.97 0.83 0.26 - 209 118.49 0.76 0.35 - 211 378.46 1.07 0.42 - 213 226.35 0.64 0.16 - 215 241.35 0.68 0.18 - 217 -163.90 0.46 0.09 - 219 -170.02 0.48 0.10 - 221 170.02 1.09 0.69 - 223 123.05 0.35 0.05 - 225 135.66 0.38 0.06 - 229 4487.82 3.18 1.20 - 231 4339.89 3.08 1.13 - 233 4460.00 3.16 1.38 - 235 59.64 0.17 0.01 - 237 443.07 1.26 0.56 - 238 348.15 0.99 0.36 - 239 -43.57 0.12 0.01 - 240 348.15 0.99 0.36 - 241 348.15 0.99 0.36 - 243 347.51 0.55 0.09 - 245 190.13 0.30 0.03 - 247 133.59 0.21 0.02 - 249 65.37 0.10 0.00 - 251 30.58 0.06 0.00 - 257 16.87 0.05 0.00 - 261 46.22 0.30 0.06 - 263 12.20 0.03 0.00 - 269 150.96 0.43 0.08 - 271 13.47 0.09 0.01 - 273 125.94 0.36 0.05 - 275 36.80 0.10 0.01 - 277 3.21 0.01 0.00 - 281 33.59 0.14 0.01 - 283 56.13 0.16 0.01 - 285 -34.08 0.10 0.00 - 287 15.59 0.06 0.00 - 289 50.47 0.21 0.02 - 291 40.34 0.16 0.02 - 293 -4.17 0.03 0.00 - 295 22.05 0.06 0.00 - 297 352.04 2.25 2.64 - 299 169.23 1.08 0.68 - 301 169.23 1.08 0.68 - 303 182.81 1.17 0.78 - 305 110.97 0.31 0.04 - 307 293.78 0.83 0.26 - 309 119.09 0.76 0.35 - 311 122.26 0.35 0.05 - 313 250.97 0.71 0.20 - 315 -1046.26 0.74 0.09 - 317 109.55 0.70 0.30 - 319 -49.91 0.14 0.01 - 321 5944.03 2.70 0.68 - 323 -153.12 0.43 0.08 - 325 127.49 0.81 0.40 - 329 7991.76 3.63 1.20 - 330 7991.76 3.63 1.21 - 333 7991.76 3.63 1.19 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 18:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 151.71 2.04 100.00 - 15 0.00 158.35 54.75 2.47 - 20 0.00 160.55 13.67 0.00 - 35 1616.00 150.48 59.79 3.40 - 40 0.00 151.07 8.30 7.87 - 50 0.00 144.24 12.02 72.03 - 60 0.00 215.60 93.42 0.00 - 601 0.00 215.60 93.42 0.00 - 61 0.00 215.60 93.42 0.00 - 101 121.57 151.71 47.54 0.00 - 103 85.25 151.68 47.09 100.00 - 105 86.64 152.37 53.67 0.00 - 107 34.97 152.35 56.48 100.00 - 109 148.10 151.65 56.91 37.22 - 111 90.84 151.68 61.39 3.87 - 113 12.81 151.61 64.83 41.58 - 115 33.34 152.28 59.92 3.87 - 117 75.33 154.04 60.85 0.00 - 119 112.72 157.87 67.54 0.00 - 120 0.00 156.64 67.87 0.00 - 121 26.64 159.71 70.07 0.00 - 123 1833.00 160.82 64.92 0.00 - 125 29.18 159.81 64.48 0.00 - 127 11.30 160.23 45.17 0.00 - 129 0.00 160.23 47.33 0.00 - 131 27.36 160.23 66.83 0.00 - 139 3.77 159.13 55.52 0.00 - 141 6.30 158.35 66.88 0.00 - 143 3.97 158.35 70.56 2.25 - 145 17.68 158.19 68.11 5.25 - 147 5.47 158.12 60.50 6.16 - 149 17.32 158.09 61.57 6.16 - 151 92.47 157.95 53.92 2.24 - 153 28.27 157.99 39.77 0.00 - 157 33.15 156.35 62.07 0.00 - 159 26.44 154.25 64.24 0.00 - 161 10.11 152.82 64.48 0.00 - 163 6.03 152.52 63.92 0.00 - 164 0.00 152.52 63.92 9.14 - 166 1.66 152.52 66.96 0.00 - 167 9.32 151.32 67.73 0.00 - 169 0.00 151.32 67.73 0.00 - 171 25.18 150.58 66.98 0.00 - 173 0.00 150.56 66.97 0.00 - 177 37.23 150.51 61.75 9.54 - 179 0.00 150.53 61.76 9.52 - 181 0.00 150.49 61.74 3.40 - 183 0.00 150.54 60.46 20.48 - 184 0.00 149.50 57.85 39.90 - 185 16.42 150.08 58.10 40.39 - 187 0.00 150.84 59.94 48.55 - 189 69.07 150.98 63.69 12.44 - 191 52.42 151.34 54.74 53.16 - 193 45.64 151.38 57.79 18.53 - 195 0.00 151.41 58.89 0.00 - 197 10.91 151.43 55.65 98.67 - 199 76.36 145.87 64.07 0.00 - 201 28.55 145.17 62.86 1.29 - 203 4439.00 145.00 61.96 1.30 - 204 0.00 150.57 56.14 49.16 - 205 41.83 145.87 54.11 50.76 - 206 0.00 145.06 62.42 65.46 - 207 44.41 145.21 59.02 57.00 - 208 0.00 144.88 55.84 67.16 - 209 0.56 144.58 63.51 66.84 - 211 5.55 144.48 59.57 99.25 - 213 8.92 144.45 59.56 98.64 - 215 59.00 144.40 59.54 77.53 - 217 15.50 144.40 59.97 76.95 - 219 26.44 144.40 60.83 0.00 - 225 14.59 144.40 59.10 0.00 - 229 41.08 144.30 57.98 77.55 - 231 10.55 144.30 60.36 0.00 - 237 9.99 144.30 56.46 95.82 - 239 28.55 144.27 56.88 95.82 - 241 0.00 144.26 56.88 95.81 - 243 2.78 144.26 56.44 0.00 - 247 45.04 144.26 54.71 77.77 - 249 0.00 144.26 54.71 77.73 - 251 15.46 144.25 49.50 77.05 - 253 34.89 144.22 46.89 77.11 - 255 25.85 144.24 50.80 76.92 - 257 0.00 155.04 59.81 0.00 - 259 0.00 154.82 56.25 0.00 - 261 0.00 154.01 66.73 0.00 - 263 0.00 153.93 66.70 0.00 - 265 0.00 151.71 65.74 0.00 - 267 0.00 151.27 56.45 24.71 - 269 0.00 151.08 65.46 0.00 - 271 0.00 150.52 62.62 0.00 - 273 0.00 145.86 59.73 44.97 - 275 0.00 145.19 58.58 41.88 - River -8021.97 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -392.42 151.07 8.30 7.87 Tank - 2 -5.83 144.24 12.02 0.00 Tank - 3 -1418.57 160.55 13.67 0.00 Tank - - - Link Results at 18:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 1418.57 0.06 0.00 - 40 392.42 0.02 0.00 - 50 5.83 0.00 0.00 - 60 8021.97 5.69 3.57 - 101 0.00 0.00 0.00 - 103 171.10 0.27 0.02 - 105 -292.67 0.83 0.26 - 107 68.07 0.19 0.02 - 109 85.85 0.14 0.01 - 111 -62.24 0.18 0.01 - 112 423.79 1.20 0.52 - 113 106.69 0.30 0.04 - 114 115.16 0.74 0.33 - 115 33.10 0.21 0.03 - 116 209.04 0.59 0.14 - 117 447.38 1.27 0.57 - 119 -539.19 1.53 0.81 - 120 802.48 2.28 1.69 - 121 722.35 2.05 1.39 - 122 259.43 1.66 1.50 - 123 6999.36 3.18 0.92 - 125 6188.97 2.81 0.73 - 129 -1096.46 0.78 0.10 - 131 -1252.57 0.89 0.13 - 133 1418.57 1.45 0.40 - 135 154.70 0.11 0.00 - 137 27.36 0.04 0.00 - 145 127.34 0.81 0.40 - 147 123.57 0.79 0.38 - 149 -3.97 0.03 0.00 - 151 -0.00 0.00 0.00 - 153 -113.30 0.32 0.04 - 155 -95.62 0.27 0.03 - 159 90.14 0.26 0.03 - 161 72.82 0.46 0.14 - 163 -98.66 0.28 0.03 - 169 126.93 0.81 0.40 - 171 -79.01 0.22 0.02 - 173 6163.17 2.80 0.73 - 175 6130.02 2.78 0.72 - 177 6103.58 2.77 0.72 - 179 5933.90 2.69 0.68 - 180 1.66 0.00 0.00 - 181 1.66 0.00 0.00 - 183 5821.45 2.64 0.66 - 185 -9.32 0.06 0.00 - 186 355.14 2.27 2.69 - 187 5455.54 2.48 0.58 - 189 4431.86 2.01 0.40 - 191 -998.50 0.71 0.09 - 193 -1616.00 1.15 0.21 - 195 -484.46 1.37 0.66 - 197 -521.69 1.48 0.76 - 199 -129.27 0.37 0.06 - 201 392.42 1.11 0.45 - 202 537.22 3.43 5.78 - 203 198.49 1.27 0.91 - 204 537.22 1.52 0.80 - 205 355.14 1.01 0.37 - 207 327.77 0.93 0.32 - 209 103.92 0.66 0.28 - 211 356.59 1.01 0.38 - 213 251.22 0.71 0.20 - 215 277.20 0.79 0.24 - 217 -150.52 0.43 0.08 - 219 -159.57 0.45 0.08 - 221 159.57 1.02 0.61 - 223 153.11 0.43 0.08 - 225 164.02 0.47 0.09 - 229 4431.86 3.14 1.17 - 231 4304.52 3.05 1.11 - 233 4439.00 3.15 1.37 - 235 50.98 0.14 0.01 - 237 437.79 1.24 0.55 - 238 338.92 0.96 0.34 - 239 -54.46 0.15 0.01 - 240 338.92 0.96 0.34 - 241 338.92 0.96 0.34 - 243 338.37 0.54 0.08 - 245 173.59 0.28 0.02 - 247 115.54 0.18 0.01 - 249 56.54 0.09 0.00 - 251 26.44 0.06 0.00 - 257 14.59 0.04 0.00 - 261 49.13 0.31 0.07 - 263 10.55 0.03 0.00 - 269 159.23 0.45 0.08 - 271 2.49 0.02 0.00 - 273 146.74 0.42 0.07 - 275 45.99 0.13 0.01 - 277 2.78 0.01 0.00 - 281 43.21 0.18 0.02 - 283 72.20 0.20 0.02 - 285 -38.56 0.11 0.01 - 287 36.73 0.15 0.01 - 289 5.83 0.02 0.00 - 291 34.89 0.14 0.01 - 293 -18.18 0.12 0.01 - 295 33.65 0.10 0.00 - 297 339.55 2.17 2.47 - 299 163.25 1.04 0.64 - 301 163.25 1.04 0.64 - 303 176.30 1.13 0.73 - 305 107.83 0.31 0.04 - 307 284.13 0.81 0.25 - 309 104.75 0.67 0.28 - 311 172.45 0.49 0.10 - 313 223.56 0.63 0.16 - 315 -1131.54 0.80 0.11 - 317 108.58 0.69 0.30 - 319 -57.59 0.16 0.01 - 321 5926.20 2.69 0.68 - 323 -163.03 0.46 0.09 - 325 133.03 0.85 0.44 - 329 8021.97 3.64 1.20 - 330 8021.97 3.64 1.21 - 333 8021.97 3.64 1.21 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 19:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 151.24 1.84 100.00 - 15 0.00 157.86 54.54 2.47 - 20 0.00 160.01 13.44 0.00 - 35 1647.00 150.01 59.58 2.73 - 40 0.00 150.51 8.06 7.87 - 50 0.00 144.21 12.01 71.74 - 60 0.00 215.57 93.41 0.00 - 601 0.00 215.57 93.41 0.00 - 61 0.00 215.57 93.41 0.00 - 101 121.57 151.24 47.33 0.00 - 103 85.25 151.21 46.89 0.03 - 105 86.64 151.90 53.47 0.00 - 107 34.97 151.87 56.27 0.04 - 109 148.10 151.18 56.71 59.08 - 111 90.84 151.21 61.19 5.78 - 113 12.81 151.14 64.62 4.27 - 115 33.34 151.81 59.71 5.78 - 117 75.33 153.57 60.65 0.00 - 119 112.72 157.39 67.33 0.00 - 120 0.00 156.16 67.66 0.00 - 121 26.64 159.24 69.86 0.00 - 123 1817.00 160.36 64.72 0.00 - 125 29.18 159.32 64.27 0.00 - 127 11.30 159.72 44.94 0.00 - 129 0.00 159.72 47.11 0.00 - 131 27.36 159.71 66.60 0.00 - 139 3.77 158.63 55.30 0.00 - 141 6.30 157.86 66.67 0.00 - 143 3.97 157.86 70.35 2.25 - 145 17.68 157.71 67.90 0.83 - 147 5.47 157.64 60.29 5.52 - 149 17.32 157.61 61.36 6.14 - 151 92.47 157.47 53.72 2.61 - 153 28.27 157.51 39.56 0.00 - 157 33.15 155.88 61.86 0.00 - 159 26.44 153.78 64.03 0.00 - 161 10.11 152.34 64.28 0.00 - 163 6.03 152.05 63.72 0.00 - 164 0.00 152.05 63.72 9.22 - 166 1.66 152.05 66.75 0.00 - 167 9.32 150.85 67.53 0.00 - 169 0.00 150.85 67.53 0.00 - 171 25.18 150.11 66.78 0.00 - 173 0.00 150.10 66.77 0.00 - 177 37.23 150.03 61.54 9.13 - 179 0.00 150.05 61.55 9.41 - 181 0.00 150.01 61.53 2.72 - 183 0.00 150.06 60.26 17.14 - 184 0.00 149.06 57.65 39.39 - 185 16.42 149.62 57.90 40.41 - 187 0.00 150.37 59.74 41.46 - 189 69.07 150.51 63.48 5.82 - 191 52.42 150.87 54.54 12.32 - 193 45.64 150.91 57.59 28.41 - 195 0.00 150.94 58.69 0.00 - 197 10.91 150.96 55.45 2.63 - 199 76.36 145.51 63.92 0.00 - 201 28.55 144.82 62.71 1.23 - 203 4419.00 144.66 61.81 1.25 - 204 0.00 150.11 55.94 46.75 - 205 41.83 145.51 53.95 41.23 - 206 0.00 144.78 62.30 47.96 - 207 44.41 144.90 58.88 41.38 - 208 0.00 144.64 55.74 52.21 - 209 0.56 144.41 63.44 51.75 - 211 5.55 144.33 59.51 65.61 - 213 8.92 144.31 59.50 98.99 - 215 59.00 144.26 59.47 77.24 - 217 15.50 144.25 59.91 76.71 - 219 26.44 144.25 60.77 0.00 - 225 14.59 144.25 59.04 0.00 - 229 41.08 144.21 57.94 94.76 - 231 10.55 144.21 60.32 40.26 - 237 9.99 144.22 56.42 100.00 - 239 28.55 144.20 56.85 100.00 - 241 0.00 144.20 56.85 99.97 - 243 2.78 144.20 56.41 0.00 - 247 45.04 144.19 54.68 95.82 - 249 0.00 144.19 54.68 95.82 - 251 15.46 144.19 49.48 77.64 - 253 34.89 144.18 46.87 77.33 - 255 25.85 144.19 50.78 77.64 - 257 0.00 154.57 59.61 0.00 - 259 0.00 154.35 56.05 0.00 - 261 0.00 153.54 66.53 0.00 - 263 0.00 153.45 66.49 0.00 - 265 0.00 151.24 65.53 0.00 - 267 0.00 150.80 56.24 14.40 - 269 0.00 150.61 65.26 0.00 - 271 0.00 150.04 62.41 0.00 - 273 0.00 145.50 59.58 27.36 - 275 0.00 144.86 58.43 33.09 - River -8055.62 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -362.50 150.51 8.06 7.87 Tank - 2 -49.93 144.21 12.01 0.00 Tank - 3 -1365.73 160.01 13.44 0.00 Tank - - - Link Results at 19:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 1365.73 0.06 0.00 - 40 362.50 0.02 0.00 - 50 49.93 0.00 0.00 - 60 8055.62 5.71 3.60 - 101 0.00 0.00 0.00 - 103 170.99 0.27 0.02 - 105 -292.56 0.83 0.26 - 107 68.03 0.19 0.02 - 109 85.74 0.14 0.01 - 111 -62.35 0.18 0.01 - 112 423.61 1.20 0.52 - 113 106.58 0.30 0.04 - 114 115.10 0.73 0.33 - 115 33.06 0.21 0.03 - 116 208.87 0.59 0.14 - 117 447.23 1.27 0.57 - 119 -538.99 1.53 0.81 - 120 802.20 2.28 1.69 - 121 722.11 2.05 1.39 - 122 259.35 1.66 1.50 - 123 6997.56 3.18 0.92 - 125 6238.62 2.83 0.75 - 129 -1044.94 0.74 0.09 - 131 -1200.81 0.85 0.12 - 133 1365.73 1.39 0.37 - 135 153.62 0.11 0.00 - 137 27.36 0.04 0.00 - 145 126.26 0.81 0.40 - 147 122.49 0.78 0.37 - 149 -3.97 0.03 0.00 - 151 -0.00 0.00 0.00 - 153 -112.22 0.32 0.04 - 155 -94.54 0.27 0.03 - 159 89.07 0.25 0.03 - 161 71.74 0.46 0.14 - 163 -98.42 0.28 0.03 - 169 126.69 0.81 0.40 - 171 -77.69 0.22 0.02 - 173 6160.33 2.80 0.73 - 175 6127.19 2.78 0.72 - 177 6100.74 2.77 0.72 - 179 5931.08 2.69 0.68 - 180 1.66 0.00 0.00 - 181 1.66 0.00 0.00 - 183 5818.49 2.64 0.66 - 185 -9.32 0.06 0.00 - 186 352.74 2.25 2.65 - 187 5451.23 2.47 0.58 - 189 4375.07 1.99 0.39 - 191 -1050.98 0.75 0.09 - 193 -1647.00 1.17 0.22 - 195 -462.50 1.31 0.61 - 197 -499.73 1.42 0.70 - 199 -137.23 0.39 0.06 - 201 362.50 1.03 0.39 - 202 529.91 3.38 5.63 - 203 193.58 1.24 0.87 - 204 529.91 1.50 0.78 - 205 352.74 1.00 0.37 - 207 330.81 0.94 0.33 - 209 102.22 0.65 0.27 - 211 357.94 1.02 0.38 - 213 250.52 0.71 0.20 - 215 277.67 0.79 0.24 - 217 -150.01 0.43 0.08 - 219 -159.56 0.45 0.08 - 221 159.56 1.02 0.61 - 223 152.93 0.43 0.08 - 225 163.83 0.46 0.09 - 229 4375.07 3.10 1.15 - 231 4256.69 3.02 1.09 - 233 4419.00 3.13 1.36 - 235 42.02 0.12 0.01 - 237 423.39 1.20 0.52 - 238 294.82 0.84 0.26 - 239 -84.15 0.24 0.03 - 240 294.82 0.84 0.26 - 241 294.82 0.84 0.26 - 243 294.27 0.47 0.06 - 245 162.98 0.26 0.02 - 247 115.54 0.18 0.01 - 249 56.54 0.09 0.00 - 251 26.44 0.06 0.00 - 257 14.59 0.04 0.00 - 261 38.51 0.25 0.04 - 263 10.55 0.03 0.00 - 269 125.74 0.36 0.05 - 271 13.11 0.08 0.01 - 273 102.64 0.29 0.04 - 275 29.48 0.08 0.00 - 277 2.78 0.01 0.00 - 281 26.70 0.11 0.01 - 283 44.61 0.13 0.01 - 285 -28.37 0.08 0.00 - 287 10.03 0.04 0.00 - 289 49.93 0.20 0.02 - 291 34.89 0.14 0.01 - 293 -0.78 0.01 0.00 - 295 16.25 0.05 0.00 - 297 339.44 2.17 2.47 - 299 163.19 1.04 0.64 - 301 163.19 1.04 0.64 - 303 176.25 1.12 0.73 - 305 107.79 0.31 0.04 - 307 284.04 0.81 0.25 - 309 104.90 0.67 0.28 - 311 172.78 0.49 0.10 - 313 224.43 0.64 0.16 - 315 -1184.49 0.84 0.12 - 317 106.71 0.68 0.29 - 319 -64.69 0.18 0.02 - 321 5923.38 2.69 0.68 - 323 -190.86 0.54 0.12 - 325 133.51 0.85 0.44 - 329 8055.62 3.66 1.21 - 330 8055.62 3.66 1.21 - 333 8055.62 3.66 1.22 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 20:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 149.54 1.10 100.00 - 15 0.00 156.93 54.13 2.47 - 20 0.00 159.49 13.21 0.00 - 35 1627.00 149.08 59.18 2.20 - 40 0.00 150.00 7.84 7.87 - 50 0.00 144.01 11.92 69.28 - 60 0.00 215.51 93.38 0.00 - 601 0.00 215.51 93.38 0.00 - 61 0.00 215.51 93.38 0.00 - 101 161.46 149.54 46.60 0.00 - 103 113.22 149.52 46.15 0.00 - 105 115.06 150.28 52.77 0.00 - 107 46.44 150.26 55.58 0.00 - 109 196.69 149.51 55.99 59.46 - 111 120.65 149.69 60.53 5.78 - 113 17.01 149.68 63.99 5.78 - 115 44.28 150.26 59.04 5.81 - 117 100.05 152.16 60.04 0.08 - 119 149.71 156.52 66.95 0.11 - 120 0.00 155.11 67.21 0.08 - 121 35.39 158.47 69.53 0.00 - 123 1830.00 159.60 64.39 0.00 - 125 38.76 158.58 63.95 0.00 - 127 15.01 159.11 44.68 0.00 - 129 0.00 159.10 46.84 0.00 - 131 36.34 159.09 66.34 0.00 - 139 5.01 157.82 54.95 0.00 - 141 8.37 156.93 66.27 0.00 - 143 5.27 156.93 69.95 2.25 - 145 23.49 156.76 67.49 0.00 - 147 7.27 156.69 59.88 5.41 - 149 23.01 156.66 60.95 5.52 - 151 122.81 156.54 53.31 2.43 - 153 37.54 156.58 39.16 0.00 - 157 44.02 154.98 61.48 0.11 - 159 35.12 152.85 63.63 0.11 - 161 13.43 151.40 63.87 0.07 - 163 8.01 151.10 63.31 0.02 - 164 0.00 151.10 63.31 9.46 - 166 2.21 151.10 66.34 0.00 - 167 12.38 149.90 67.12 0.00 - 169 0.00 149.90 67.12 0.00 - 171 33.44 149.18 66.37 0.00 - 173 0.00 149.16 66.37 0.00 - 177 49.44 149.11 61.14 7.89 - 179 0.00 149.13 61.15 7.89 - 181 0.00 149.09 61.13 2.22 - 183 0.00 149.14 59.85 7.97 - 184 0.00 148.04 57.21 32.66 - 185 21.80 148.58 57.45 32.70 - 187 0.00 149.23 59.24 11.12 - 189 91.73 149.43 63.01 9.67 - 191 69.61 149.55 53.97 3.14 - 193 60.61 149.60 57.02 2.76 - 195 0.00 149.64 58.12 0.00 - 197 14.48 149.58 54.85 5.37 - 199 101.42 144.62 63.53 0.00 - 201 37.92 143.95 62.33 1.95 - 203 4368.00 143.79 61.44 2.01 - 204 0.00 149.00 55.46 17.34 - 205 55.56 144.62 53.57 41.20 - 206 0.00 143.96 61.94 38.16 - 207 58.98 144.05 58.52 38.52 - 208 0.00 143.86 55.40 36.56 - 209 0.74 143.69 63.13 38.99 - 211 7.37 143.64 59.20 52.00 - 213 11.85 143.61 59.19 66.49 - 215 78.36 143.52 59.16 77.93 - 217 20.59 143.52 59.59 76.87 - 219 35.12 143.51 60.45 0.00 - 225 19.38 143.51 58.72 0.00 - 229 54.55 143.57 57.66 91.57 - 231 14.01 143.57 60.04 58.74 - 237 13.27 143.61 56.16 67.12 - 239 37.92 143.61 56.59 91.69 - 241 0.00 143.61 56.59 97.31 - 243 3.69 143.61 56.16 0.00 - 247 59.82 143.62 54.43 99.80 - 249 0.00 143.62 54.43 100.00 - 251 20.54 143.62 49.23 77.68 - 253 46.34 143.67 46.65 77.02 - 255 34.33 143.70 50.56 73.35 - 257 0.00 153.30 59.06 0.08 - 259 0.00 153.04 55.48 0.08 - 261 0.00 152.13 65.92 0.05 - 263 0.00 152.03 65.87 0.06 - 265 0.00 150.29 65.12 0.00 - 267 0.00 149.58 55.71 1.06 - 269 0.00 149.59 64.82 0.00 - 271 0.00 149.12 62.01 0.00 - 273 0.00 144.62 59.20 24.74 - 275 0.00 143.99 58.06 44.58 - River -8110.61 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -509.25 150.00 7.84 7.87 Tank - 2 -209.61 144.01 11.92 0.00 Tank - 3 -1586.43 159.49 13.21 0.00 Tank - - - Link Results at 20:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 1586.43 0.07 0.00 - 40 509.25 0.02 0.00 - 50 209.61 0.01 0.00 - 60 8110.61 5.75 3.64 - 101 0.00 0.00 0.00 - 103 148.67 0.24 0.02 - 105 -310.13 0.88 0.29 - 107 51.51 0.15 0.01 - 109 35.45 0.06 0.00 - 111 -161.24 0.46 0.09 - 112 414.76 1.18 0.50 - 113 28.81 0.08 0.00 - 114 106.99 0.68 0.29 - 115 5.07 0.03 0.00 - 116 118.80 0.34 0.05 - 117 476.70 1.35 0.64 - 119 -560.97 1.59 0.87 - 120 865.65 2.46 1.94 - 121 774.02 2.20 1.58 - 122 272.08 1.74 1.64 - 123 7198.09 3.27 0.97 - 125 6280.61 2.85 0.76 - 129 -1224.95 0.87 0.13 - 131 -1397.28 0.99 0.16 - 133 1586.43 1.62 0.49 - 135 174.14 0.12 0.00 - 137 36.34 0.06 0.00 - 145 137.81 0.88 0.47 - 147 132.80 0.85 0.43 - 149 -5.27 0.03 0.00 - 151 -0.00 0.00 0.00 - 153 -119.16 0.34 0.05 - 155 -95.67 0.27 0.03 - 159 88.40 0.25 0.03 - 161 65.39 0.42 0.12 - 163 -96.03 0.27 0.03 - 169 133.57 0.85 0.44 - 171 -38.62 0.11 0.01 - 173 6221.34 2.82 0.74 - 175 6177.32 2.80 0.73 - 177 6142.20 2.79 0.72 - 179 5948.43 2.70 0.68 - 180 2.21 0.00 0.00 - 181 2.21 0.00 0.00 - 183 5803.44 2.63 0.65 - 185 -12.38 0.08 0.01 - 186 323.95 2.07 2.26 - 187 5382.72 2.44 0.57 - 189 4350.45 1.97 0.38 - 191 -998.83 0.71 0.09 - 193 -1627.00 1.15 0.21 - 195 -506.73 1.44 0.72 - 197 -556.17 1.58 0.86 - 199 -46.92 0.13 0.01 - 201 509.25 1.44 0.73 - 202 519.69 3.32 5.44 - 203 217.54 1.39 1.08 - 204 519.69 1.47 0.75 - 205 323.95 0.92 0.31 - 207 264.46 0.75 0.22 - 209 127.44 0.81 0.40 - 211 408.34 1.16 0.48 - 213 196.51 0.56 0.12 - 215 196.74 0.56 0.12 - 217 -176.55 0.50 0.10 - 219 -180.34 0.51 0.11 - 221 180.34 1.15 0.77 - 223 89.58 0.25 0.03 - 225 104.06 0.30 0.04 - 229 4350.45 3.09 1.13 - 231 4200.44 2.98 1.06 - 233 4368.00 3.10 1.33 - 235 48.59 0.14 0.01 - 237 408.13 1.16 0.48 - 238 248.27 0.70 0.19 - 239 -100.88 0.29 0.04 - 240 248.27 0.70 0.19 - 241 248.27 0.70 0.19 - 243 247.53 0.39 0.05 - 245 188.98 0.30 0.03 - 247 153.45 0.24 0.02 - 249 75.09 0.12 0.01 - 251 35.12 0.07 0.00 - 257 19.38 0.05 0.00 - 261 23.68 0.15 0.02 - 263 14.01 0.04 0.00 - 269 51.18 0.15 0.01 - 271 44.88 0.29 0.06 - 273 -6.97 0.02 0.00 - 275 -14.54 0.04 0.00 - 277 3.69 0.01 0.00 - 281 -18.23 0.07 0.00 - 283 -30.34 0.09 0.00 - 285 1.99 0.01 0.00 - 287 -80.05 0.33 0.06 - 289 209.61 0.86 0.34 - 291 46.34 0.19 0.02 - 293 48.88 0.31 0.07 - 295 -28.35 0.08 0.00 - 297 363.71 2.32 2.81 - 299 174.80 1.12 0.72 - 301 174.80 1.12 0.72 - 303 188.91 1.21 0.83 - 305 112.99 0.32 0.04 - 307 301.90 0.86 0.28 - 309 134.78 0.86 0.45 - 311 61.97 0.18 0.01 - 313 286.89 0.81 0.25 - 315 -1120.27 0.79 0.11 - 317 104.60 0.67 0.28 - 319 -56.00 0.16 0.01 - 321 5938.22 2.70 0.68 - 323 -205.48 0.58 0.14 - 325 121.45 0.78 0.37 - 329 8110.61 3.68 1.23 - 330 8110.61 3.68 1.22 - 333 8110.61 3.68 1.24 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 21:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 148.17 0.51 100.00 - 15 0.00 156.06 53.75 2.47 - 20 0.00 158.89 12.95 0.00 - 35 1627.00 148.04 58.73 2.53 - 40 0.00 149.28 7.53 7.87 - 50 0.00 143.15 11.55 50.80 - 60 0.00 215.46 93.36 0.00 - 601 0.00 215.46 93.36 0.00 - 61 0.00 215.46 93.36 0.00 - 101 182.35 148.17 46.01 0.00 - 103 127.87 148.15 45.56 0.00 - 105 129.96 148.98 52.20 0.08 - 107 52.45 148.97 55.02 0.00 - 109 222.14 148.15 55.40 22.76 - 111 136.26 148.43 59.98 0.96 - 113 19.21 148.43 63.45 1.99 - 115 50.02 148.98 58.49 0.93 - 117 113.00 150.97 59.52 0.04 - 119 169.08 155.66 66.58 0.05 - 120 0.00 154.13 66.79 0.04 - 121 39.96 157.69 69.19 0.00 - 123 1814.00 158.85 64.06 0.00 - 125 43.78 157.83 63.62 0.00 - 127 16.95 158.44 44.39 0.00 - 129 0.00 158.43 46.55 0.00 - 131 41.04 158.42 66.05 0.00 - 139 5.65 157.03 54.61 0.00 - 141 9.46 156.06 65.89 0.00 - 143 5.95 156.06 69.57 2.25 - 145 26.52 155.88 67.11 0.00 - 147 8.21 155.80 59.49 5.24 - 149 25.99 155.78 60.56 5.39 - 151 138.70 155.66 52.93 2.24 - 153 42.40 155.70 38.78 0.00 - 157 49.72 154.07 61.08 0.05 - 159 39.67 151.88 63.21 0.05 - 161 15.17 150.39 63.43 0.05 - 163 9.04 150.09 62.87 0.05 - 164 0.00 150.09 62.87 8.58 - 166 2.50 150.09 65.90 0.00 - 167 13.98 148.86 66.67 0.10 - 169 0.00 148.86 66.67 0.09 - 171 37.77 148.13 65.92 0.10 - 173 0.00 148.11 65.91 0.11 - 177 55.84 148.07 60.69 8.01 - 179 0.00 148.10 60.70 7.86 - 181 0.00 148.04 60.68 2.55 - 183 0.00 148.10 59.40 1.20 - 184 0.00 146.92 56.73 9.19 - 185 24.62 147.47 56.97 7.67 - 187 0.00 148.08 58.75 1.57 - 189 103.60 148.31 62.53 0.30 - 191 78.62 148.34 53.44 2.60 - 193 68.46 148.40 56.50 2.11 - 195 0.00 148.44 57.60 0.10 - 197 16.36 148.36 54.32 5.78 - 199 114.55 143.46 63.03 0.10 - 201 42.83 142.78 61.83 1.57 - 203 4399.00 142.62 60.93 1.55 - 204 0.00 147.86 54.97 1.50 - 205 62.75 143.46 53.06 31.32 - 206 0.00 142.79 61.44 30.45 - 207 66.61 142.88 58.01 31.56 - 208 0.00 142.70 54.90 32.10 - 209 0.84 142.54 62.63 40.89 - 211 8.32 142.48 58.70 36.71 - 213 13.38 142.45 58.69 50.91 - 215 88.50 142.34 58.64 77.93 - 217 23.25 142.33 59.07 77.47 - 219 39.67 142.33 59.94 7.64 - 225 21.89 142.33 58.20 2.67 - 229 61.61 142.41 57.16 78.35 - 231 15.82 142.41 59.54 70.87 - 237 14.99 142.47 55.67 66.99 - 239 42.83 142.48 56.10 100.00 - 241 0.00 142.48 56.10 100.00 - 243 4.17 142.48 55.67 0.00 - 247 67.56 142.48 53.94 77.94 - 249 0.00 142.48 53.94 94.96 - 251 23.19 142.50 48.74 76.39 - 253 52.34 142.61 46.19 76.78 - 255 38.77 142.64 50.11 59.00 - 257 0.00 152.19 58.58 0.04 - 259 0.00 151.92 55.00 0.04 - 261 0.00 150.94 65.40 0.04 - 263 0.00 150.84 65.36 0.05 - 265 0.00 149.25 64.67 0.07 - 267 0.00 148.40 55.20 0.83 - 269 0.00 148.51 64.35 0.10 - 271 0.00 148.07 61.56 0.11 - 273 0.00 143.46 58.69 21.49 - 275 0.00 142.83 57.55 28.87 - River -8165.07 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -603.46 149.28 7.53 7.87 Tank - 2 -273.65 143.15 11.55 0.00 Tank - 3 -1724.01 158.89 12.95 0.00 Tank - - - Link Results at 21:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 1724.01 0.07 0.00 - 40 603.46 0.03 0.00 - 50 273.65 0.01 0.00 - 60 8165.07 5.79 3.69 - 101 0.00 0.00 0.00 - 103 142.49 0.23 0.02 - 105 -324.85 0.92 0.32 - 107 37.82 0.11 0.01 - 109 14.62 0.02 0.00 - 111 -207.52 0.59 0.14 - 112 406.96 1.15 0.48 - 113 -18.28 0.05 0.00 - 114 104.15 0.66 0.28 - 115 -14.63 0.09 0.01 - 116 66.66 0.19 0.02 - 117 492.62 1.40 0.68 - 119 -575.76 1.63 0.91 - 120 900.87 2.56 2.09 - 121 803.79 2.28 1.69 - 122 280.51 1.79 1.73 - 123 7370.05 3.35 1.02 - 125 6351.07 2.88 0.77 - 129 -1339.45 0.95 0.15 - 131 -1521.18 1.08 0.19 - 133 1724.01 1.76 0.58 - 135 185.87 0.13 0.00 - 137 41.04 0.07 0.00 - 145 144.83 0.92 0.51 - 147 139.17 0.89 0.47 - 149 -5.95 0.04 0.00 - 151 0.00 0.00 0.00 - 153 -123.77 0.35 0.05 - 155 -97.24 0.28 0.03 - 159 89.03 0.25 0.03 - 161 63.05 0.40 0.11 - 163 -95.55 0.27 0.03 - 169 137.96 0.88 0.47 - 171 -19.90 0.06 0.00 - 173 6319.99 2.87 0.76 - 175 6270.27 2.85 0.75 - 177 6230.60 2.83 0.74 - 179 6025.08 2.73 0.70 - 180 2.50 0.01 0.00 - 181 2.50 0.01 0.00 - 183 5864.37 2.66 0.67 - 185 -13.98 0.09 0.01 - 186 314.76 2.01 2.15 - 187 5414.87 2.46 0.57 - 189 4406.20 2.00 0.39 - 191 -970.91 0.69 0.08 - 193 -1627.00 1.15 0.21 - 195 -539.55 1.53 0.81 - 197 -595.39 1.69 0.97 - 199 8.07 0.02 0.00 - 201 603.46 1.71 0.99 - 202 523.02 3.34 5.50 - 203 232.88 1.49 1.23 - 204 523.02 1.48 0.76 - 205 314.76 0.89 0.30 - 207 224.81 0.64 0.16 - 209 138.01 0.88 0.47 - 211 435.52 1.24 0.54 - 213 176.75 0.50 0.10 - 215 147.45 0.42 0.07 - 217 -190.28 0.54 0.12 - 219 -190.36 0.54 0.12 - 221 190.36 1.21 0.85 - 223 65.10 0.18 0.02 - 225 81.45 0.23 0.02 - 229 4406.20 3.12 1.16 - 231 4235.82 3.00 1.08 - 233 4399.00 3.12 1.35 - 235 55.83 0.16 0.01 - 237 410.76 1.17 0.49 - 238 243.49 0.69 0.19 - 239 -100.66 0.29 0.04 - 240 243.49 0.69 0.19 - 241 243.49 0.69 0.19 - 243 242.65 0.39 0.05 - 245 209.69 0.33 0.03 - 247 173.31 0.28 0.02 - 249 84.81 0.14 0.01 - 251 39.67 0.08 0.00 - 257 21.89 0.06 0.00 - 261 23.00 0.15 0.02 - 263 15.82 0.04 0.00 - 269 24.64 0.07 0.00 - 271 54.44 0.35 0.08 - 273 -44.78 0.13 0.01 - 275 -30.25 0.09 0.00 - 277 4.17 0.01 0.00 - 281 -34.41 0.14 0.01 - 283 -57.36 0.16 0.01 - 285 11.84 0.03 0.00 - 287 -113.82 0.46 0.11 - 289 273.65 1.12 0.56 - 291 52.34 0.21 0.03 - 293 68.71 0.44 0.13 - 295 -45.52 0.13 0.01 - 297 377.59 2.41 3.01 - 299 181.42 1.16 0.77 - 301 181.42 1.16 0.77 - 303 196.17 1.25 0.89 - 305 115.03 0.33 0.05 - 307 311.20 0.88 0.29 - 309 149.17 0.95 0.54 - 311 -1.72 0.00 0.00 - 313 318.97 0.90 0.31 - 315 -1087.45 0.77 0.10 - 317 105.35 0.67 0.28 - 319 -49.51 0.14 0.01 - 321 6013.54 2.73 0.70 - 323 -206.01 0.58 0.14 - 325 116.54 0.74 0.34 - 329 8165.07 3.71 1.24 - 330 8165.07 3.71 1.25 - 333 8165.07 3.71 1.24 - 10 0.00 0.00 0.00 Pump - 335 0.00 0.00 0.00 Pump - - - Node Results at 22:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 148.31 0.57 100.00 - 15 360.00 146.42 49.58 2.47 - 20 0.00 159.27 13.12 0.00 - 35 1671.00 148.70 59.02 0.05 - 40 0.00 149.20 7.49 4.11 - 50 0.00 142.43 11.24 16.76 - 60 0.00 208.96 90.54 0.00 - 601 0.00 302.11 130.90 0.00 - 61 0.00 302.11 130.90 0.00 - 101 235.54 148.31 46.07 0.04 - 103 165.17 148.29 45.62 0.00 - 105 167.86 149.40 52.39 0.04 - 107 67.75 149.40 55.20 0.00 - 109 286.94 148.29 55.46 21.06 - 111 176.01 148.85 60.16 0.02 - 113 24.81 148.90 63.65 1.49 - 115 64.60 149.50 58.71 1.44 - 117 145.96 152.05 59.99 0.00 - 119 218.40 158.29 67.72 0.00 - 120 0.00 156.27 67.71 0.00 - 121 51.62 161.08 70.66 0.00 - 123 1840.00 164.47 66.50 0.00 - 125 56.54 160.73 64.88 0.00 - 127 21.90 159.72 44.94 0.00 - 129 0.00 159.71 47.11 0.00 - 131 53.01 159.69 66.60 0.00 - 139 7.30 156.92 54.56 0.00 - 141 12.21 154.98 65.42 0.00 - 143 7.69 150.97 67.36 2.25 - 145 34.26 155.34 66.87 0.00 - 147 10.60 155.65 59.43 0.00 - 149 33.57 155.79 60.57 5.24 - 151 179.16 157.28 53.63 0.84 - 153 54.77 157.34 39.49 0.00 - 157 64.22 156.29 62.04 0.00 - 159 51.24 153.53 63.93 0.00 - 161 19.59 151.66 63.98 0.00 - 163 11.68 151.29 63.39 0.00 - 164 0.00 151.29 63.39 8.76 - 166 3.22 151.29 66.42 0.00 - 167 18.05 149.75 67.05 0.05 - 169 0.00 149.75 67.05 0.03 - 171 48.78 148.86 66.23 0.05 - 173 0.00 148.84 66.22 0.05 - 177 72.13 148.72 60.97 0.05 - 179 0.00 148.72 60.98 0.28 - 181 0.00 148.71 60.97 0.05 - 183 0.00 148.72 59.67 0.24 - 184 0.00 147.37 56.92 1.41 - 185 31.81 147.96 57.18 1.40 - 187 0.00 148.60 58.97 1.78 - 189 133.82 148.91 62.79 0.43 - 191 101.56 148.82 53.65 3.62 - 193 88.42 148.90 56.72 2.43 - 195 0.00 148.96 57.83 0.05 - 197 21.13 148.82 54.52 5.78 - 199 147.96 143.62 63.10 0.05 - 201 55.32 142.88 61.87 0.53 - 203 4470.00 142.71 60.97 0.53 - 204 0.00 148.38 55.19 1.67 - 205 81.05 143.60 53.12 3.44 - 206 0.00 142.68 61.39 10.46 - 207 86.04 142.88 58.01 10.41 - 208 0.00 142.44 54.79 10.82 - 209 1.08 142.04 62.41 17.18 - 211 10.75 141.90 58.45 30.51 - 213 17.29 141.84 58.43 37.25 - 215 114.32 141.67 58.35 78.28 - 217 30.03 141.66 58.78 77.85 - 219 51.24 141.65 59.64 66.32 - 225 28.27 141.65 57.91 63.63 - 229 79.58 141.74 56.87 80.11 - 231 20.44 141.74 59.25 73.77 - 237 19.36 141.82 55.38 51.52 - 239 55.32 141.82 55.82 60.56 - 241 0.00 141.82 55.82 66.26 - 243 5.38 141.82 55.38 0.00 - 247 87.27 141.82 53.65 80.06 - 249 0.00 141.82 53.65 95.57 - 251 29.96 141.82 48.45 64.37 - 253 67.60 141.88 45.88 64.27 - 255 50.08 141.93 49.80 27.98 - 257 0.00 153.68 59.22 0.00 - 259 0.00 153.32 55.60 0.00 - 261 0.00 152.01 65.87 0.01 - 263 0.00 151.88 65.81 0.00 - 265 0.00 150.24 65.10 0.03 - 267 0.00 148.95 55.44 0.74 - 269 0.00 149.23 64.66 0.05 - 271 0.00 148.75 61.85 0.05 - 273 0.00 143.60 58.75 8.07 - 275 0.00 142.89 57.58 19.38 - River -13191.47 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -367.08 149.20 7.49 7.87 Tank - 2 -270.43 142.43 11.24 0.00 Tank - 3 1708.32 159.27 13.12 0.00 Tank - - - Link Results at 22:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -1708.32 0.07 0.00 - 40 367.08 0.02 0.00 - 50 270.43 0.01 0.00 - 60 13191.47 9.36 8.97 - 101 0.00 0.00 0.00 - 103 147.08 0.23 0.02 - 105 -382.62 1.09 0.43 - 107 24.49 0.07 0.00 - 109 -18.09 0.03 0.00 - 111 -305.03 0.87 0.28 - 112 442.39 1.25 0.56 - 113 -91.51 0.26 0.03 - 114 108.60 0.69 0.30 - 115 -43.26 0.28 0.05 - 116 -7.73 0.02 0.00 - 117 574.97 1.63 0.91 - 119 -658.85 1.87 1.17 - 120 1049.56 2.98 2.77 - 121 938.79 2.66 2.25 - 122 330.21 2.11 2.35 - 123 8742.49 3.97 1.39 - 125 11351.47 5.15 2.26 - 129 2227.15 1.58 0.38 - 131 1993.18 1.41 0.31 - 133 -1708.32 1.74 0.57 - 135 262.96 0.19 0.01 - 137 53.01 0.08 0.00 - 145 209.95 1.34 1.01 - 147 202.65 1.29 0.95 - 149 -367.69 2.35 2.86 - 151 -360.00 2.30 2.75 - 153 177.25 0.50 0.10 - 155 211.51 0.60 0.14 - 159 -222.12 0.63 0.16 - 161 -255.68 1.63 1.46 - 163 -122.65 0.35 0.05 - 169 177.42 1.13 0.74 - 171 312.19 0.89 0.29 - 173 7162.34 3.25 0.96 - 175 7098.12 3.22 0.95 - 177 7046.88 3.20 0.93 - 179 6800.09 3.09 0.88 - 180 3.22 0.01 0.00 - 181 3.22 0.01 0.00 - 183 6597.98 2.99 0.83 - 185 -18.05 0.12 0.01 - 186 321.75 2.05 2.24 - 187 6041.68 2.74 0.70 - 189 4689.91 2.13 0.44 - 191 -1303.00 0.92 0.14 - 193 -1671.00 1.19 0.22 - 195 -245.80 0.70 0.19 - 197 -317.93 0.90 0.30 - 199 49.14 0.14 0.01 - 201 367.08 1.04 0.40 - 202 547.99 3.50 6.00 - 203 258.05 1.65 1.49 - 204 547.99 1.55 0.83 - 205 321.75 0.91 0.31 - 207 208.91 0.59 0.14 - 209 161.43 1.03 0.62 - 211 538.24 1.53 0.80 - 213 160.32 0.45 0.09 - 215 88.12 0.25 0.03 - 217 -230.13 0.65 0.17 - 219 -227.20 0.64 0.16 - 221 227.20 1.45 1.17 - 223 31.74 0.09 0.00 - 225 52.87 0.15 0.01 - 229 4689.91 3.33 1.30 - 231 4440.10 3.15 1.18 - 233 4470.00 3.17 1.39 - 235 101.85 0.29 0.04 - 237 456.70 1.30 0.59 - 238 397.54 1.13 0.46 - 239 26.88 0.08 0.00 - 240 397.54 1.13 0.46 - 241 397.54 1.13 0.46 - 243 396.46 0.63 0.11 - 245 280.80 0.45 0.06 - 247 223.86 0.36 0.04 - 249 109.54 0.17 0.01 - 251 51.24 0.11 0.00 - 257 28.27 0.08 0.00 - 261 39.65 0.25 0.05 - 263 20.44 0.06 0.00 - 269 104.91 0.30 0.04 - 271 60.37 0.39 0.10 - 273 25.19 0.07 0.00 - 275 -7.98 0.02 0.00 - 277 5.38 0.02 0.00 - 281 -13.36 0.05 0.00 - 283 -22.15 0.06 0.00 - 285 -6.07 0.02 0.00 - 287 -94.56 0.39 0.08 - 289 270.43 1.10 0.55 - 291 67.60 0.28 0.04 - 293 58.18 0.37 0.09 - 295 -28.22 0.08 0.00 - 297 440.99 2.81 4.01 - 299 211.87 1.35 1.03 - 301 211.87 1.35 1.03 - 303 229.12 1.46 1.19 - 305 133.97 0.38 0.06 - 307 363.09 1.03 0.39 - 309 187.21 1.19 0.82 - 311 -99.09 0.28 0.04 - 313 416.04 1.18 0.50 - 315 -1425.20 1.01 0.17 - 317 112.10 0.72 0.32 - 319 -10.24 0.03 0.00 - 321 6785.18 3.08 0.87 - 323 -85.22 0.24 0.03 - 325 122.20 0.78 0.37 - 329 13191.47 5.99 3.02 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 0.00 0.00 0.00 Pump - 335 13191.47 0.00 -93.15 Pump - - - Node Results at 23:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 144.95 -0.89 100.00 - 15 360.00 145.26 49.08 0.00 - 20 0.00 159.92 13.40 0.00 - 35 1668.00 147.09 58.32 1.16 - 40 0.00 148.68 7.27 7.87 - 50 0.00 141.33 10.76 0.00 - 60 0.00 208.94 90.53 0.00 - 601 0.00 301.96 130.84 0.00 - 61 0.00 301.96 130.84 0.00 - 101 317.22 144.95 44.61 0.02 - 103 222.44 144.94 44.17 0.06 - 105 226.07 146.36 51.07 0.00 - 107 91.25 146.36 53.89 0.64 - 109 386.44 144.97 54.02 0.16 - 111 237.04 146.30 59.06 0.99 - 113 33.42 146.52 62.62 0.10 - 115 87.01 146.90 57.58 0.00 - 117 196.58 149.73 58.99 0.00 - 119 294.14 157.48 67.37 0.00 - 120 0.00 154.95 67.14 0.00 - 121 69.52 160.66 70.48 0.00 - 123 1859.00 164.05 66.32 0.00 - 125 76.15 160.49 64.77 0.00 - 127 29.49 160.06 45.09 0.00 - 129 0.00 160.05 47.25 0.00 - 131 71.39 160.02 66.74 0.00 - 139 9.84 156.39 54.33 0.00 - 141 16.45 153.87 64.94 0.00 - 143 10.35 149.80 66.86 0.00 - 145 46.14 154.14 66.36 0.00 - 147 14.28 154.43 58.90 1.85 - 149 45.21 154.55 60.04 1.89 - 151 241.28 156.08 53.12 3.98 - 153 73.76 156.15 38.98 0.00 - 157 86.49 155.28 61.61 0.00 - 159 69.00 152.27 63.38 0.00 - 161 26.39 150.24 63.36 0.00 - 163 15.73 149.83 62.75 0.00 - 164 0.00 149.83 62.75 9.91 - 166 4.34 149.83 65.79 0.00 - 167 24.32 148.18 66.37 0.00 - 169 0.00 148.18 66.37 0.00 - 171 65.70 147.24 65.53 0.00 - 173 0.00 147.21 65.52 0.00 - 177 97.14 147.10 60.27 7.87 - 179 0.00 147.11 60.28 7.87 - 181 0.00 147.09 60.27 1.16 - 183 0.00 147.05 58.95 1.66 - 184 0.00 145.36 56.05 1.42 - 185 42.84 145.96 56.31 1.56 - 187 0.00 146.45 58.04 1.71 - 189 180.23 147.05 61.98 0.18 - 191 136.77 146.48 52.64 1.23 - 193 119.09 146.64 55.74 0.59 - 195 0.00 146.71 56.85 0.00 - 197 28.46 146.41 53.47 5.78 - 199 199.26 141.62 62.23 0.00 - 201 74.50 140.85 60.99 0.15 - 203 4480.00 140.68 60.09 0.15 - 204 0.00 146.28 54.28 1.61 - 205 109.15 141.57 52.24 1.16 - 206 0.00 140.56 60.47 3.01 - 207 115.88 140.81 57.11 3.07 - 208 0.00 140.28 53.85 2.94 - 209 1.45 139.78 61.43 2.89 - 211 14.48 139.62 57.46 10.37 - 213 23.28 139.52 57.42 28.89 - 215 153.96 139.23 57.30 100.00 - 217 40.45 139.20 57.72 77.43 - 219 69.00 139.18 58.57 72.45 - 225 38.08 139.19 56.84 72.08 - 229 107.18 139.41 55.86 54.03 - 231 27.52 139.40 58.24 76.20 - 237 26.07 139.59 54.42 36.81 - 239 74.50 139.59 54.85 77.62 - 241 0.00 139.59 54.85 99.98 - 243 7.25 139.59 54.42 0.00 - 247 117.53 139.61 52.69 32.81 - 249 0.00 139.61 52.69 77.90 - 251 40.35 139.64 47.50 22.76 - 253 91.05 139.91 45.02 30.35 - 255 67.45 139.99 48.96 0.00 - 257 0.00 151.74 58.38 0.00 - 259 0.00 151.30 54.72 0.00 - 261 0.00 149.68 64.86 0.00 - 263 0.00 149.51 64.78 0.00 - 265 0.00 148.70 64.43 0.00 - 267 0.00 147.00 54.60 0.00 - 269 0.00 147.51 63.92 0.00 - 271 0.00 147.13 61.15 0.00 - 273 0.00 141.57 57.88 2.97 - 275 0.00 140.85 56.70 2.89 - River -13205.64 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 -701.41 148.68 7.27 7.87 Tank - 2 -457.74 141.33 10.76 0.00 Tank - 3 907.45 159.92 13.40 0.00 Tank - - - Link Results at 23:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -907.45 0.04 0.00 - 40 701.41 0.03 0.00 - 50 457.74 0.02 0.00 - 60 13205.64 9.37 8.99 - 101 0.00 0.00 0.00 - 103 122.83 0.20 0.01 - 105 -440.05 1.25 0.55 - 107 -12.38 0.04 0.00 - 109 -99.61 0.16 0.01 - 111 -486.05 1.38 0.67 - 112 421.75 1.20 0.51 - 113 -198.15 0.56 0.13 - 114 85.20 0.54 0.19 - 115 -103.63 0.66 0.27 - 116 -146.37 0.42 0.07 - 117 653.74 1.85 1.15 - 119 -697.59 1.98 1.30 - 120 1185.55 3.36 3.47 - 121 1052.90 2.99 2.79 - 122 362.36 2.31 2.79 - 123 9384.49 4.26 1.59 - 125 11346.64 5.15 2.26 - 129 1530.27 1.09 0.19 - 131 1251.38 0.89 0.13 - 133 -907.45 0.93 0.18 - 135 314.44 0.22 0.01 - 137 71.39 0.11 0.00 - 145 243.05 1.55 1.33 - 147 233.21 1.49 1.23 - 149 -370.35 2.36 2.90 - 151 -360.00 2.30 2.75 - 153 153.59 0.44 0.08 - 155 199.73 0.57 0.13 - 159 -214.01 0.61 0.15 - 161 -259.22 1.65 1.50 - 163 -128.97 0.37 0.06 - 169 202.74 1.29 0.95 - 171 371.53 1.05 0.41 - 173 7533.28 3.42 1.06 - 175 7446.79 3.38 1.04 - 177 7377.78 3.35 1.02 - 179 7089.10 3.22 0.95 - 180 4.34 0.01 0.00 - 181 4.34 0.01 0.00 - 183 6852.18 3.11 0.89 - 185 -24.32 0.16 0.02 - 186 279.49 1.78 1.72 - 187 6213.30 2.82 0.74 - 189 4870.75 2.21 0.47 - 191 -1276.86 0.91 0.14 - 193 -1668.00 1.18 0.22 - 195 -283.59 0.80 0.25 - 197 -380.73 1.08 0.42 - 199 320.68 0.91 0.31 - 201 701.41 1.99 1.31 - 202 549.90 3.51 6.03 - 203 313.24 2.00 2.13 - 204 549.90 1.56 0.84 - 205 279.49 0.79 0.24 - 207 -7.44 0.02 0.00 - 209 229.07 1.46 1.19 - 211 614.56 1.74 1.03 - 213 50.42 0.14 0.01 - 215 -105.14 0.30 0.04 - 217 -318.83 0.90 0.31 - 219 -262.29 0.74 0.21 - 221 262.29 1.67 1.53 - 223 -131.64 0.37 0.06 - 225 -103.18 0.29 0.04 - 229 4870.75 3.45 1.40 - 231 4528.02 3.21 1.22 - 233 4480.00 3.18 1.39 - 235 143.47 0.41 0.07 - 237 471.20 1.34 0.63 - 238 441.86 1.25 0.56 - 239 86.54 0.25 0.03 - 240 441.86 1.25 0.56 - 241 441.86 1.25 0.56 - 243 440.40 0.70 0.14 - 245 366.22 0.58 0.10 - 247 301.49 0.48 0.07 - 249 147.53 0.24 0.02 - 251 69.00 0.14 0.01 - 257 38.08 0.11 0.01 - 261 41.45 0.26 0.05 - 263 27.52 0.08 0.00 - 269 59.70 0.17 0.01 - 271 93.25 0.60 0.23 - 273 -59.61 0.17 0.01 - 275 -45.77 0.13 0.01 - 277 7.25 0.02 0.00 - 281 -53.01 0.22 0.03 - 283 -88.34 0.25 0.03 - 285 15.88 0.05 0.00 - 287 -186.43 0.76 0.27 - 289 457.74 1.87 1.45 - 291 91.05 0.37 0.07 - 293 112.81 0.72 0.32 - 295 -72.46 0.21 0.02 - 297 495.01 3.16 4.97 - 299 238.02 1.52 1.28 - 301 238.02 1.52 1.28 - 303 256.99 1.64 1.48 - 305 158.73 0.45 0.08 - 307 415.72 1.18 0.50 - 309 216.85 1.38 1.08 - 311 -322.00 0.91 0.31 - 313 507.00 1.44 0.72 - 315 -1384.41 0.98 0.16 - 317 113.02 0.72 0.32 - 319 30.45 0.09 0.00 - 321 7069.03 3.21 0.94 - 323 -26.48 0.08 0.00 - 325 107.56 0.69 0.29 - 329 13205.64 5.99 3.03 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 0.00 0.00 0.00 Pump - 335 13205.64 0.00 -93.02 Pump - - - Node Results at 24:00:00 hrs: - -------------------------------------------------------- - Demand Head Pressure % from - Node gpm ft psi Lake - -------------------------------------------------------- - 10 0.00 147.69 0.30 100.00 - 15 620.00 127.99 41.59 0.00 - 20 0.00 160.27 13.55 0.00 - 35 1637.00 147.95 58.69 1.34 - 40 0.00 147.69 6.84 7.87 - 50 0.00 139.46 9.95 0.00 - 60 0.00 209.12 90.61 0.00 - 601 0.00 303.19 131.37 0.00 - 61 0.00 303.19 131.37 0.00 - 101 254.53 147.69 45.80 0.00 - 103 178.49 147.66 45.35 0.02 - 105 181.40 149.00 52.21 0.00 - 107 73.22 148.99 55.02 0.00 - 109 310.08 147.66 55.19 0.06 - 111 190.20 148.28 59.92 0.27 - 113 26.81 148.32 63.40 3.27 - 115 69.81 149.09 58.53 0.00 - 117 157.73 152.19 60.05 0.00 - 119 236.01 159.69 68.33 0.00 - 120 0.00 157.27 68.14 0.00 - 121 55.78 163.15 71.56 0.00 - 123 0.00 167.56 67.84 0.00 - 125 61.10 162.58 65.68 0.00 - 127 23.66 160.97 45.48 0.00 - 129 0.00 160.96 47.64 0.00 - 131 57.28 160.94 67.13 0.00 - 139 7.89 155.27 53.85 0.00 - 141 13.20 151.24 63.80 0.00 - 143 8.31 140.42 62.79 0.00 - 145 37.02 152.45 65.62 1.87 - 147 11.46 153.37 58.44 0.00 - 149 36.27 153.76 59.69 0.00 - 151 193.60 157.59 53.77 0.00 - 153 59.19 157.69 39.64 0.00 - 157 69.40 157.26 62.46 0.00 - 159 55.37 153.91 64.09 0.00 - 161 21.17 151.64 63.97 0.00 - 163 12.62 151.18 63.34 0.00 - 164 0.00 151.18 63.34 7.23 - 166 3.48 151.18 66.37 0.00 - 167 19.51 149.31 66.86 0.00 - 169 0.00 149.31 66.86 0.00 - 171 52.72 148.23 65.96 0.00 - 173 0.00 148.20 65.95 0.00 - 177 77.95 147.94 60.64 7.87 - 179 0.00 147.94 60.64 7.87 - 181 0.00 147.95 60.64 1.34 - 183 0.00 147.94 59.34 7.87 - 184 0.00 146.58 56.58 4.47 - 185 34.37 147.21 56.85 4.47 - 187 0.00 147.94 58.69 0.66 - 189 144.61 148.27 62.51 0.00 - 191 109.75 148.22 53.39 0.00 - 193 95.56 148.32 56.47 0.00 - 195 0.00 148.39 57.58 0.00 - 197 22.83 148.23 54.26 0.59 - 199 159.89 142.64 62.67 0.00 - 201 59.78 141.86 61.43 0.02 - 203 4439.00 141.70 60.53 0.02 - 204 0.00 147.69 54.89 0.66 - 205 87.58 142.59 52.68 3.13 - 206 0.00 141.31 60.79 7.58 - 207 92.98 141.72 57.51 7.71 - 208 0.00 140.83 54.09 7.36 - 209 1.17 140.01 61.53 6.22 - 211 11.62 139.73 57.51 5.51 - 213 18.68 139.65 57.48 2.88 - 215 123.53 139.46 57.39 51.61 - 217 32.45 139.44 57.82 77.90 - 219 55.37 139.43 58.68 76.44 - 225 30.55 139.43 56.95 76.41 - 229 86.00 139.34 55.83 43.28 - 231 22.08 139.34 58.21 76.80 - 237 20.92 139.37 54.32 68.44 - 239 59.78 139.32 54.73 42.40 - 241 0.00 139.32 54.73 0.01 - 243 5.82 139.32 54.30 0.00 - 247 94.31 139.31 52.56 0.00 - 249 0.00 139.31 52.56 63.71 - 251 32.37 139.31 47.36 0.00 - 253 73.06 139.26 44.74 0.00 - 255 54.12 139.31 48.66 0.00 - 257 0.00 154.15 59.43 0.00 - 259 0.00 153.72 55.77 0.00 - 261 0.00 152.14 65.92 0.00 - 263 0.00 151.98 65.85 0.00 - 265 0.00 149.90 64.95 0.00 - 267 0.00 148.34 55.18 0.26 - 269 0.00 148.66 64.42 0.00 - 271 0.00 148.03 61.54 0.00 - 273 0.00 142.59 58.32 0.00 - 275 0.00 141.86 57.13 0.03 - River -13087.22 220.00 0.00 0.00 Reservoir - Lake 0.00 167.00 0.00 100.00 Reservoir - 1 262.50 147.69 6.84 7.87 Tank - 2 -140.04 139.46 9.95 0.00 Tank - 3 2184.30 160.27 13.55 0.00 Tank - - - Link Results at 24:00:00 hrs: - ---------------------------------------------- - Flow Velocity Headloss - Link gpm fps /1000ft - ---------------------------------------------- - 20 -2184.30 0.09 0.00 - 40 -262.50 0.01 0.00 - 50 140.04 0.01 0.00 - 60 13087.22 9.28 8.84 - 101 0.00 0.00 0.00 - 103 167.59 0.27 0.02 - 105 -422.12 1.20 0.51 - 107 31.99 0.09 0.00 - 109 -10.90 0.02 0.00 - 111 -320.97 0.91 0.31 - 112 497.32 1.41 0.70 - 113 -82.10 0.23 0.02 - 114 123.98 0.79 0.38 - 115 -41.23 0.26 0.05 - 116 15.07 0.04 0.00 - 117 635.51 1.80 1.09 - 119 -732.35 2.08 1.42 - 120 1157.64 3.28 3.32 - 121 1038.00 2.94 2.72 - 122 367.94 2.35 2.87 - 123 9812.39 4.45 1.73 - 125 13087.22 5.94 2.94 - 129 2851.10 2.02 0.60 - 131 2573.55 1.83 0.50 - 133 -2184.30 2.23 0.89 - 135 365.58 0.26 0.01 - 137 57.28 0.09 0.00 - 145 308.30 1.97 2.07 - 147 300.41 1.92 1.97 - 149 -628.31 4.01 7.72 - 151 -620.00 3.96 7.54 - 153 341.10 0.97 0.35 - 155 378.12 1.07 0.42 - 159 -389.58 1.11 0.44 - 161 -425.86 2.72 3.76 - 163 -157.26 0.45 0.08 - 169 216.45 1.38 1.07 - 171 462.19 1.31 0.61 - 173 7956.54 3.61 1.17 - 175 7887.14 3.58 1.15 - 177 7831.77 3.55 1.14 - 179 7559.70 3.43 1.06 - 180 3.48 0.01 0.00 - 181 3.48 0.01 0.00 - 183 7336.64 3.33 1.01 - 185 -19.51 0.12 0.01 - 186 347.44 2.22 2.58 - 187 6712.10 3.05 0.85 - 189 4855.79 2.20 0.47 - 191 -1803.59 1.28 0.26 - 193 -1637.00 1.16 0.22 - 195 308.73 0.88 0.29 - 197 230.78 0.65 0.17 - 199 -31.72 0.09 0.00 - 201 -262.50 0.74 0.21 - 202 565.23 3.61 6.35 - 203 252.15 1.61 1.42 - 204 565.23 1.60 0.88 - 205 347.44 0.99 0.36 - 207 283.88 0.81 0.25 - 209 165.61 1.06 0.65 - 211 605.03 1.72 1.00 - 213 181.84 0.52 0.11 - 215 131.20 0.37 0.06 - 217 -246.17 0.70 0.19 - 219 -250.90 0.71 0.20 - 221 250.90 1.60 1.41 - 223 45.42 0.13 0.01 - 225 68.25 0.19 0.02 - 229 4855.79 3.44 1.39 - 231 4553.07 3.23 1.23 - 233 4439.00 3.15 1.37 - 235 142.83 0.41 0.07 - 237 506.39 1.44 0.72 - 238 581.79 1.65 0.93 - 239 168.38 0.48 0.09 - 240 581.79 1.65 0.93 - 241 581.79 1.65 0.93 - 243 580.62 0.93 0.23 - 245 333.18 0.53 0.08 - 247 241.91 0.39 0.05 - 249 118.38 0.19 0.01 - 251 55.37 0.12 0.01 - 257 30.55 0.09 0.00 - 261 72.59 0.46 0.14 - 263 22.08 0.06 0.00 - 269 235.83 0.67 0.17 - 271 35.50 0.23 0.04 - 273 179.41 0.51 0.11 - 275 48.42 0.14 0.01 - 277 5.82 0.02 0.00 - 281 42.61 0.17 0.02 - 283 71.21 0.20 0.02 - 285 -48.23 0.14 0.01 - 287 -3.47 0.01 0.00 - 289 140.04 0.57 0.16 - 291 73.06 0.30 0.05 - 293 9.39 0.06 0.00 - 295 22.98 0.07 0.00 - 297 487.59 3.11 4.83 - 299 234.26 1.50 1.24 - 301 234.26 1.50 1.24 - 303 253.33 1.62 1.44 - 305 147.92 0.42 0.07 - 307 401.25 1.14 0.47 - 309 206.95 1.32 0.99 - 311 -75.75 0.21 0.02 - 313 462.89 1.31 0.61 - 315 -1945.73 1.38 0.30 - 317 114.09 0.73 0.33 - 319 28.74 0.08 0.00 - 321 7543.59 3.42 1.06 - 323 54.29 0.15 0.01 - 325 142.14 0.91 0.49 - 329 13087.22 5.94 2.98 - 330 0.00 0.00 0.00 - 333 -0.00 0.00 0.00 - 10 0.00 0.00 0.00 Pump - 335 13087.22 0.00 -94.07 Pump - - Analysis ended Fri Oct 13 13:50:30 2017 diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/performance.json b/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/performance.json deleted file mode 100644 index ba3b33b..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/Example_3/performance.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "duration": 0.246, - "max_memory_MB": 0.0 -} \ No newline at end of file diff --git a/tests/epanet-nrtestsuite/benchmark/epanet-2012/manifest.json b/tests/epanet-nrtestsuite/benchmark/epanet-2012/manifest.json deleted file mode 100644 index c47181d..0000000 --- a/tests/epanet-nrtestsuite/benchmark/epanet-2012/manifest.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Application": { - "description": "Windows, MS VC 2010, 32 Bit", - "name": "epanet", - "version": "2.0.12" - }, - "Tests": [ - { - "description": "A simple example of modeling chlorine decay", - "error_msg": null, - "name": "Example 1", - "output_files": { - "example1.out": "epanet allclose", - "example1.rpt": "epanet report" - }, - "passed": true, - "version": "1.0" - }, - { - "description": "Example of modeling a 55-hour fluoride tracer study.", - "error_msg": null, - "name": "Example 2", - "output_files": { - "example2.out": "epanet allclose", - "example2.rpt": "epanet report" - }, - "passed": true, - "version": "1.0" - }, - { - "description": "Dual-source system example", - "error_msg": null, - "name": "Example 3", - "output_files": { - "example3.out": "epanet allclose", - "example3.rpt": "epanet report" - }, - "passed": true, - "version": "1.0" - } - ] -} \ No newline at end of file diff --git a/tests/epanet-nrtestsuite/tests/examples/example1.inp b/tests/epanet-nrtestsuite/tests/examples/example1.inp deleted file mode 100644 index 085bf15..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example1.inp +++ /dev/null @@ -1,180 +0,0 @@ -[TITLE] - EPANET Example Network 1 -A simple example of modeling chlorine decay. Both bulk and -wall reactions are included. - -[JUNCTIONS] -;ID Elev Demand Pattern - 10 710 0 ; - 11 710 150 ; - 12 700 150 ; - 13 695 100 ; - 21 700 150 ; - 22 695 200 ; - 23 690 150 ; - 31 700 100 ; - 32 710 100 ; - -[RESERVOIRS] -;ID Head Pattern - 9 800 ; - -[TANKS] -;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve - 2 850 120 100 150 50.5 0 ; - -[PIPES] -;ID Node1 Node2 Length Diameter Roughness MinorLoss Status - 10 10 11 10530 18 100 0 Open ; - 11 11 12 5280 14 100 0 Open ; - 12 12 13 5280 10 100 0 Open ; - 21 21 22 5280 10 100 0 Open ; - 22 22 23 5280 12 100 0 Open ; - 31 31 32 5280 6 100 0 Open ; - 110 2 12 200 18 100 0 Open ; - 111 11 21 5280 10 100 0 Open ; - 112 12 22 5280 12 100 0 Open ; - 113 13 23 5280 8 100 0 Open ; - 121 21 31 5280 8 100 0 Open ; - 122 22 32 5280 6 100 0 Open ; - -[PUMPS] -;ID Node1 Node2 Parameters - 9 9 10 HEAD 1 ; - -[VALVES] -;ID Node1 Node2 Diameter Type Setting MinorLoss - -[TAGS] - -[DEMANDS] -;Junction Demand Pattern Category - -[STATUS] -;ID Status/Setting - -[PATTERNS] -;ID Multipliers -;Demand Pattern - 1 1.0 1.2 1.4 1.6 1.4 1.2 - 1 1.0 0.8 0.6 0.4 0.6 0.8 - -[CURVES] -;ID X-Value Y-Value -;PUMP: Pump Curve for Pump 9 - 1 1500 250 - -[CONTROLS] - LINK 9 OPEN IF NODE 2 BELOW 110 - LINK 9 CLOSED IF NODE 2 ABOVE 140 - - -[RULES] - -[ENERGY] - Global Efficiency 75 - Global Price 0.0 - Demand Charge 0.0 - -[EMITTERS] -;Junction Coefficient - -[QUALITY] -;Node InitQual - 10 0.5 - 11 0.5 - 12 0.5 - 13 0.5 - 21 0.5 - 22 0.5 - 23 0.5 - 31 0.5 - 32 0.5 - 9 1.0 - 2 1.0 - -[SOURCES] -;Node Type Quality Pattern - -[REACTIONS] -;Type Pipe/Tank Coefficient - - -[REACTIONS] - Order Bulk 1 - Order Tank 1 - Order Wall 1 - Global Bulk -.5 - Global Wall -1 - Limiting Potential 0.0 - Roughness Correlation 0.0 - -[MIXING] -;Tank Model - -[TIMES] - Duration 24:00 - Hydraulic Timestep 1:00 - Quality Timestep 0:05 - Pattern Timestep 2:00 - Pattern Start 0:00 - Report Timestep 1:00 - Report Start 0:00 - Start ClockTime 12 am - Statistic None - -[REPORT] - Status Yes - Summary No - Nodes All - Links All - - -[OPTIONS] - Units GPM - Headloss H-W - Specific Gravity 1.0 - Viscosity 1.0 - Trials 40 - Accuracy 0.001 - CHECKFREQ 2 - MAXCHECK 10 - ;DAMPLIMIT 0 - Unbalanced Continue 10 - Pattern 1 - Demand Multiplier 1.0 - Emitter Exponent 0.5 - Quality Chlorine mg/L - Diffusivity 1.0 - Tolerance 0.01 - -[COORDINATES] -;Node X-Coord Y-Coord - 10 20.00 70.00 - 11 30.00 70.00 - 12 50.00 70.00 - 13 70.00 70.00 - 21 30.00 40.00 - 22 50.00 40.00 - 23 70.00 40.00 - 31 30.00 10.00 - 32 50.00 10.00 - 9 10.00 70.00 - 2 50.00 90.00 - -[VERTICES] -;Link X-Coord Y-Coord - -[LABELS] -;X-Coord Y-Coord Label & Anchor Node - 6.99 73.63 "Source" - 13.48 68.13 "Pump" - 43.85 91.21 "Tank" - -[BACKDROP] - DIMENSIONS 7.00 6.00 73.00 94.00 - UNITS None - FILE - OFFSET 0.00 0.00 - -[END] diff --git a/tests/epanet-nrtestsuite/tests/examples/example1.json b/tests/epanet-nrtestsuite/tests/examples/example1.json deleted file mode 100644 index faa127b..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example1.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Example 1", - "version": "1.0", - "description": "A simple example of modeling chlorine decay", - "args": [ - "example1.inp", - "example1.rpt", - "example1.out" - ], - "input_files": [ - "example1.inp" - ], - "output_files": { - "example1.rpt": "epanet report", - "example1.out": "epanet allclose" - } -} diff --git a/tests/epanet-nrtestsuite/tests/examples/example2.dat b/tests/epanet-nrtestsuite/tests/examples/example2.dat deleted file mode 100644 index 6991e89..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example2.dat +++ /dev/null @@ -1,80 +0,0 @@ -;Measured Fluoride for Net2 -;Node Hour MG/L -11 2.50 1.02 -11 5.38 0.87 -11 8.30 0.70 -11 11.75 1.01 -11 13.02 0.62 -11 14.48 0.26 -11 17.43 0.17 -11 20.30 0.20 -11 23.35 0.90 -11 27.00 0.13 -11 29.67 0.13 -11 33.70 0.54 -11 35.40 0.90 -11 38.30 0.17 -11 41.62 0.10 -11 44.42 0.12 -11 47.25 0.71 -11 51.00 0.13 -11 53.27 0.58 -19 0.25 1.04 -19 2.75 1.04 -19 5.70 1.08 -19 8.60 1.00 -19 12.00 0.81 -19 13.25 0.95 -19 14.73 1.02 -19 17.77 1.01 -19 20.52 0.87 -19 23.53 0.28 -19 27.17 0.98 -19 29.87 0.85 -19 33.92 0.12 -19 35.67 0.17 -19 38.48 0.64 -19 42.08 0.79 -19 44.68 0.87 -19 47.50 0.16 -19 51.17 0.56 -19 53.45 0.70 -25 0.58 1.04 - 3.00 1.00 - 5.87 1.03 - 8.80 1.00 - 12.25 1.02 - 13.50 0.88 - 14.97 0.36 - 18.15 0.91 - 20.75 0.92 - 23.73 0.94 - 27.42 0.19 - 30.08 0.12 - 34.12 0.83 - 35.87 0.82 - 38.67 0.72 - 42.40 0.76 - 44.92 0.78 - 47.75 0.87 - 51.50 0.42 - 53.75 0.48 - 34 2.67 1.03 - 5.50 1.04 - 8.45 0.98 - 11.87 1.01 - 13.15 1.02 - 14.62 1.04 - 17.60 1.02 - 20.42 1.02 - 23.43 1.00 - 27.08 1.02 - 29.75 0.94 - 33.82 0.89 - 35.53 0.75 - 38.40 0.80 - 41.85 0.84 - 44.55 0.92 - 47.42 0.91 - 51.08 0.81 - 53.37 0.47 diff --git a/tests/epanet-nrtestsuite/tests/examples/example2.inp b/tests/epanet-nrtestsuite/tests/examples/example2.inp deleted file mode 100644 index 8b14982..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example2.inp +++ /dev/null @@ -1,310 +0,0 @@ -[TITLE] -EPANET Example Network 2 -Example of modeling a 55-hour fluoride tracer study. -Measured fluoride data is contained in the file Net2-FL.dat -and should be registered with the project to produce a -Calibration Report (select Calibration Data from the Project -menu). - -[JUNCTIONS] -;ID Elev Demand Pattern - 1 50 -694.4 2 ; - 2 100 8 ; - 3 60 14 ; - 4 60 8 ; - 5 100 8 ; - 6 125 5 ; - 7 160 4 ; - 8 110 9 ; - 9 180 14 ; - 10 130 5 ; - 11 185 34.78 ; - 12 210 16 ; - 13 210 2 ; - 14 200 2 ; - 15 190 2 ; - 16 150 20 ; - 17 180 20 ; - 18 100 20 ; - 19 150 5 ; - 20 170 19 ; - 21 150 16 ; - 22 200 10 ; - 23 230 8 ; - 24 190 11 ; - 25 230 6 ; - 27 130 8 ; - 28 110 0 ; - 29 110 7 ; - 30 130 3 ; - 31 190 17 ; - 32 110 17 ; - 33 180 1.5 ; - 34 190 1.5 ; - 35 110 0 ; - 36 110 1 ; - -[RESERVOIRS] -;ID Head Pattern - -[TANKS] -;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve - 26 235 56.7 50 70 50 0 ; - -[PIPES] -;ID Node1 Node2 Length Diameter Roughness MinorLoss Status - 1 1 2 2400 12 100 0 Open ; - 2 2 5 800 12 100 0 Open ; - 3 2 3 1300 8 100 0 Open ; - 4 3 4 1200 8 100 0 Open ; - 5 4 5 1000 12 100 0 Open ; - 6 5 6 1200 12 100 0 Open ; - 7 6 7 2700 12 100 0 Open ; - 8 7 8 1200 12 140 0 Open ; - 9 7 9 400 12 100 0 Open ; - 10 8 10 1000 8 140 0 Open ; - 11 9 11 700 12 100 0 Open ; - 12 11 12 1900 12 100 0 Open ; - 13 12 13 600 12 100 0 Open ; - 14 13 14 400 12 100 0 Open ; - 15 14 15 300 12 100 0 Open ; - 16 13 16 1500 8 100 0 Open ; - 17 15 17 1500 8 100 0 Open ; - 18 16 17 600 8 100 0 Open ; - 19 17 18 700 12 100 0 Open ; - 20 18 32 350 12 100 0 Open ; - 21 16 19 1400 8 100 0 Open ; - 22 14 20 1100 12 100 0 Open ; - 23 20 21 1300 8 100 0 Open ; - 24 21 22 1300 8 100 0 Open ; - 25 20 22 1300 8 100 0 Open ; - 26 24 23 600 12 100 0 Open ; - 27 15 24 250 12 100 0 Open ; - 28 23 25 300 12 100 0 Open ; - 29 25 26 200 12 100 0 Open ; - 30 25 31 600 12 100 0 Open ; - 31 31 27 400 8 100 0 Open ; - 32 27 29 400 8 100 0 Open ; - 34 29 28 700 8 100 0 Open ; - 35 22 33 1000 8 100 0 Open ; - 36 33 34 400 8 100 0 Open ; - 37 32 19 500 8 100 0 Open ; - 38 29 35 500 8 100 0 Open ; - 39 35 30 1000 8 100 0 Open ; - 40 28 35 700 8 100 0 Open ; - 41 28 36 300 8 100 0 Open ; - -[PUMPS] -;ID Node1 Node2 Parameters - -[VALVES] -;ID Node1 Node2 Diameter Type Setting MinorLoss - -[TAGS] - -[DEMANDS] -;Junction Demand Pattern Category - -[STATUS] -;ID Status/Setting - -[PATTERNS] -;ID Multipliers -;Demand Pattern - 1 1.26 1.04 .97 .97 .89 1.19 - 1 1.28 .67 .67 1.34 2.46 .97 - 1 .92 .68 1.43 .61 .31 .78 - 1 .37 .67 1.26 1.56 1.19 1.26 - 1 .6 1.1 1.03 .73 .88 1.06 - 1 .99 1.72 1.12 1.34 1.12 .97 - 1 1.04 1.15 .91 .61 .68 .46 - 1 .51 .74 1.12 1.34 1.26 .97 - 1 .82 1.37 1.03 .81 .88 .81 - 1 .81 -;Pump Station Outflow Pattern - 2 .96 .96 .96 .96 .96 .96 - 2 .62 0 0 0 0 0 - 2 .8 1 1 1 1 .15 - 2 0 0 0 0 0 0 - 2 .55 .92 .92 .92 .92 .9 - 2 .9 .45 0 0 0 0 - 2 0 .7 1 1 1 1 - 2 .2 0 0 0 0 0 - 2 0 .74 .92 .92 .92 .92 - 2 .92 -;Pump Station Fluoride Pattern - 3 .98 1.02 1.05 .99 .64 .46 - 3 .35 .35 .35 .35 .35 .35 - 3 .17 .17 .13 .13 .13 .15 - 3 .15 .15 .15 .15 .15 .15 - 3 .15 .12 .1 .08 .11 .09 - 3 .09 .08 .08 .08 .08 .08 - 3 .08 .09 .07 .07 .09 .09 - 3 .09 .09 .09 .09 .09 .09 - 3 .09 .08 .35 .72 .82 .92 - 3 1 - -[CURVES] -;ID X-Value Y-Value - -[CONTROLS] - -[RULES] - -[ENERGY] - Global Efficiency 75 - Global Price 0.0 - Demand Charge 0.0 - -[EMITTERS] -;Junction Coefficient - -[QUALITY] -;Node InitQual - 1 1.0 - 2 1.0 - 3 1.0 - 4 1.0 - 5 1.0 - 6 1.0 - 7 1.0 - 8 1.0 - 9 1.0 - 10 1.0 - 11 1.0 - 12 1.0 - 13 1.0 - 14 1.0 - 15 1.0 - 16 1.0 - 17 1.0 - 18 1.0 - 19 1.0 - 20 1.0 - 21 1.0 - 22 1.0 - 23 1.0 - 24 1.0 - 25 1.0 - 27 1.0 - 28 1.0 - 29 1.0 - 30 1.0 - 31 1.0 - 32 1.0 - 33 1.0 - 34 1.0 - 35 1.0 - 36 1.0 - 26 1.0 - -[SOURCES] -;Node Type Quality Pattern - 1 CONCEN 1.0 3 - -[REACTIONS] -;Type Pipe/Tank Coefficient - - -[REACTIONS] - Order Bulk 1 - Order Tank 1 - Order Wall 1 - Global Bulk 0.0 - Global Wall 0.0 - Limiting Potential 0.0 - Roughness Correlation 0.0 - -[MIXING] -;Tank Model - -[TIMES] - Duration 55:00 - Hydraulic Timestep 1:00 - Quality Timestep 0:05 - Pattern Timestep 1:00 - Pattern Start 0:00 - Report Timestep 1:00 - Report Start 0:00 - Start ClockTime 8 am - Statistic None - -[REPORT] - Status Yes - Summary No - Nodes All - Links All - -[OPTIONS] - Units GPM - Headloss H-W - Specific Gravity 1.0 - Viscosity 1.0 - Trials 40 - Accuracy 0.001 - CHECKFREQ 2 - MAXCHECK 10 - ;DAMPLIMIT 0 - Unbalanced Continue 10 - Pattern 1 - Demand Multiplier 1.0 - Emitter Exponent 0.5 - Quality Fluoride mg/L - Diffusivity 1.0 - Tolerance 0.01 - -[COORDINATES] -;Node X-Coord Y-Coord - 1 21.00 4.00 - 2 19.00 20.00 - 3 11.00 21.00 - 4 14.00 28.00 - 5 19.00 25.00 - 6 28.00 23.00 - 7 36.00 39.00 - 8 38.00 30.00 - 9 36.00 42.00 - 10 37.00 23.00 - 11 37.00 49.00 - 12 39.00 60.00 - 13 38.00 64.00 - 14 38.00 66.00 - 15 37.00 69.00 - 16 27.00 65.00 - 17 27.00 69.00 - 18 23.00 68.00 - 19 21.00 59.00 - 20 45.00 68.00 - 21 51.00 62.00 - 22 54.00 69.00 - 23 35.00 74.00 - 24 37.00 71.00 - 25 35.00 76.00 - 27 39.00 87.00 - 28 49.00 85.00 - 29 42.00 86.00 - 30 47.00 80.00 - 31 37.00 80.00 - 32 23.00 64.00 - 33 56.00 73.00 - 34 56.00 77.00 - 35 43.00 81.00 - 36 53.00 87.00 - 26 33.00 76.00 - -[VERTICES] -;Link X-Coord Y-Coord - -[LABELS] -;X-Coord Y-Coord Label & Anchor Node - 24.00 7.00 "Pump" - 24.00 4.00 "Station" - 26.76 77.42 "Tank" - -[BACKDROP] - DIMENSIONS 8.75 -0.15 58.25 91.15 - UNITS None - FILE - OFFSET 0.00 0.00 - -[END] diff --git a/tests/epanet-nrtestsuite/tests/examples/example2.json b/tests/epanet-nrtestsuite/tests/examples/example2.json deleted file mode 100644 index cbc3286..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example2.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Example 2", - "version": "1.0", - "description": "Example of modeling a 55-hour fluoride tracer study.", - "args": [ - "example2.inp", - "example2.rpt", - "example2.out" - ], - "input_files": [ - "example2.inp" - ], - "output_files": { - "example2.rpt": "epanet report", - "example2.out": "epanet allclose" - } -} diff --git a/tests/epanet-nrtestsuite/tests/examples/example3.inp b/tests/epanet-nrtestsuite/tests/examples/example3.inp deleted file mode 100644 index da24ba6..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example3.inp +++ /dev/null @@ -1,481 +0,0 @@ -[TITLE] -EPANET Example Network 3 -Example showing how the percent of Lake water in a dual-source -system changes over time. - -[JUNCTIONS] -;ID Elev Demand Pattern - 10 147 0 ; - 15 32 1 3 ; - 20 129 0 ; - 35 12.5 1 4 ; - 40 131.9 0 ; - 50 116.5 0 ; - 60 0 0 ; - 601 0 0 ; - 61 0 0 ; - 101 42 189.95 ; - 103 43 133.2 ; - 105 28.5 135.37 ; - 107 22 54.64 ; - 109 20.3 231.4 ; - 111 10 141.94 ; - 113 2 20.01 ; - 115 14 52.1 ; - 117 13.6 117.71 ; - 119 2 176.13 ; - 120 0 0 ; - 121 -2 41.63 ; - 123 11 1 2 ; - 125 11 45.6 ; - 127 56 17.66 ; - 129 51 0 ; - 131 6 42.75 ; - 139 31 5.89 ; - 141 4 9.85 ; - 143 -4.5 6.2 ; - 145 1 27.63 ; - 147 18.5 8.55 ; - 149 16 27.07 ; - 151 33.5 144.48 ; - 153 66.2 44.17 ; - 157 13.1 51.79 ; - 159 6 41.32 ; - 161 4 15.8 ; - 163 5 9.42 ; - 164 5 0 ; - 166 -2 2.6 ; - 167 -5 14.56 ; - 169 -5 0 ; - 171 -4 39.34 ; - 173 -4 0 ; - 177 8 58.17 ; - 179 8 0 ; - 181 8 0 ; - 183 11 0 ; - 184 16 0 ; - 185 16 25.65 ; - 187 12.5 0 ; - 189 4 107.92 ; - 191 25 81.9 ; - 193 18 71.31 ; - 195 15.5 0 ; - 197 23 17.04 ; - 199 -2 119.32 ; - 201 0.1 44.61 ; - 203 2 1 5 ; - 204 21 0 ; - 205 21 65.36 ; - 206 1 0 ; - 207 9 69.39 ; - 208 16 0 ; - 209 -2 0.87 ; - 211 7 8.67 ; - 213 7 13.94 ; - 215 7 92.19 ; - 217 6 24.22 ; - 219 4 41.32 ; - 225 8 22.8 ; - 229 10.5 64.18 ; - 231 5 16.48 ; - 237 14 15.61 ; - 239 13 44.61 ; - 241 13 0 ; - 243 14 4.34 ; - 247 18 70.38 ; - 249 18 0 ; - 251 30 24.16 ; - 253 36 54.52 ; - 255 27 40.39 ; - 257 17 0 ; - 259 25 0 ; - 261 0 0 ; - 263 0 0 ; - 265 0 0 ; - 267 21 0 ; - 269 0 0 ; - 271 6 0 ; - 273 8 0 ; - 275 10 0 ; - -[RESERVOIRS] -;ID Head Pattern - River 220.0 ; - Lake 167.0 ; - -[TANKS] -;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve - 1 131.9 13.1 .1 32.1 85 0 ; - 2 116.5 23.5 6.5 40.3 50 0 ; - 3 129.0 29.0 4.0 35.5 164 0 ; - -[PIPES] -;ID Node1 Node2 Length Diameter Roughness MinorLoss Status - 20 3 20 99 99 199 0 Open ; - 40 1 40 99 99 199 0 Open ; - 50 2 50 99 99 199 0 Open ; - 60 River 60 1231 24 140 0 Open ; - 101 10 101 14200 18 110 0 Open ; - 103 101 103 1350 16 130 0 Open ; - 105 101 105 2540 12 130 0 Open ; - 107 105 107 1470 12 130 0 Open ; - 109 103 109 3940 16 130 0 Open ; - 111 109 111 2000 12 130 0 Open ; - 112 115 111 1160 12 130 0 Open ; - 113 111 113 1680 12 130 0 Open ; - 114 115 113 2000 8 130 0 Open ; - 115 107 115 1950 8 130 0 Open ; - 116 113 193 1660 12 130 0 Open ; - 117 263 105 2725 12 130 0 Open ; - 119 115 117 2180 12 130 0 Open ; - 120 119 120 730 12 130 0 Open ; - 121 120 117 1870 12 130 0 Open ; - 122 121 120 2050 8 130 0 Open ; - 123 121 119 2000 30 141 0 Open ; - 125 123 121 1500 30 141 0 Open ; - 129 121 125 930 24 130 0 Open ; - 131 125 127 3240 24 130 0 Open ; - 133 20 127 785 20 130 0 Open ; - 135 127 129 900 24 130 0 Open ; - 137 129 131 6480 16 130 0 Open ; - 145 129 139 2750 8 130 0 Open ; - 147 139 141 2050 8 130 0 Open ; - 149 143 141 1400 8 130 0 Open ; - 151 15 143 1650 8 130 0 Open ; - 153 145 141 3510 12 130 0 Open ; - 155 147 145 2200 12 130 0 Open ; - 159 147 149 880 12 130 0 Open ; - 161 149 151 1020 8 130 0 Open ; - 163 151 153 1170 12 130 0 Open ; - 169 125 153 4560 8 130 0 Open ; - 171 119 151 3460 12 130 0 Open ; - 173 119 157 2080 30 141 0 Open ; - 175 157 159 2910 30 141 0 Open ; - 177 159 161 2000 30 141 0 Open ; - 179 161 163 430 30 141 0 Open ; - 180 163 164 150 14 130 0 Open ; - 181 164 166 490 14 130 0 Open ; - 183 265 169 590 30 141 0 Open ; - 185 167 169 60 8 130 0 Open ; - 186 187 204 99.9 8 130 0 Open ; - 187 169 171 1270 30 141 0 Open ; - 189 171 173 50 30 141 0 Open ; - 191 271 171 760 24 130 0 Open ; - 193 35 181 30 24 130 0 Open ; - 195 181 177 30 12 130 0 Open ; - 197 177 179 30 12 130 0 Open ; - 199 179 183 210 12 130 0 Open ; - 201 40 179 1190 12 130 0 Open ; - 202 185 184 99.9 8 130 0 Open ; - 203 183 185 510 8 130 0 Open ; - 204 184 205 4530. 12 130 0 Open ; - 205 204 185 1325. 12 130 0 Open ; - 207 189 183 1350 12 130 0 Open ; - 209 189 187 500 8 130 0 Open ; - 211 169 269 646 12 130 0 Open ; - 213 191 187 2560 12 130 0 Open ; - 215 267 189 1230 12 130 0 Open ; - 217 191 193 520 12 130 0 Open ; - 219 193 195 360 12 130 0 Open ; - 221 161 195 2300 8 130 0 Open ; - 223 197 191 1150 12 130 0 Open ; - 225 111 197 2790 12 130 0 Open ; - 229 173 199 4000 24 141 0 Open ; - 231 199 201 630 24 141 0 Open ; - 233 201 203 120 24 130 0 Open ; - 235 199 273 725 12 130 0 Open ; - 237 205 207 1200 12 130 0 Open ; - 238 207 206 450 12 130 0 Open ; - 239 275 207 1430 12 130 0 Open ; - 240 206 208 510 12 130 0 Open ; - 241 208 209 885 12 130 0 Open ; - 243 209 211 1210 16 130 0 Open ; - 245 211 213 990 16 130 0 Open ; - 247 213 215 4285 16 130 0 Open ; - 249 215 217 1660 16 130 0 Open ; - 251 217 219 2050 14 130 0 Open ; - 257 217 225 1560 12 130 0 Open ; - 261 213 229 2200 8 130 0 Open ; - 263 229 231 1960 12 130 0 Open ; - 269 211 237 2080 12 130 0 Open ; - 271 237 229 790 8 130 0 Open ; - 273 237 239 510 12 130 0 Open ; - 275 239 241 35 12 130 0 Open ; - 277 241 243 2200 12 130 0 Open ; - 281 241 247 445 10 130 0 Open ; - 283 239 249 430 12 130 0 Open ; - 285 247 249 10 12 130 0 Open ; - 287 247 255 1390 10 130 0 Open ; - 289 50 255 925 10 130 0 Open ; - 291 255 253 1100 10 130 0 Open ; - 293 255 251 1100 8 130 0 Open ; - 295 249 251 1450 12 130 0 Open ; - 297 120 257 645 8 130 0 Open ; - 299 257 259 350 8 130 0 Open ; - 301 259 263 1400 8 130 0 Open ; - 303 257 261 1400 8 130 0 Open ; - 305 117 261 645 12 130 0 Open ; - 307 261 263 350 12 130 0 Open ; - 309 265 267 1580 8 130 0 Open ; - 311 193 267 1170 12 130 0 Open ; - 313 269 189 646 12 130 0 Open ; - 315 181 271 260 24 130 0 Open ; - 317 273 275 2230 8 130 0 Open ; - 319 273 205 645 12 130 0 Open ; - 321 163 265 1200 30 141 0 Open ; - 323 201 275 300 12 130 0 Open ; - 325 269 271 1290 8 130 0 Open ; - 329 61 123 45500 30 140 0 Open ; - 330 60 601 1 30 140 0 Closed ; - 333 601 61 1 30 140 0 Open ; - -[PUMPS] -;ID Node1 Node2 Parameters - 10 Lake 10 HEAD 1 ; - 335 60 61 HEAD 2 ; - -[VALVES] -;ID Node1 Node2 Diameter Type Setting MinorLoss - -[TAGS] - -[DEMANDS] -;Junction Demand Pattern Category - -[STATUS] -;ID Status/Setting - 10 Closed - -[PATTERNS] -;ID Multipliers -;General Default Demand Pattern - 1 1.34 1.94 1.46 1.44 .76 .92 - 1 .85 1.07 .96 1.1 1.08 1.19 - 1 1.16 1.08 .96 .83 .79 .74 - 1 .64 .64 .85 .96 1.24 1.67 -;Demand Pattern for Node 123 - 2 0 0 0 0 0 1219 - 2 0 0 0 1866 1836 1818 - 2 1818 1822 1822 1817 1824 1816 - 2 1833 1817 1830 1814 1840 1859 -;Demand Pattern for Node 15 - 3 620 620 620 620 620 360 - 3 360 0 0 0 0 360 - 3 360 360 360 360 0 0 - 3 0 0 0 0 360 360 -;Demand Pattern for Node 35 - 4 1637 1706 1719 1719 1791 1819 - 4 1777 1842 1815 1825 1856 1801 - 4 1819 1733 1664 1620 1613 1620 - 4 1616 1647 1627 1627 1671 1668 -;Demand Pattern for Node 203 - 5 4439 4531 4511 4582 4531 4582 - 5 4572 4613 4643 4643 4592 4613 - 5 4531 4521 4449 4439 4449 4460 - 5 4439 4419 4368 4399 4470 4480 - -[CURVES] -;ID X-Value Y-Value -;PUMP: Pump Curve for Pump 10 (Lake Source) - 1 0 104. - 1 2000. 92. - 1 4000. 63. -;PUMP: Pump Curve for Pump 335 (River Source) - 2 0 200. - 2 8000. 138. - 2 14000. 86. - -[CONTROLS] -;Lake source operates only part of the day -Link 10 OPEN AT TIME 1 -Link 10 CLOSED AT TIME 15 - -;Pump 335 controlled by level in Tank 1 -;When pump is closed, bypass pipe is opened -Link 335 OPEN IF Node 1 BELOW 17.1 -Link 335 CLOSED IF Node 1 ABOVE 19.1 -Link 330 CLOSED IF Node 1 BELOW 17.1 -Link 330 OPEN IF Node 1 ABOVE 19.1 - - -[RULES] - -[ENERGY] - Global Efficiency 75 - Global Price 0.0 - Demand Charge 0.0 - -[EMITTERS] -;Junction Coefficient - -[QUALITY] -;Node InitQual - -[SOURCES] -;Node Type Quality Pattern - -[REACTIONS] -;Type Pipe/Tank Coefficient - - -[REACTIONS] - Order Bulk 1 - Order Tank 1 - Order Wall 1 - Global Bulk 0.0 - Global Wall 0.0 - Limiting Potential 0.0 - Roughness Correlation 0.0 - -[MIXING] -;Tank Model - -[TIMES] - Duration 24:00 - Hydraulic Timestep 1:00 - Quality Timestep 0:05 - Pattern Timestep 1:00 - Pattern Start 0:00 - Report Timestep 1:00 - Report Start 0:00 - Start ClockTime 12 am - Statistic None - -[REPORT] - Status Yes - Summary No - Nodes All - Links All - -[OPTIONS] - Units GPM - Headloss H-W - Specific Gravity 1.0 - Viscosity 1.0 - Trials 40 - Accuracy 0.001 - CHECKFREQ 2 - MAXCHECK 10 - ;DAMPLIMIT 0 - Unbalanced Continue 10 - Pattern 1 - Demand Multiplier 1.0 - Emitter Exponent 0.5 - Quality Trace Lake - Diffusivity 1.0 - Tolerance 0.01 - -[COORDINATES] -;Node X-Coord Y-Coord - 10 9.00 27.85 - 15 38.68 23.76 - 20 29.44 26.91 - 35 25.46 10.52 - 40 27.02 9.81 - 50 33.01 3.01 - 60 23.90 29.94 - 601 23.00 29.49 - 61 23.71 29.03 - 101 13.81 22.94 - 103 12.96 21.31 - 105 16.97 21.28 - 107 18.45 20.46 - 109 17.64 18.92 - 111 20.21 17.53 - 113 22.04 16.61 - 115 20.98 19.18 - 117 21.69 21.28 - 119 23.70 22.76 - 120 22.08 23.10 - 121 23.54 25.50 - 123 23.37 27.31 - 125 24.59 25.64 - 127 29.29 26.40 - 129 30.32 26.39 - 131 37.89 29.55 - 139 33.28 24.54 - 141 35.68 23.08 - 143 37.47 21.97 - 145 33.02 19.29 - 147 30.24 20.38 - 149 29.62 20.74 - 151 28.29 21.39 - 153 28.13 22.63 - 157 24.85 20.16 - 159 23.12 17.50 - 161 25.10 15.28 - 163 25.39 14.98 - 164 25.98 15.14 - 166 26.48 15.13 - 167 25.88 12.98 - 169 25.68 12.74 - 171 26.65 11.80 - 173 26.87 11.59 - 179 25.71 10.40 - 181 25.72 10.74 - 183 25.45 10.18 - 184 25.15 9.52 - 185 25.01 9.67 - 187 23.64 11.04 - 189 24.15 11.37 - 191 22.10 14.07 - 193 22.88 14.35 - 195 23.18 14.72 - 197 20.97 15.18 - 199 29.42 8.44 - 201 30.89 8.57 - 203 31.14 8.89 - 204 23.80 10.90 - 205 29.20 6.46 - 206 31.66 6.64 - 207 31.00 6.61 - 208 32.54 6.81 - 209 33.76 6.59 - 211 34.20 5.54 - 213 35.26 6.16 - 215 39.95 8.73 - 217 42.11 8.67 - 219 44.86 9.32 - 225 43.53 7.38 - 229 36.16 3.49 - 231 38.38 2.54 - 237 35.37 3.08 - 239 35.76 2.31 - 241 35.87 2.11 - 243 37.04 0.00 - 247 35.02 2.05 - 249 35.02 1.81 - 251 34.15 1.10 - 253 32.17 1.88 - 255 33.51 2.45 - 257 21.17 23.32 - 259 20.80 23.40 - 261 20.79 21.45 - 263 20.32 21.57 - 265 25.39 13.60 - 267 23.38 12.95 - 269 25.03 12.14 - 271 25.97 11.00 - 273 29.16 7.38 - 275 31.07 8.29 - River 24.15 31.06 - Lake 8.00 27.53 - 1 27.46 9.84 - 2 32.99 3.45 - 3 29.41 27.27 - -[VERTICES] -;Link X-Coord Y-Coord - -[LABELS] -;X-Coord Y-Coord Label & Anchor Node - 8.00 29.42 "LAKE" - 25.00 31.10 "RIVER" - -[BACKDROP] - DIMENSIONS 6.16 -1.55 46.70 32.61 - UNITS None - FILE - OFFSET 0.00 0.00 - -[END] diff --git a/tests/epanet-nrtestsuite/tests/examples/example3.json b/tests/epanet-nrtestsuite/tests/examples/example3.json deleted file mode 100644 index 124d183..0000000 --- a/tests/epanet-nrtestsuite/tests/examples/example3.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Example 3", - "version": "1.0", - "description": "Dual-source system example", - "args": [ - "example3.inp", - "example3.rpt", - "example3.out" - ], - "input_files": [ - "example3.inp" - ], - "output_files": { - "example3.rpt": "epanet report", - "example3.out": "epanet allclose" - } -} diff --git a/tests/network_tests/net1/net1.enb b/tests/network_tests/net1/net1.enb deleted file mode 100644 index 489729c..0000000 Binary files a/tests/network_tests/net1/net1.enb and /dev/null differ diff --git a/tests/network_tests/net1/net1.inp b/tests/network_tests/net1/net1.inp deleted file mode 100644 index 4df5bbf..0000000 --- a/tests/network_tests/net1/net1.inp +++ /dev/null @@ -1,178 +0,0 @@ -[TITLE] - EPANET Example Network 1 -A simple example of modeling chlorine decay. Both bulk and -wall reactions are included. - -[JUNCTIONS] -;ID Elev Demand Pattern - 10 710 0 ; - 11 710 150 ; - 12 700 150 ; - 13 695 100 ; - 21 700 150 ; - 22 695 200 ; - 23 690 150 ; - 31 700 100 ; - 32 710 100 ; - -[RESERVOIRS] -;ID Head Pattern - 9 800 ; - -[TANKS] -;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve - 2 850 120 100 150 50.5 0 ; - -[PIPES] -;ID Node1 Node2 Length Diameter Roughness MinorLoss Status - 10 10 11 10530 18 100 0 Open ; - 11 11 12 5280 14 100 0 Open ; - 12 12 13 5280 10 100 0 Open ; - 21 21 22 5280 10 100 0 Open ; - 22 22 23 5280 12 100 0 Open ; - 31 31 32 5280 6 100 0 Open ; - 110 2 12 200 18 100 0 Open ; - 111 11 21 5280 10 100 0 Open ; - 112 12 22 5280 12 100 0 Open ; - 113 13 23 5280 8 100 0 Open ; - 121 21 31 5280 8 100 0 Open ; - 122 22 32 5280 6 100 0 Open ; - -[PUMPS] -;ID Node1 Node2 Parameters - 9 9 10 HEAD 1 ; - -[VALVES] -;ID Node1 Node2 Diameter Type Setting MinorLoss - -[TAGS] - -[DEMANDS] -;Junction Demand Pattern Category - -[STATUS] -;ID Status/Setting - -[PATTERNS] -;ID Multipliers -;Demand Pattern - 1 1.0 1.2 1.4 1.6 1.4 1.2 - 1 1.0 0.8 0.6 0.4 0.6 0.8 - -[CURVES] -;ID X-Value Y-Value -;PUMP: Pump Curve for Pump 9 - 1 1500 250 - -[CONTROLS] - LINK 9 OPEN IF NODE 2 BELOW 110 - LINK 9 CLOSED IF NODE 2 ABOVE 140 - - -[RULES] - -[ENERGY] - Global Efficiency 75 - Global Price 0.0 - Demand Charge 0.0 - -[EMITTERS] -;Junction Coefficient - -[QUALITY] -;Node InitQual - 10 0.5 - 11 0.5 - 12 0.5 - 13 0.5 - 21 0.5 - 22 0.5 - 23 0.5 - 31 0.5 - 32 0.5 - 9 1.0 - 2 1.0 - -[SOURCES] -;Node Type Quality Pattern - -[REACTIONS] -;Type Pipe/Tank Coefficient - - -[REACTIONS] - Order Bulk 1 - Order Tank 1 - Order Wall 1 - Global Bulk -.5 - Global Wall -1 - Limiting Potential 0.0 - Roughness Correlation 0.0 - -[MIXING] -;Tank Model - -[TIMES] - Duration 24:00 - Hydraulic Timestep 1:00 - Quality Timestep 0:05 - Pattern Timestep 2:00 - Pattern Start 0:00 - Report Timestep 1:00 - Report Start 0:00 - Start ClockTime 12 am - Statistic None - -[REPORT] - Status Yes - Summary No - Page 0 - -[OPTIONS] - Units GPM - Headloss H-W - Specific Gravity 1.0 - Viscosity 1.0 - Trials 40 - Accuracy 0.001 - CHECKFREQ 2 - MAXCHECK 10 - DAMPLIMIT 0 - Unbalanced Continue 10 - Pattern 1 - Demand Multiplier 1.0 - Emitter Exponent 0.5 - Quality Chlorine mg/L - Diffusivity 1.0 - Tolerance 0.01 - -[COORDINATES] -;Node X-Coord Y-Coord - 10 20.00 70.00 - 11 30.00 70.00 - 12 50.00 70.00 - 13 70.00 70.00 - 21 30.00 40.00 - 22 50.00 40.00 - 23 70.00 40.00 - 31 30.00 10.00 - 32 50.00 10.00 - 9 10.00 70.00 - 2 50.00 90.00 - -[VERTICES] -;Link X-Coord Y-Coord - -[LABELS] -;X-Coord Y-Coord Label & Anchor Node - 6.99 73.63 "Source" - 13.48 68.13 "Pump" - 43.85 91.21 "Tank" - -[BACKDROP] - DIMENSIONS 7.00 6.00 73.00 94.00 - UNITS None - FILE - OFFSET 0.00 0.00 - -[END] diff --git a/tests/scripts/vb6_binary_files_compare/BinaryCompare.vbp b/tests/scripts/vb6_binary_files_compare/BinaryCompare.vbp deleted file mode 100644 index 2c450f7..0000000 --- a/tests/scripts/vb6_binary_files_compare/BinaryCompare.vbp +++ /dev/null @@ -1,35 +0,0 @@ -Type=Exe -Form=frmMain.frm -Module=basShellSync; ShellSync.bas -Module=basNetRes; basNetRes.bas -IconForm="frmMain" -Startup="frmMain" -HelpFile="" -Title="Testing" -ExeName32="BinaryCompare.exe" -Command32="" -Name="BinaryCompare" -HelpContextID="0" -CompatibleMode="0" -MajorVer=1 -MinorVer=0 -RevisionVer=1 -AutoIncrementVer=1 -ServerSupportFiles=0 -VersionComments="by Elad Salomons" -CompilationType=0 -OptimizationType=0 -FavorPentiumPro(tm)=0 -CodeViewDebugInfo=0 -NoAliasing=0 -BoundsCheck=0 -OverflowCheck=0 -FlPointCheck=0 -FDIVCheck=0 -UnroundedFP=0 -StartMode=0 -Unattended=0 -Retained=0 -ThreadPerObject=0 -MaxNumberOfThreads=1 -DebugStartupOption=0 diff --git a/tests/scripts/vb6_binary_files_compare/ShellSync.bas b/tests/scripts/vb6_binary_files_compare/ShellSync.bas deleted file mode 100644 index 02c9f49..0000000 --- a/tests/scripts/vb6_binary_files_compare/ShellSync.bas +++ /dev/null @@ -1,39 +0,0 @@ -Attribute VB_Name = "basShellSync" -Option Explicit - -Private Const INFINITE = &HFFFFFFFF -Private Const SYNCHRONIZE = &H100000 -Private Const PROCESS_QUERY_INFORMATION = &H400& - -Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long -Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long -Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long -Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long -Public Function ShellSync(ByVal PathName As String, ByVal WindowStyle As VbAppWinStyle) As Long -'----------------------------------------------------------------------------------------------- -'Shell and wait. Return exit code result, raise an -'exception on any error. -Dim lngPid As Long -Dim lngHandle As Long -Dim lngExitCode As Long - -lngPid = Shell(PathName, WindowStyle) -If lngPid <> 0 Then - lngHandle = OpenProcess(SYNCHRONIZE Or PROCESS_QUERY_INFORMATION, 0, lngPid) - If lngHandle <> 0 Then - WaitForSingleObject lngHandle, INFINITE - If GetExitCodeProcess(lngHandle, lngExitCode) <> 0 Then - ShellSync = lngExitCode - CloseHandle lngHandle - Else - CloseHandle lngHandle - Err.Raise &H8004AA00, "ShellSync", "Failed to retrieve exit code, error " & CStr(Err.LastDllError) - End If - Else - Err.Raise &H8004AA01, "ShellSync", "Failed to open child process" - End If -Else - Err.Raise &H8004AA02, "ShellSync", "Failed to Shell child process" -End If - -End Function diff --git a/tests/scripts/vb6_binary_files_compare/basNetRes.bas b/tests/scripts/vb6_binary_files_compare/basNetRes.bas deleted file mode 100644 index 386858c..0000000 --- a/tests/scripts/vb6_binary_files_compare/basNetRes.bas +++ /dev/null @@ -1,188 +0,0 @@ -Attribute VB_Name = "basNetRes" -Public Type typNetRes - nNodes As Long - nLinks As Long - - NodesID() As String - LinksID() As String - - NodesDemand() As Single - NodesHead() As Single - NodesPressure() As Single - NodesQuality() As Single - - LinksFlow() As Single - LinksHeadloss() As Single - LinksQuality() As Single - LinksSetting() As Single - LinksStatus() As Single - LinksVelocity() As Single - -End Type -Public Function ReadOutputFile(OutFile As String, NetRes As typNetRes) -'--------------------------------------------------------------------------------------- -Dim i As Long, F As Long, r As Long, nRep As Long, j As Long -Dim tmpArr() As Single -Dim pos As Long, N As Long -Dim tmpLong As Long, tmpSingle As Single -Dim ReportingTimeStep As Long, ReportingStartTime As Long -Dim SimulationDuration As Long -Dim ProblemTitletLine As String * 80 -Dim NumberOfNodes As Long -Dim NumberOfLinks As Long -Dim NumberOfReservoirsAndTanks As Long -Dim NumberOfPumps As Long -Dim NumberOfValves As Long -Dim WaterQualityOption As Long -Dim FlowUnitsOption As Long, PressureUnitsOption As Long -Dim NameOfFile As String * 260, tmpString32 As String * 32 -Dim ii As Long -Dim WarningFlag As Long - -With NetRes - pos = 1: N = 0 - F = FreeFile - Open OutFile For Binary As #F - Get #F, pos, tmpLong: pos = pos + 4 - Get #F, pos, tmpLong: pos = pos + 4 - Get #F, pos, NumberOfNodes: pos = pos + 4 - Get #F, pos, NumberOfReservoirsAndTanks: pos = pos + 4 - Get #F, pos, NumberOfLinks: pos = pos + 4 - Get #F, pos, NumberOfPumps: pos = pos + 4 - Get #F, pos, NumberOfValves: pos = pos + 4 - Get #F, pos, WaterQualityOption: pos = pos + 4 - Get #F, pos, tmpLong: pos = pos + 4 - Get #F, pos, FlowUnitsOption: pos = pos + 4 - Get #F, pos, PressureUnitsOption: pos = pos + 4 - Get #F, pos, tmpLong: pos = pos + 4 - Get #F, pos, ReportingStartTime: pos = pos + 4 - Get #F, pos, ReportingTimeStep: pos = pos + 4 - Get #F, pos, SimulationDuration: pos = pos + 4 - Get #F, pos, ProblemTitletLine: pos = pos + 80 - Get #F, pos, ProblemTitletLine: pos = pos + 80 - Get #F, pos, ProblemTitletLine: pos = pos + 80 - Get #F, pos, NameOfFile: pos = pos + 260 - Get #F, pos, NameOfFile: pos = pos + 260 - Get #F, pos, tmpString32: pos = pos + 32 - Get #F, pos, tmpString32: pos = pos + 32 - .nNodes = NumberOfNodes - .nLinks = NumberOfLinks - ReDim .NodesID(.nNodes) - For j = 1 To NumberOfNodes - Get #F, pos, tmpString32: pos = pos + 32 - i = InStr(1, tmpString32, Chr(0)) - .NodesID(j) = Mid(tmpString32, 1, i - 1) - Next j - ReDim .LinksID(.nLinks) - For j = 1 To NumberOfLinks - Get #F, pos, tmpString32: pos = pos + 32 - i = InStr(1, tmpString32, Chr(0)) - .LinksID(j) = Mid(tmpString32, 1, i - 1) - Next j - For j = 1 To NumberOfLinks * 3 'Index of Start Node of Each Link + Index of End Node of Each Link + Type Code of Each Link - Get #F, pos, tmpLong: pos = pos + 4 - Next j - For j = 1 To NumberOfReservoirsAndTanks 'Node Index of Each Tank - Get #F, pos, tmpLong: pos = pos + 4 - Next j - For j = 1 To NumberOfReservoirsAndTanks 'Cross-Sectional Area of Each Tank - Get #F, pos, tmpSingle: pos = pos + 4 - Next j - For j = 1 To NumberOfNodes 'Elevation of Each Node - Get #F, pos, tmpSingle: pos = pos + 4 - Next j - For j = 1 To NumberOfLinks 'Length of Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - Next j - For j = 1 To NumberOfLinks 'Diameter of Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - Next j - For j = 1 To NumberOfPumps 'Energy Use Section - Get #F, pos, tmpLong: pos = pos + 4 'Pump Index in List of Links - Get #F, pos, tmpSingle: pos = pos + 4 'Pump Utilization (%) - Get #F, pos, tmpSingle: pos = pos + 4 'Average Efficiency (%) - Get #F, pos, tmpSingle: pos = pos + 4 'Average Kwatts/Million Gallons (/Meter3) - Get #F, pos, tmpSingle: pos = pos + 4 'Average Kwatts - Get #F, pos, tmpSingle: pos = pos + 4 'Peak Kwatts - Get #F, pos, tmpSingle: pos = pos + 4 'Average Cost Per Day - Next j - Get #F, pos, tmpSingle: pos = pos + 4 'Overall Peak Energy Usage - - 'reporting - nRep = SimulationDuration / ReportingTimeStep + 1 - ReDim tmpArr(nRep) - ReDim .NodesDemand(.nNodes, nRep) - ReDim .NodesHead(.nNodes, nRep) - ReDim .NodesPressure(.nNodes, nRep) - ReDim .NodesQuality(.nNodes, nRep) - - ReDim .LinksFlow(.nLinks, nRep) - ReDim .LinksHeadloss(.nLinks, nRep) - ReDim .LinksQuality(.nLinks, nRep) - ReDim .LinksSetting(.nLinks, nRep) - ReDim .LinksStatus(.nLinks, nRep) - ReDim .LinksVelocity(.nLinks, nRep) - - For r = 1 To nRep - For j = 1 To NumberOfNodes 'Demand at Each Node - Get #F, pos, tmpSingle: pos = pos + 4 - .NodesDemand(j, r) = tmpSingle - Next j - For j = 1 To NumberOfNodes 'Hydraulic Head at Each Node - Get #F, pos, tmpSingle: pos = pos + 4 - .NodesHead(j, r) = tmpSingle - Next j - For j = 1 To NumberOfNodes 'Pressure at Each Node - Get #F, pos, tmpSingle: pos = pos + 4 - .NodesPressure(j, r) = tmpSingle - Next j - For j = 1 To NumberOfNodes 'Water Quality at Each Node - Get #F, pos, tmpSingle: pos = pos + 4 - .NodesPressure(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Flow in Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - .LinksFlow(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Velocity in Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - .LinksVelocity(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Headloss per 1000 Units of Length for Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - .LinksHeadloss(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Average Water Quality in Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - .LinksQuality(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Status Code for Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - .LinksStatus(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Setting for Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - .LinksSetting(j, r) = tmpSingle - Next j - For j = 1 To NumberOfLinks 'Reaction Rate for Each Link (mass/L/day) - Get #F, pos, tmpSingle: pos = pos + 4 - Next j - For j = 1 To NumberOfLinks 'Friction Factor for Each Link - Get #F, pos, tmpSingle: pos = pos + 4 - Next j - Next r - - 'Epilog Section - Get #F, pos, tmpSingle: pos = pos + 4 'Average bulk reaction rate (mass/hr) - Get #F, pos, tmpSingle: pos = pos + 4 'Average wall reaction rate (mass/hr) - Get #F, pos, tmpSingle: pos = pos + 4 'Average tank reaction rate (mass/hr) - Get #F, pos, tmpSingle: pos = pos + 4 'Average source inflow rate (mass/hr) - Get #F, pos, tmpLong: pos = pos + 4 'Number of Reporting Periods - Get #F, pos, WarningFlag: pos = pos + 4 'Warning Flag - Get #F, pos, tmpLong: pos = pos + 4 'Magic Number ( = 516114521) - - Close #F -End With - -End Function - diff --git a/tests/scripts/vb6_binary_files_compare/frmMain.frm b/tests/scripts/vb6_binary_files_compare/frmMain.frm deleted file mode 100644 index b655734..0000000 --- a/tests/scripts/vb6_binary_files_compare/frmMain.frm +++ /dev/null @@ -1,179 +0,0 @@ -VERSION 5.00 -Begin VB.Form frmMain - Caption = "Form1" - ClientHeight = 5304 - ClientLeft = 48 - ClientTop = 396 - ClientWidth = 9648 - LinkTopic = "Form1" - ScaleHeight = 5304 - ScaleWidth = 9648 - StartUpPosition = 3 'Windows Default - Begin VB.ListBox List1 - Height = 4272 - Left = 1680 - TabIndex = 1 - Top = 360 - Width = 7092 - End - Begin VB.CommandButton cmdRun - Caption = "RUN" - Height = 372 - Left = 360 - TabIndex = 0 - Top = 360 - Width = 972 - End -End -Attribute VB_Name = "frmMain" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -Option Explicit - -Dim NetName As String - -Dim net1 As typNetRes -Dim net2 As typNetRes - -Private Sub CompareVersions(NetName As String) -'----------------------------------------------- -Dim i As Long -Dim v1 As Single, v2 As Single -Dim T As Long -Dim L As Long -Dim maxDiff As Single -Dim diff As Single -Dim nRep As Long -Dim F As Long - -i = ShellSync("epanet2d.exe nets\" & NetName & ".inp nets\" & NetName & "_1.rep nets\" & NetName & "_1.out", vbNormalFocus) -i = ReadOutputFile("nets\" & NetName & "_1.out", net1) - -i = ShellSync("epanet2.exe nets\" & NetName & ".inp nets\" & NetName & "_2.rep nets\" & NetName & "_2.out", vbNormalFocus) -i = ReadOutputFile("nets\" & NetName & "_2.out", net2) - -F = FreeFile -Open App.Path & "\Nets\" & NetName & ".dif" For Output As #F - -nRep = UBound(net1.LinksFlow, 2) - -maxDiff = 100: diff = 101 -For L = 1 To net1.nLinks - For T = 1 To nRep - v1 = net1.LinksFlow(L, T) - v2 = net2.LinksFlow(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Links Flow max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nLinks - For T = 1 To nRep - v1 = net1.LinksHeadloss(L, T) - v2 = net2.LinksHeadloss(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Links Headloss max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nLinks - For T = 1 To nRep - v1 = net1.LinksQuality(L, T) - v2 = net2.LinksQuality(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Links Quality max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nLinks - For T = 1 To nRep - v1 = net1.LinksVelocity(L, T) - v2 = net2.LinksVelocity(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Links Velocity max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nNodes - For T = 1 To nRep - v1 = net1.NodesDemand(L, T) - v2 = net2.NodesDemand(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Nodes Demand max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nNodes - For T = 1 To nRep - v1 = net1.NodesHead(L, T) - v2 = net2.NodesHead(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Nodes Head max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nNodes - For T = 1 To nRep - v1 = net1.NodesPressure(L, T) - v2 = net2.NodesPressure(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2)) / Log(10)) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Nodes Pressure max diff = " & Format(maxDiff, "0") - -maxDiff = 100: diff = 101 -For L = 1 To net1.nNodes - For T = 1 To nRep - v1 = net1.NodesQuality(L, T) - v2 = net2.NodesQuality(L, T) - If Abs(v1 - v2) > 0 Then diff = -Round(Log(Abs(v1 - v2))) / Log(10) - If diff < maxDiff Then maxDiff = diff - Next T -Next L -Print #F, "Nodes Quality max diff = " & Format(maxDiff, "0") - -Close #F - -End Sub - -Private Sub cmdRun_Click() -'---------------------------------------------- -Dim fName As String - -fName = Dir(App.Path & "\Nets\*.inp") -If fName <> "" Then - Do - List1.AddItem fName: DoEvents - fName = StrReverse(fName) - fName = Mid(fName, 5) - fName = StrReverse(fName) - Call CompareVersions(fName) - fName = Dir - Loop Until fName = "" -End If - -End Sub - - -Private Sub Form_Load() - -List1.Clear - -End Sub - - diff --git a/tests/scripts/vb6_binary_files_compare/nets/Net2.dif b/tests/scripts/vb6_binary_files_compare/nets/Net2.dif deleted file mode 100644 index 07aed4e..0000000 --- a/tests/scripts/vb6_binary_files_compare/nets/Net2.dif +++ /dev/null @@ -1,8 +0,0 @@ -Links Flow max diff = 3 -Links Headloss max diff = 4 -Links Quality max diff = 3 -Links Velocity max diff = 6 -Nodes Demand max diff = 3 -Nodes Head max diff = 5 -Nodes Pressure max diff = 3 -Nodes Quality max diff = 100 diff --git a/tests/scripts/vb6_binary_files_compare/nets/Net2.inp b/tests/scripts/vb6_binary_files_compare/nets/Net2.inp deleted file mode 100644 index 4b55887..0000000 --- a/tests/scripts/vb6_binary_files_compare/nets/Net2.inp +++ /dev/null @@ -1,311 +0,0 @@ -[TITLE] -EPANET Example Network 2 -Example of modeling a 55-hour fluoride tracer study. -Measured fluoride data is contained in the file Net2-FL.dat -and should be registered with the project to produce a -Calibration Report (select Calibration Data from the Project -menu). - -[JUNCTIONS] -;ID Elev Demand Pattern - 1 50 -694.4 2 ; - 2 100 8 ; - 3 60 14 ; - 4 60 8 ; - 5 100 8 ; - 6 125 5 ; - 7 160 4 ; - 8 110 9 ; - 9 180 14 ; - 10 130 5 ; - 11 185 34.78 ; - 12 2100 16 ; - 13 210 2 ; - 14 200 2 ; - 15 190 2 ; - 16 150 20 ; - 17 180 20 ; - 18 100 20 ; - 19 150 5 ; - 20 170 19 ; - 21 150 16 ; - 22 200 10 ; - 23 230 8 ; - 24 190 11 ; - 25 230 6 ; - 27 130 8 ; - 28 110 0 ; - 29 110 7 ; - 30 130 3 ; - 31 190 17 ; - 32 110 17 ; - 33 180 1.5 ; - 34 190 1.5 ; - 35 110 0 ; - 36 110 1 ; - -[RESERVOIRS] -;ID Head Pattern - -[TANKS] -;ID Elevation InitLevel MinLevel MaxLevel Diameter MinVol VolCurve - 26 235 56.7 50 70 50 0 ; - -[PIPES] -;ID Node1 Node2 Length Diameter Roughness MinorLoss Status - 1 1 2 2400 12 100 0 Open ; - 2 2 5 800 12 100 0 Open ; - 3 2 3 1300 8 100 0 Open ; - 4 3 4 1200 8 100 0 Open ; - 5 4 5 1000 12 100 0 Open ; - 6 5 6 1200 12 100 0 Open ; - 7 6 7 2700 12 100 0 Open ; - 8 7 8 1200 12 140 0 Open ; - 9 7 9 400 12 100 0 Open ; - 10 8 10 1000 8 140 0 Open ; - 11 9 11 700 12 100 0 Open ; - 12 11 12 1900 12 100 0 Open ; - 13 12 13 600 12 100 0 Open ; - 14 13 14 400 12 100 0 Open ; - 15 14 15 300 12 100 0 Open ; - 16 13 16 1500 8 100 0 Open ; - 17 15 17 1500 8 100 0 Open ; - 18 16 17 600 8 100 0 Open ; - 19 17 18 700 12 100 0 Open ; - 20 18 32 350 12 100 0 Open ; - 21 16 19 1400 8 100 0 Open ; - 22 14 20 1100 12 100 0 Open ; - 23 20 21 1300 8 100 0 Open ; - 24 21 22 1300 8 100 0 Open ; - 25 20 22 1300 8 100 0 Open ; - 26 24 23 600 12 100 0 Open ; - 27 15 24 250 12 100 0 Open ; - 28 23 25 300 12 100 0 Open ; - 29 25 26 200 12 100 0 Open ; - 30 25 31 600 12 100 0 Open ; - 31 31 27 400 8 100 0 Open ; - 32 27 29 400 8 100 0 Open ; - 34 29 28 700 8 100 0 Open ; - 35 22 33 1000 8 100 0 Open ; - 36 33 34 400 8 100 0 Open ; - 37 32 19 500 8 100 0 Open ; - 38 29 35 500 8 100 0 Open ; - 39 35 30 1000 8 100 0 Open ; - 40 28 35 700 8 100 0 Open ; - 41 28 36 300 8 100 0 Open ; - -[PUMPS] -;ID Node1 Node2 Parameters - -[VALVES] -;ID Node1 Node2 Diameter Type Setting MinorLoss - -[TAGS] - -[DEMANDS] -;Junction Demand Pattern Category - -[STATUS] -;ID Status/Setting - -[PATTERNS] -;ID Multipliers -;Demand Pattern - 1 1.26 1.04 .97 .97 .89 1.19 - 1 1.28 .67 .67 1.34 2.46 .97 - 1 .92 .68 1.43 .61 .31 .78 - 1 .37 .67 1.26 1.56 1.19 1.26 - 1 .6 1.1 1.03 .73 .88 1.06 - 1 .99 1.72 1.12 1.34 1.12 .97 - 1 1.04 1.15 .91 .61 .68 .46 - 1 .51 .74 1.12 1.34 1.26 .97 - 1 .82 1.37 1.03 .81 .88 .81 - 1 .81 -;Pump Station Outflow Pattern - 2 .96 .96 .96 .96 .96 .96 - 2 .62 0 0 0 0 0 - 2 .8 1 1 1 1 .15 - 2 0 0 0 0 0 0 - 2 .55 .92 .92 .92 .92 .9 - 2 .9 .45 0 0 0 0 - 2 0 .7 1 1 1 1 - 2 .2 0 0 0 0 0 - 2 0 .74 .92 .92 .92 .92 - 2 .92 -;Pump Station Fluoride Pattern - 3 .98 1.02 1.05 .99 .64 .46 - 3 .35 .35 .35 .35 .35 .35 - 3 .17 .17 .13 .13 .13 .15 - 3 .15 .15 .15 .15 .15 .15 - 3 .15 .12 .1 .08 .11 .09 - 3 .09 .08 .08 .08 .08 .08 - 3 .08 .09 .07 .07 .09 .09 - 3 .09 .09 .09 .09 .09 .09 - 3 .09 .08 .35 .72 .82 .92 - 3 1 - -[CURVES] -;ID X-Value Y-Value - -[CONTROLS] - - -[RULES] - - -[ENERGY] - Global Efficiency 75 - Global Price 0.0 - Demand Charge 0.0 - -[EMITTERS] -;Junction Coefficient - -[QUALITY] -;Node InitQual - 1 1.0 - 2 1.0 - 3 1.0 - 4 1.0 - 5 1.0 - 6 1.0 - 7 1.0 - 8 1.0 - 9 1.0 - 10 1.0 - 11 1.0 - 12 1.0 - 13 1.0 - 14 1.0 - 15 1.0 - 16 1.0 - 17 1.0 - 18 1.0 - 19 1.0 - 20 1.0 - 21 1.0 - 22 1.0 - 23 1.0 - 24 1.0 - 25 1.0 - 27 1.0 - 28 1.0 - 29 1.0 - 30 1.0 - 31 1.0 - 32 1.0 - 33 1.0 - 34 1.0 - 35 1.0 - 36 1.0 - 26 1.0 - -[SOURCES] -;Node Type Quality Pattern - 1 CONCEN 1.0 3 - -[REACTIONS] -;Type Pipe/Tank Coefficient - - -[REACTIONS] - Order Bulk 1 - Order Tank 1 - Order Wall 1 - Global Bulk 0.0 - Global Wall 0.0 - Limiting Potential 0.0 - Roughness Correlation 0.0 - -[MIXING] -;Tank Model - -[TIMES] - Duration 55:00 - Hydraulic Timestep 1:00 - Quality Timestep 0:05 - Pattern Timestep 1:00 - Pattern Start 0:00 - Report Timestep 1:00 - Report Start 0:00 - Start ClockTime 8 am - Statistic NONE - -[REPORT] - Status Full - Summary No - Page 0 - -[OPTIONS] - Units GPM - Headloss H-W - Specific Gravity 1.0 - Viscosity 1.0 - Trials 40 - Accuracy 0.001 - CHECKFREQ 2 - MAXCHECK 10 - DAMPLIMIT 0 - Unbalanced Continue 10 - Pattern 1 - Demand Multiplier 1.0 - Emitter Exponent 0.5 - Quality Fluoride mg/L - Diffusivity 1.0 - Tolerance 0.01 - -[COORDINATES] -;Node X-Coord Y-Coord - 1 21.00 4.00 - 2 19.00 20.00 - 3 11.00 21.00 - 4 14.00 28.00 - 5 19.00 25.00 - 6 28.00 23.00 - 7 36.00 39.00 - 8 38.00 30.00 - 9 36.00 42.00 - 10 37.00 23.00 - 11 37.00 49.00 - 12 39.00 60.00 - 13 38.00 64.00 - 14 38.00 66.00 - 15 37.00 69.00 - 16 27.00 65.00 - 17 27.00 69.00 - 18 23.00 68.00 - 19 21.00 59.00 - 20 45.00 68.00 - 21 51.00 62.00 - 22 54.00 69.00 - 23 35.00 74.00 - 24 37.00 71.00 - 25 35.00 76.00 - 27 39.00 87.00 - 28 49.00 85.00 - 29 42.00 86.00 - 30 47.00 80.00 - 31 37.00 80.00 - 32 23.00 64.00 - 33 56.00 73.00 - 34 56.00 77.00 - 35 43.00 81.00 - 36 53.00 87.00 - 26 33.00 76.00 - -[VERTICES] -;Link X-Coord Y-Coord - -[LABELS] -;X-Coord Y-Coord Label & Anchor Node - 24.00 7.00 "Pump" - 24.00 4.00 "Station" - 26.76 77.42 "Tank" - -[BACKDROP] - DIMENSIONS 8.75 -0.15 58.25 91.15 - UNITS None - FILE - OFFSET 0.00 0.00 - -[END] diff --git a/tests/scripts/vb6_binary_files_compare/readme.txt b/tests/scripts/vb6_binary_files_compare/readme.txt deleted file mode 100644 index e78e456..0000000 --- a/tests/scripts/vb6_binary_files_compare/readme.txt +++ /dev/null @@ -1,12 +0,0 @@ -The program will run all INP files in the Nets sub-directory. -A report, binary output files and a .dif file will be created for each INP file. -The report is the min(—log10(abs(X1-X2))) where X1 and X2 are the results arrays obtains from the two binary files. - -Files needed in the code directory: -epanet2d.exe is the official EPANET standalone version. -epanet2.exe is the current development version (the one being tested). - -How to use: run the program and click the RUN button. - -By Elad Salomons -email: selad@optiwater.com \ No newline at end of file diff --git a/tests/test_networks.sh b/tests/test_networks.sh deleted file mode 100755 index a6527b8..0000000 --- a/tests/test_networks.sh +++ /dev/null @@ -1,35 +0,0 @@ -#! /bin/bash -test_networks() -{ -returnValue=0 -for d in network_tests/*/ ; do - for netfile in `ls $d*.inp`; do - officialBinFile=${netfile%.*}.enb - candidateBinFile=${netfile%.*}-candidate.enb - echo "testing $netfile with known good binary output $officialBinFile" - if ../build/CMake/buildproducts/bin/runepanet $netfile ${netfile%.*}-candidate.rpt $candidateBinFile - then - echo "epanet run for $netfile SUCCESS" - else - echo "epanet run for $netfile FAILED" - returnValue=1 - fi - if python ENBinaryOutDiff.py $officialBinFile $candidateBinFile - then - echo "binary output for $netfile PASSED" - else - echo "binary output for $netfile FAILED" - returnValue=1 - fi - echo "+++++" - done -done -return $returnValue -} - -cp ../build/CMake/buildproducts/bin/libENBinaryOut.* ./libENBinaryOut.so -cp ../tools/outputapi/*.py ./ - - - -test_networks diff --git a/tests/test_output.cpp b/tests/test_output.cpp new file mode 100644 index 0000000..cd55f4f --- /dev/null +++ b/tests/test_output.cpp @@ -0,0 +1,358 @@ +/* + * test_epanet_output.cpp + * + * Created: 8/4/2017 + * Author: Michael E. Tryby + * US EPA - ORD/NRMRL + * + * Unit testing for EPANET Output API. +*/ + +// NOTE: Travis installs libboost test version 1.5.4 +// NOTE: Can not dyn link boost using Visual Studio 10 2010 +//#define BOOST_TEST_DYN_LINK + +#define BOOST_TEST_MODULE "output" +#include + +#include +#include +#include +#include + +#include "epanet_output.h" + + +#define DATA_PATH "./net1.out" + +using namespace std; + +// Custom test to check the minimum number of correct decimal digits between +// the test and the ref vectors. +boost::test_tools::predicate_result check_cdd(std::vector& test, + std::vector& ref, long cdd_tol) +{ + float tmp, min_cdd = 100.0; + + // TODO: What is the vectors aren't the same length? + + std::vector::iterator test_it; + std::vector::iterator ref_it; + + for (test_it = test.begin(); test_it < test.end(); ++test_it) { + for (ref_it = ref.begin(); ref_it < ref.end(); ++ref_it) { + + if (*test_it != *ref_it) { + tmp = - log10f(abs(*test_it - *ref_it)); + if (tmp < min_cdd) min_cdd = tmp; + } + } + } + + if (min_cdd == 100.0) + return true; + else + return floor(min_cdd) <= cdd_tol; +} + +boost::test_tools::predicate_result check_string(std::string test, std::string ref) +{ + if (ref.compare(test) == 0) + return true; + else + return false; +} + +BOOST_AUTO_TEST_SUITE (test_output_auto) + +BOOST_AUTO_TEST_CASE(InitTest) { + ENR_Handle p_handle = NULL; + + int error = ENR_init(&p_handle); + BOOST_REQUIRE(error == 0); + BOOST_CHECK(p_handle != NULL); +} + +BOOST_AUTO_TEST_CASE(OpenTest) { + std::string path = std::string(DATA_PATH); + ENR_Handle p_handle = NULL; + ENR_init(&p_handle); + + int error = ENR_open(p_handle, path.c_str()); + BOOST_REQUIRE(error == 0); + ENR_close(&p_handle); +} + +BOOST_AUTO_TEST_CASE(CloseTest) { + ENR_Handle p_handle = NULL; + int error = ENR_init(&p_handle); + + error = ENR_close(&p_handle); + BOOST_REQUIRE(error == -1); + BOOST_CHECK(p_handle != NULL); +} + +BOOST_AUTO_TEST_SUITE_END() + + +struct Fixture{ + Fixture() { + path = std::string(DATA_PATH); + + error = ENR_init(&p_handle); + ENR_clearError(p_handle); + error = ENR_open(p_handle, path.c_str()); + + array = NULL; + array_dim = 0; + } + ~Fixture() { + ENR_free((void**)&array); + error = ENR_close(&p_handle); + } + + std::string path; + int error; + ENR_Handle p_handle; + + float* array; + int array_dim; + +}; + +BOOST_AUTO_TEST_SUITE(test_output_fixture) + +BOOST_FIXTURE_TEST_CASE(test_getNetSize, Fixture) +{ + int *i_array = NULL; + + error = ENR_getNetSize(p_handle, &i_array, &array_dim); + BOOST_REQUIRE(error == 0); + + // nodes, tanks, links, pumps, valves + std::vector test; + test.assign(i_array, i_array + array_dim); + + const int ref_dim = 5; + int ref_array[ref_dim] = {11,2,13,1,0}; + + std::vector ref; + ref.assign(ref_array, ref_array + ref_dim); + + BOOST_CHECK_EQUAL_COLLECTIONS(ref.begin(), ref.end(), test.begin(), test.end()); + + ENR_free((void**)&i_array); +} + +BOOST_FIXTURE_TEST_CASE(test_getElementName, Fixture) { + char* name = new char[MAXID]; + int length, index = 1; + + error = ENR_getElementName(p_handle, ENR_node, index, &name, &length); + BOOST_REQUIRE(error == 0); + + std::string test (name); + std::string ref ("10"); + BOOST_CHECK(check_string(test, ref)); + + delete(name); +} + +BOOST_FIXTURE_TEST_CASE(test_getNodeAttribute, Fixture) { + + error = ENR_getNodeAttribute(p_handle, 1, ENR_quality, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 11; + float ref_array[ref_dim] = { 1.0f, + 0.44407997f, + 0.43766347f, + 0.42827705f, + 0.41342604f, + 0.42804748f, + 0.44152543f, + 0.40502965f, + 0.38635802f, + 1.0f, + 0.96745253f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_FIXTURE_TEST_CASE(test_getLinkAttribute, Fixture) { + + error = ENR_getLinkAttribute(p_handle, 1, ENR_flow, &array ,&array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 13; + float ref_array[ref_dim] = { 1848.5812f, + 1220.4274f, + 130.11162f, + 187.6893f, + 119.8884f, + 40.464489f, + -748.58112f, + 478.15378f, + 191.73459f, + 30.111609f, + 140.46449f, + 59.535515f, + 1848.5812f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_FIXTURE_TEST_CASE(test_getNodeResult, Fixture) { + + error = ENR_getNodeResult(p_handle, 1, 2, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 4; + float ref_array[ref_dim] = {0.041142918f, + 150.0f, + 987.98358f, + 120.45029f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_FIXTURE_TEST_CASE(test_getLinkResult, Fixture) { + + error = ENR_getLinkResult(p_handle, 24, 13, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 8; + float ref_array[ref_dim] = {0.58586824f, + 1892.2433f, + 0.0f, + -200.71875f, + 1.0f, + 3.0f, + 1.0f, + 0.0f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_FIXTURE_TEST_CASE(test_getNodeSeries, Fixture){ + + error = ENR_getNodeSeries(p_handle, 2, ENR_pressure, 0, 10, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 10; + float ref_array[ref_dim] = {119.25731f, + 120.45029f, + 121.19854f, + 122.00622f, + 122.37414f, + 122.8122f, + 122.82034f, + 122.90379f, + 123.40434f, + 123.81807f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_FIXTURE_TEST_CASE(test_getLinkSeries, Fixture) { + + error = ENR_getLinkSeries(p_handle, 2, ENR_flow, 0, 10, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 10; + float ref_array[ref_dim] = {1234.2072f, + 1220.4274f, + 1164.4f, + 1154.8175f, + 1100.0635f, + 1094.759f, + 1041.7854f, + 1040.7617f, + 1087.556f, + 1082.5011f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_FIXTURE_TEST_CASE(test_getNetReacts, Fixture) { + + error = ENR_getNetReacts(p_handle, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 4; + float ref_array[ref_dim] = {18806.59f, + 85424.438f, + 115174.05f, + 238972.66f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 2)); +} + +BOOST_FIXTURE_TEST_CASE(test_getEnergyUsage, Fixture) { + + int linkIdx; + + error = ENR_getEnergyUsage(p_handle, 1, &linkIdx, &array, &array_dim); + BOOST_REQUIRE(error == 0); + + const int ref_dim = 6; + float ref_array[ref_dim] = {57.712959f, + 75.0f, + 880.41583f, + 96.254318f, + 96.707115f, + 0.0f}; + + std::vector ref_vec; + ref_vec.assign(ref_array, ref_array + ref_dim); + + std::vector test_vec; + test_vec.assign(array, array + array_dim); + + BOOST_CHECK(check_cdd(test_vec, ref_vec, 3)); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/tools/app-config.sh b/tools/app-config.sh new file mode 100755 index 0000000..3883ddf --- /dev/null +++ b/tools/app-config.sh @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# app-config.sh - Generates nrtest app configuration file for test executable +# +# Date Created: 3/19/2018 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Arguments: +# 1 - absolute path to test executable +# +# NOT IMPLEMENTED YET +# 2 - test executable version number +# 3 - build description +# + +unameOut="$(uname -s)" +case "${unameOut}" in + Linux*) ;& + Darwin*) abs_build_path=$1 + test_cmd="runepanet" + ;; + + MINGW*) ;& + MSYS*) # Remove leading '/c' from file path for nrtest + abs_build_path="$( echo "$1" | sed -e 's#/c##' )" + test_cmd="runepanet.exe" + ;; + + *) # Machine unknown +esac + +version="" +build_description="" + +cat< nul +7z x benchmark.zip -obenchmark\ > nul + +:: set up symlink for tests directory +mklink /D .\tests .\epanet-example-networks-%EXAMPLES_VER%\epanet-tests + + +:: generate json configuration file for software under test +mkdir apps +%SCRIPT_HOME%\gen-config.cmd %~2 > apps\epanet-%~3.json diff --git a/tools/before-test.sh b/tools/before-test.sh new file mode 100755 index 0000000..8cb902b --- /dev/null +++ b/tools/before-test.sh @@ -0,0 +1,58 @@ +#! /bin/bash + +# +# before-test.sh - Prepares Travis CI worker to run epanet regression tests +# +# Date Created: 04/04/2018 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Arguments: +# 1 - relative path regression test file staging location +# 2 - absolute path to location of software under test +# 3 - build identifier for software under test +# +# Note: +# Tests and benchmark files are stored in the epanet-example-networks repo. +# This script retreives them using a stable URL associated with a release on +# GitHub and stages the files for nrtest to run. The script assumes that +# before-test.sh and gen-config.sh are located together in the same folder. + +SCRIPT_HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TEST_HOME=$1 + +EXAMPLES_VER="1.0.1" +BENCHMARK_VER="2012vs10" + +TEST_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/archive/v${EXAMPLES_VER}.tar.gz" +BENCH_URL="https://github.com/OpenWaterAnalytics/epanet-example-networks/releases/download/v${EXAMPLES_VER}/epanet-benchmark-${BENCHMARK_VER}.tar.gz" + + +echo INFO: Staging files for regression testing + +# create a clean directory for staging regression tests +if [ -d ${TEST_HOME} ]; then + rm -rf ${TEST_HOME} +fi +mkdir ${TEST_HOME} +cd ${TEST_HOME} + +# retrieve epanet-examples for regression testing +curl -fsSL -o examples.tar.gz ${TEST_URL} + +# retrieve epanet benchmark results +curl -fsSL -o benchmark.tar.gz ${BENCH_URL} + + +# extract tests and benchmarks +tar xzf examples.tar.gz +ln -s epanet-example-networks-${EXAMPLES_VER}/epanet-tests tests + +mkdir benchmark +tar xzf benchmark.tar.gz -C benchmark + + +# generate json configuration file for software under test +mkdir apps +${SCRIPT_HOME}/gen-config.sh $2 > apps/epanet-$3.json diff --git a/tools/epanet-output/CMakeLists.txt b/tools/epanet-output/CMakeLists.txt new file mode 100644 index 0000000..01002d7 --- /dev/null +++ b/tools/epanet-output/CMakeLists.txt @@ -0,0 +1,40 @@ +# +# CMakeLists.txt - CMake configuration file for epanet-output library +# +# Created: March 9, 2018 +# Author: Michael E. Tryby +# US EPA ORD/NRMRL +# + +cmake_minimum_required (VERSION 3.0) + + +# Sets for output directory for executables and libraries. +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + + +set(CMAKE_C_VISIBILITY_PRESET hidden) +set(CMAKE_CXX_VISIBILITY_PRESET hidden) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + + +# configure file groups +set(EPANET_OUT_SOURCES src/epanet_output.c src/errormanager.c) + + +# the binary output file API +add_library(epanet-output SHARED ${EPANET_OUT_SOURCES}) +target_include_directories(epanet-output PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) + +include(GenerateExportHeader) +generate_export_header(epanet-output + BASE_NAME epanet_output + EXPORT_MACRO_NAME DLLEXPORT + EXPORT_FILE_NAME epanet_output_export.h + STATIC_DEFINE SHARED_EXPORTS_BUILT_AS_STATIC) + +file(COPY ${CMAKE_CURRENT_BINARY_DIR}/epanet_output_export.h DESTINATION + ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/tools/epanet-output/src/epanet_output.h b/tools/epanet-output/include/epanet_output.h similarity index 93% rename from tools/epanet-output/src/epanet_output.h rename to tools/epanet-output/include/epanet_output.h index 36f826c..0066d16 100644 --- a/tools/epanet-output/src/epanet_output.h +++ b/tools/epanet-output/include/epanet_output.h @@ -61,15 +61,19 @@ typedef enum { } ENR_LinkAttribute; -#ifdef WINDOWS -#ifdef __cplusplus -#define DLLEXPORT __declspec(dllexport) __cdecl -#else -#define DLLEXPORT __declspec(dllexport) __stdcall -#endif -#else -#define DLLEXPORT -#endif +// #ifdef WINDOWS +// #ifdef __cplusplus +// #define DLLEXPORT __declspec(dllexport) __cdecl +// #else +// #define DLLEXPORT __declspec(dllexport) __stdcall +// #endif +// #else +// #define DLLEXPORT +// #endif + + +#include "epanet_output_export.h" + #ifdef __cplusplus extern "C" { diff --git a/tools/epanet-output/setup.py b/tools/epanet-output/setup.py index 90d57e0..92881ce 100644 --- a/tools/epanet-output/setup.py +++ b/tools/epanet-output/setup.py @@ -22,9 +22,11 @@ except ImportError: setup( name = "epanet-output", - version = "1.0", + version = "0.1.0-alpha", ext_modules = [ Extension("_epanet_output", + define_macros = [('epanet_output_EXPORTS', None)], + include_dirs = ['include'], sources = ['src/epanet_output.i', 'src/epanet_output.c', 'src/errormanager.c'], swig_opts=['-modern'], language = 'C' diff --git a/tools/nrtest-epanet/nrtest_epanet/__init__.py b/tools/nrtest-epanet/nrtest_epanet/__init__.py index 3ed86d6..7bdf41b 100644 --- a/tools/nrtest-epanet/nrtest_epanet/__init__.py +++ b/tools/nrtest-epanet/nrtest_epanet/__init__.py @@ -107,8 +107,8 @@ def epanet_report_compare(path_test, path_ref, rtol, atol): RunTimeError() ... ''' - HEADER = 11 - FOOTER = 3 + HEADER = 10 + FOOTER = 2 with open(path_test ,'r') as ftest, open(path_ref, 'r') as fref: diff --git a/tools/nrtest-epanet/setup.py b/tools/nrtest-epanet/setup.py index 0318ab2..897e621 100644 --- a/tools/nrtest-epanet/setup.py +++ b/tools/nrtest-epanet/setup.py @@ -24,7 +24,7 @@ entry_points = { setup( name='nrtest-epanet', - version='0.3.0', + version='0.4.0', description="EPANET extension for nrtest", author="Michael E. Tryby", @@ -38,7 +38,7 @@ setup( 'header_detail_footer>=2.3', 'nrtest>=0.2.0', 'numpy>=1.7.0', - 'epanet_output>=0.4.0' + 'epanet_output' ], keywords='nrtest_epanet' ) diff --git a/tools/requirements-appveyor.txt b/tools/requirements-appveyor.txt new file mode 100644 index 0000000..95ea643 --- /dev/null +++ b/tools/requirements-appveyor.txt @@ -0,0 +1,19 @@ +# +# requirements-appveyor.txt +# +# Date Created: 10/10/2017 +# Author: Michael E. Tryby +# US EPA ORD/NRMRL +# +# Useful for configuring a python environment to run epanet-nrtestsuite +# on AppVeyor CI. +# +# command: +# $ pip install --src build/packages -r tools/requirements-appveyor.txt +# + +nrtest>=0.2.3 + +-f https://github.com/OpenWaterAnalytics/epanet-python/releases/download/v0.1.0-alpha/epanet_output-0.1.0a0-cp27-cp27m-win32.whl + +-e ./tools/nrtest-epanet diff --git a/tools/requirements.txt b/tools/requirements.txt index 68b8c20..5a50cbd 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -11,6 +11,7 @@ # $ pip install --src build/packages -r tools/requirements.txt # --e git+https://github.com/OpenWaterAnalytics/nrtest.git@master#egg=nrtest +#-e git+https://github.com/OpenWaterAnalytics/nrtest.git@master#egg=nrtest +nrtest>=0.2.3 -e ./tools/epanet-output -e ./tools/nrtest-epanet diff --git a/tools/run-nrtest.cmd b/tools/run-nrtest.cmd index 600563a..f5d4c8d 100644 --- a/tools/run-nrtest.cmd +++ b/tools/run-nrtest.cmd @@ -18,14 +18,17 @@ setlocal set NRTEST_SCRIPT_PATH=%~1 set TEST_SUITE_PATH=%~2 +set BENCHMARK_VER=220dev-vs17 + + set NRTEST_EXECUTE_CMD=python %NRTEST_SCRIPT_PATH%\nrtest execute set TEST_APP_PATH=apps\epanet-%3.json -set TESTS=tests\examples +set TESTS=tests\examples tests\exeter tests\large tests\network_one tests\small tests\tanks tests\valves set TEST_OUTPUT_PATH=benchmark\epanet-%3 set NRTEST_COMPARE_CMD=python %NRTEST_SCRIPT_PATH%\nrtest compare -set REF_OUTPUT_PATH=benchmark\epanet-2012 -set RTOL_VALUE=0.1 +set REF_OUTPUT_PATH=benchmark\epanet-%BENCHMARK_VER% +set RTOL_VALUE=0.01 set ATOL_VALUE=0.0 :: change current directory to test suite @@ -41,6 +44,8 @@ set NRTEST_COMMAND=%NRTEST_EXECUTE_CMD% %TEST_APP_PATH% %TESTS% -o %TEST_OUTPUT_ :: if there is an error exit the script with error value 1 %NRTEST_COMMAND% || exit /B 1 +echo. + echo INFO: Comparing test and ref benchmark -set NRTEST_COMMAND=%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% +set NRTEST_COMMAND=%NRTEST_COMPARE_CMD% %TEST_OUTPUT_PATH% %REF_OUTPUT_PATH% --rtol %RTOL_VALUE% --atol %ATOL_VALUE% -o receipt.json %NRTEST_COMMAND% diff --git a/tools/run-nrtest.sh b/tools/run-nrtest.sh index f975067..c561ad6 100755 --- a/tools/run-nrtest.sh +++ b/tools/run-nrtest.sh @@ -9,7 +9,7 @@ # US EPA - ORD/NRMRL # # Arguments: -# 1 - test suite path +# 1 - relative path to location there test suite is staged # 2 - version/build identifier # @@ -19,14 +19,16 @@ run-nrtest() return_value=0 test_suite_path=$1 +benchmark_ver="2012vs10" + nrtest_execute_cmd="nrtest execute" test_app_path="apps/epanet-$2.json" -tests="tests/examples" +tests="tests/examples tests/exeter tests/large tests/network_one tests/small tests/tanks tests/valves" test_output_path="benchmark/epanet-$2" nrtest_compare_cmd="nrtest compare" -ref_output_path="benchmark/epanet-2012" +ref_output_path="benchmark/epanet-${benchmark_ver}" rtol_value=0.1 atol_value=0.0 diff --git a/tools/test-config.sh b/tools/test-config.sh new file mode 100644 index 0000000..8cbaef4 --- /dev/null +++ b/tools/test-config.sh @@ -0,0 +1,43 @@ +#! /bin/bash + +# +# test-config.sh - Generates nrtest test configuration file for test case. +# +# Date Created: 3/19/2018 +# +# Author: Michael E. Tryby +# US EPA - ORD/NRMRL +# +# Arguments: +# 1 - name +# 2 - version +# 3 - description +# +# Suggested Usage: +# $ for file in .//*; do ./test-config.sh $file 1.0 > "${file%.*}.json"; done +# + +filename="$1" +name="${filename%.*}" +version="$2" +description="$3" + +cat< ../AUTHORS \ No newline at end of file +' diff --git a/win_build/WinSDK/Makefile.bat b/win_build/WinSDK/Makefile.bat index eeb967e..d0a00c3 100644 --- a/win_build/WinSDK/Makefile.bat +++ b/win_build/WinSDK/Makefile.bat @@ -21,9 +21,9 @@ Find /i "x86" < checkOS.tmp > StringCheck.tmp If %ERRORLEVEL% == 1 ( CALL "%SDK_PATH%bin\"SetEnv.cmd /x64 /release rem : create EPANET2.DLL - cl -o epanet2.dll epanet.c hash.c hydraul.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /link /DLL + cl -o epanet2.dll epanet.c hash.c hydraul.c hydcoeffs.c hydsolver.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /link /DLL rem : create EPANET2.EXE - cl -o epanet2.exe epanet.c ..\run\main.c hash.c hydraul.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /I ..\src /link + cl -o epanet2.exe epanet.c ..\run\main.c hash.c hydraul.c hydcoeffs.c hydsolver.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /I ..\src /link md "%Build_PATH%"\64bit move /y "%SRC_PATH%"\*.dll "%Build_PATH%"\64bit move /y "%SRC_PATH%"\*.exe "%Build_PATH%"\64bit @@ -35,9 +35,9 @@ rem : 32 bit with DEF CALL "%SDK_PATH%bin\"SetEnv.cmd /x86 /release echo "32 bit with epanet2.def mapping" rem : create EPANET2.DLL -cl -o epanet2.dll epanet.c hash.c hydraul.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /link /DLL /def:..\win_build\WinSDK\epanet2.def /MAP +cl -o epanet2.dll epanet.c hash.c hydraul.c hydcoeffs.c hydsolver.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /link /DLL /def:..\win_build\WinSDK\epanet2.def /MAP rem : create EPANET2.EXE -cl -o epanet2.exe epanet.c ..\run\main.c hash.c hydraul.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /I ..\src /link +cl -o epanet2.exe epanet.c ..\run\main.c hash.c hydraul.c hydcoeffs.c hydsolver.c inpfile.c input1.c input2.c input3.c mempool.c output.c quality.c report.c rules.c smatrix.c /I ..\include /I ..\run /I ..\src /link md "%Build_PATH%"\32bit move /y "%SRC_PATH%"\*.dll "%Build_PATH%"\32bit move /y "%SRC_PATH%"\*.exe "%Build_PATH%"\32bit diff --git a/win_build/WinSDK/epanet2.def b/win_build/WinSDK/epanet2.def index f6376d6..09acdb7 100644 --- a/win_build/WinSDK/epanet2.def +++ b/win_build/WinSDK/epanet2.def @@ -87,4 +87,9 @@ EXPORTS ENgetfalseaction = _ENgetfalseaction@20 ENsetfalseaction = _ENsetfalseaction@20 ENgetruleID = _ENgetruleID@8 - ENsetflowunits = _ENsetflowunits@4 \ No newline at end of file + ENsetflowunits = _ENsetflowunits@4 + ENaddnode = _ENaddnode@8 + ENaddlink = _ENaddlink@16 + ENdeletelink = _ENdeletelink@4 + ENdeletenode = _ENdeletenode@4 + ENsetlinktype = _ENsetlinktype@8 \ No newline at end of file