Code Monkey home page Code Monkey logo

epanet-dev's Introduction

Build Status

epanet-dev

This is a collaborative project to develop a new version of the EPANET computational engine for analyzing water distribution systems.

Introduction

The last major update to EPANET, version 2.0, was made in 2000. Since that time many new advances in water distribution system modeling and suggestions for improving EPANET have been made. This project seeks to develop a new version of the EPANET computational engine and its associated API that includes many of these advances and improvements. It is currently using EPANET 3 as its working title. Written in C++, it employs an object oriented approach that allows the code to be more modular, extensible, and easier to maintain.

EPANET 2 was originally developed by the U.S. Environmental Protection Agency (USEPA) and placed in the public domain. The new version being developed by this project represents an independent effort that is part of the Open Source EPANET Initiative and is neither supported nor endorsed by USEPA.

Building & Installation

The source code can be compiled as a static or shared library, and a command-line application is included as well. Any C++ compiler that supports the C++11 language standard can be used.

To build using CMake on Linux/Mac:

mkdir build && cd build
cmake .. && make
cd bin
./run-epanet3 input.inp report.txt

Windows & Visual Studio

To build using CMake on Windows, make sure that CMake is installed and accessible from the system PATH. Typing cmake at a command prompt should result in a message from the program and not an error like " 'cmake' is not recognized ...". By default, CMake uses the latest version of Visual Studio to build projects on Windows. Visual Studio 2015 does not install C++ development tools by default. Instructions for adding them are here. To build the project, open a developer command prompt for VS 2015, navigate to the project root directory, and follow the commands:

mkdir build && cd build
cmake .. 
msbuild /p:Configuration=Release ALL_BUILD.vcxproj
cd bin\Release
run-epanet3 input.inp report.txt

Windows & MSYS

To build using CMake on Windows, make sure that the programs CMake, make and the g++ C++ compiler are installed and accessible from your system PATH. The compiler is available as part of MinGW which can be installed with MSYS. Typing cmake, make, and g++ at a command prompt should result in a message from each program rather than an error like " 'make' is not recognized ...". Building on windows then follows almost the same steps as for Linux/Mac:

mkdir build && cd build
cmake -G "MSYS Makefiles" .. && make
cd bin
run-epanet3 input.inp report.txt

API Reference

The EPANET 3 API has a similar flavor to version 2, but all of the functions have been re-named and require that an EPANET project first be created and included as an argument in all function calls. (This makes the API capable of analyzing several projects in parallel in a thread safe manner.) EPANET 3 is able to read EPANET 2 input files but uses a different layout for its binary results file. Thus it will not be compatible with the current EPANET 2 GUI. Details of the API, including the changes and additions made to various computational components of EPANET, can be found in the 'docs' section of this repository.

You can access the full documentation at wateranalytics.org/epanet-dev.

License

The new version of EPANET will be distributed under the MIT license as described in the LICENSE file of this repository.

epanet-dev's People

Contributors

samhatchett avatar lrossman avatar bradleyjeck avatar waterdesk avatar mariocastrogama avatar ttaxon avatar

Stargazers

 avatar

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.