Moving epanet-toolkit to epanet-python repo

This commit is contained in:
Michael Tryby
2018-01-25 10:59:40 -05:00
parent 5e3ab5428d
commit 859a2ab9aa
6 changed files with 0 additions and 385 deletions

View File

@@ -1,40 +0,0 @@
# -*- coding: utf-8 -*-
#
# setup.py - Setup up script for en_toolkit python extension
#
# Created: 11/27/2017
# Author: Michael E. Tryby
# US EPA - ORD/NRMRL
#
# Requires:
# Platform C language compiler
# SWIG
#
try:
from setuptools import setup, Extension
from setuptools.command.build_ext import build_ext
except ImportError:
from distutils.core import setup, Extension
from distutils.command.build_ext import build_ext
setup(
name = "epanet-toolkit",
version = "0.0.0",
ext_modules = [
Extension("_epanet_toolkit",
include_dirs = ['lib\\'],
libraries = ['epanet'],
library_dirs = ['lib\\'],
sources = ['src\\epanet_toolkit.i'],
swig_opts=['-modern'],
language = 'C'
)
],
package_dir = {'':'src'},
py_modules = ['epanet_toolkit'],
install_requires = [
'enum34'
]
)

View File

@@ -1,71 +0,0 @@
/*
* epanet_toolkit.i - SWIG interface description file for EPANET toolkit
*
* Created: 11/27/2017
* Author: Michael E. Tryby
* US EPA - ORD/NRMRL
*
* Build command:
* $ swig -I../../../include -python epanet_toolkit.i
*
*/
%module epanet_toolkit
%{
#include "epanet2.h"
#define SWIG_FILE_WITH_INIT
%}
/* DEFINE AND TYPEDEF MUST BE INCLUDED */
typedef void* EN_ProjectHandle;
#ifndef DLLEXPORT
#ifdef WINDOWS
#ifdef __cplusplus
#define DLLEXPORT extern "C" __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
/* TYPEMAPS FOR OPAQUE POINTER */
/* Used for functions that output a new opaque pointer */
%typemap(in, numinputs=0) EN_ProjectHandle* ph (EN_ProjectHandle retval)
{
/* OUTPUT in */
retval = NULL;
$1 = &retval;
}
/* used for functions that take in an opaque pointer (or NULL)
and return a (possibly) different pointer */
%typemap(argout) EN_PorjectHandle* ph
{
/* OUTPUT argout */
%append_output(SWIG_NewPointerObj(SWIG_as_voidptr(retval$argnum), $1_descriptor, 0));
}
/* No need for special IN typemap for opaque pointers, it works anyway */
/* NO EXCEPTION HANDLING FOR THESE FUNCTIONS */
int DLLEXPORT EN_alloc(EN_ProjectHandle* ph);
int DLLEXPORT EN_open(EN_ProjectHandle ph, char *inpFile, char *rptFile, char *binOutFile);
int DLLEXPORT EN_solveH(EN_ProjectHandle ph);
int DLLEXPORT EN_solveQ(EN_ProjectHandle ph);
int DLLEXPORT EN_report(EN_ProjectHandle ph);
int DLLEXPORT EN_close(EN_ProjectHandle ph);
int DLLEXPORT EN_free(EN_ProjectHandle ph);

View File

@@ -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]

View File

@@ -1,49 +0,0 @@
# -*- coding: utf-8 -*-
#
# epanet_toolkit_test.py - Unit tests for epanet toolkit API
#
# Created: Dec. 4, 2017
# Author: Michael E. Tryby
# US EPA - ORD/NRMRL
#
from unittest import TestCase
import inspect
import epanet_toolkit as ent
class TestToolkitMethods(TestCase):
def test_alloc(self):
pass
def test_free(self):
pass
def test_open(self):
pass
def test_close(self):
pass
class TestToolkit(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_solveH(self):
pass
def test_solveQ(self):
pass
def test_report(self):
pass

View File

@@ -1,13 +0,0 @@
import epanet_toolkit as tlkt
def epanet():
[error, handle] = tlkt.EN_alloc()
[error, handle] = tlkt.EN_free(handle)
if __name__ == "__main__":
epanet()

View File

@@ -1,34 +0,0 @@
#include <stdlib.h>
#include <cstring>
#include "epanet2.h"
// NOTE: Project Home needs to be updated to run unit test
#define PROJECT_HOME "C:/Users/mtryby/Workspace/GitRepo/michaeltryby/epanet"
#define DATA_PATH "/tools/epanet-toolkit/test/data/"
using namespace std;
int main(int argc, char *argv[])
{
int error = 0;
EN_ProjectHandle project = NULL;
char inputFile[10] = "Net1.inp";
char reportFile[10] = "net1.rpt";
char outputFile[10] = "net1.out";
error = EN_alloc(&project);
error = EN_open(project, inputFile, reportFile, outputFile);
error = EN_solveH(project);
error = EN_solveQ(project);
error = EN_report(project);
error = EN_close(project);
error = EN_free(project);
return error;
}