Code Monkey home page Code Monkey logo

epanet-solver's Introduction

                   epanet

epanet-solver

(f.k.a. "Water-Distribution-Network-Model")

Build Status

Build and Test

Introduction

EPANET is used to perform extended-period simulation of the hydraulic and water quality behavior within drinking water distribution systems (e.g., pressurized pipe networks), which consist of pipes, nodes (junctions), pumps, valves, storage tanks, and reservoirs. It can be used to track the flow of water in each pipe, the pressure at each node, the height of the water in each tank, a chemical concentration, the age of the water, and source tracing throughout the network during a simulation period.

EPANET was developed as a tool for understanding the movement and fate of drinking water constituents within distribution systems, and can be used for many different kinds of applications in distribution systems analysis. Today, engineers and consultants use EPANET to design and size new water infrastructure, retrofit existing aging infrastructure, optimize operations of tanks and pumps, reduce energy usage, investigate water quality problems, and prepare for emergencies. EPANET can also be used to model contamination threats and evaluate resilience to security threats or natural disasters.

This is the official EPANET source code repository maintained by the United States Environmental Protection Agency (EPA). EPANET source code is written in the C Programming Language and released in the Public Domain.

Intended Audience

The intended audience for this repository can be divided roughly into two groups:

  • Programmers interested in water distribution system modeling
  • Engineers working on water distribution system modeling interested in programming

EPANET has an active open source software community including consulting engineers, students, researchers, software companies, professional organizations, other interested members of the public, and EPA partners. An Open Source EPANET Initiative at http://community.wateranalytics.org has released source code for an EPANET engine version 2.1 that included community sourced bug fixes and they are working on additional releases with new feature requests. Others are encouraged to fork EPANET and develop a great new feature to share with the community.

License

EPANET is released under the MIT license. See the LICENSE.txt file.

Contributing to EPANET

Information on how to contribute to the development of EPANET can be found in the CONTRIBUTING.md file.

Find Out More

More information on the purpose, capabilities, and applications of EPANET can be found at the official EPANET Website. In addition, the source code distributed here and a user interface as well as extensions to EPANET are available for download.

Documentation

EPANET's user manual is available for download from the official EPANET Website.

Contact

[email protected]

EPA Disclaimer

The United States Environmental Protection Agency (EPA) GitHub project code is provided on an "as is" basis and the user assumes responsibility for its use. EPA has relinquished control of the information and no longer has responsibility to protect the integrity, confidentiality, or availability of the information. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation or favoring by EPA. The EPA seal and logo shall not be used in any manner to imply endorsement of any commercial product or activity by EPA or the United States Government.

epanet-solver's People

Contributors

andychase avatar angelamarchi avatar bemcdonnell avatar eladsal avatar eldemet avatar jamesuber avatar jaorquina avatar jinduanchen avatar makusuko avatar mariosmsk avatar mauriziocingi avatar michaeltryby avatar samhatchett avatar terrahaxton avatar thisismikekane avatar ttaxon avatar willfurnass avatar woohn avatar yuniersoad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

epanet-solver's Issues

Update license file from CC0 to MIT

@terrahaxton I merged OWA's code into our repository so the license is no longer CC0. In fact it is now MIT. As per the Contributors guidelines, since we have incorporated their code, we must now honor their license. Make sense?

Also target your PRs to the "develop" branch going forward.

Status of link in input3

If the name of a link is more than MAXID (=31), the link cannot be found in hashtable at line 1276 in input3.c file. The line reads if ((j = findlink(net, parser->Tok[0])) == 0) return setError(parser, 0, 204);

The case was tested holds a pump with ("MAIREHAU_PUMP_STAND_BY_US.MAIREHAU_PUMP_STAND_BY_DS.1") name. The file is runnable with EPANET 2.0 but, it throws error 204 in EPANET 2.2.

One or two ways can be proposed to fix this issue. Throwing errors when the length of names exceeds 31 characters can be a good solution. I think this is a good solution, because if the 31 first characters of two links are the same, a wrong index may be found in the hashtable.

Regression Testing

  • Simplify regression testing procedure
  • Write SOP for running unit and reg tests
  • Describe benefits of testing (target audience non-programmers)

Bugs identified running private test suite

The private test suite consists of approximately 270 input files. Of these approximately 30 produced a non-zero exit code when run using epanet v2.2.0. The following lists summarizes the causes:

  • epanet v2.0.12 allowed minor variations in section tag names (only matched first five characters)
  • Some link types, i.e. valves, are not being recognized in [STATUS] section
  • Intermittent crashes when "Writing output report ..."
  • Report file becomes unavailable when writing results (Error 303)
  • 1962_1.inp, Test19.inp, Test19c.inp -- networks that were previously solvable now yield Error 110

Intermittent dll crash

An intermittent hard crash of the dll has been isolated to the code that frees demand category lists -- freedemands().

Compiling the original source (from epa.gov) with an edited epanet.c error

Hi all,

I was wondering if any of you could assist me with an issue.

I need to use the epanet source code from EPA (https://www.epa.gov/water-research/epanet) and compile it with a different epanet.c file which incorporates some functions for a research project. When I try to load in matlab the new dll created with "nmake /f epanet2.mak" as described in the readme files of the original source code, I get the following error:
Error using loadlibrary
There was an error loading the library
"C:\Users\epanet2.dll"
'C:\Users\epanet2.dll' has different architecture than the host.

Trying to solve the problem, I have done the following actions:
I went back to the epanet2.mak file and effectively it is defined for Win32. I wonder if and how I can edit that configuration.
I downloaded the latest version of the OWA/epanet source code. When compiling the source files, it doesn't even create the dll due to several fatal errors associated with the edited epanet.c file.

Is there any way to get the epanet2.dll created from the original source code working on a win64 environment?

I highly appreciate any suggestions.

Perform QA on v2.2.0 beta release

  • Refactor testing scripts for private testing
  • Get private tests running and under source code control
  • Generate benchmark using EPANET v2.0.12 for private test suite
  • Generate benchmark for SUT release candidate
  • Investigate any differences

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.