Пример #1
0
def setElevation(id,value):
    errcode=et.ENopen(Inp,"BUFF.rpt","")
    [errcode,index]=et.ENgetnodeindex(id)
    [errcode,elevation]=et.ENgetnodevalue(index,et.EN_ELEVATION)
    et.ENsetnodevalue(index,et.EN_ELEVATION,elevation+value)
    errcode=et.ENsaveinpfile(InpCopy)
    errcode=et.ENclose()
Пример #2
0
 def hyd_simulation(self):
     for index in range(self.dim):
         index = index + 1
         value = self.values[index - 1] + 0.0
         errcode = et.ENsetnodevalue(index, et.EN_BASEDEMAND,
                                     self.values[index - 1])
     et.ENsolveH()

time=[]
nodes={}
ret,nnodes=et.ENgetcount(et.EN_NODECOUNT)
for index in range(1,nnodes+1):
    ret,t=et.ENgetnodeid(index)
    nodes[t] = []

for index in range(1,nnodes):
    ret,d = et.ENgetnodevalue(index,et.EN_BASEDEMAND)

    if d == 0.0:
        Pete = np.random.randint(1, 6)
    #if Pete == 1:
        ret1 = et.ENsetnodevalue(index, et.EN_PATTERN, 1)
        ret2 = et.ENsetnodevalue(index,et.EN_BASEDEMAND,300.0)


#Net = EPANetSimulation(Directory+FileName,pdd=False)
#h=Node.value_type['EN_HEAD']
LeakNodes = ['CA81W6J9C0','CBEA1QV88R','CAFPFW92WV','CADXK24N13']
LeakNo = 3

LeakStartTime = 900*int(np.random.uniform(288,960))
print 'Leak Start',LeakStartTime
t=0
while True:
    ### This adds a small amount of variability to the demands
    for index in range(1, nnodes):
        ret, d = et.ENgetnodevalue(index, et.EN_BASEDEMAND)
maxD = 100.
Cd = 0.6

for i in range(1, no_nodes + 1):
    ret, index = epa.ENgetnodeid(i)

    Hs = []
    Ps = []
    Qs = []
    Rbs = []
    dOs = []
    for j in range(100):
        dO = j / maxD
        AO = dO**2 * math.pi / 4
        ret = epa.ENsetnodevalue(i, epa.EN_EMITTER,
                                 1000 * Cd * AO * math.sqrt(2 * 9.81))

        run_EPANET()
        ret, H = epa.ENgetnodevalue(
            i, epa.EN_HEAD)  ## getting the nodal head results
        ret, P = epa.ENgetnodevalue(
            i, epa.EN_PRESSURE)  ## getting the nodal pressure results
        ret, Demand = epa.ENgetnodevalue(
            i, epa.EN_DEMAND)  ## getting the nodal demand results
        ret, Base = epa.ENgetnodevalue(i, epa.EN_BASEDEMAND)

        Q_failure = abs(Demand - Base)

        if dO != 0:
            Hs.append(H)
            Qs.append(Q_failure)
Пример #5
0
 def alter_epanet_demand(self, node, value):
     ret, index = epa.ENgetnodeindex(str(node))
     ret = epa.ENsetnodevalue(index, epa.EN_BASEDEMAND, value)
Пример #6
0
 def hyd_simulation(self):
     for index in range(self.demand_dim):
         index = index + 1
         errcode = et.ENsetnodevalue(index, et.EN_BASEDEMAND,
                                     self.cali_demand_values[index - 1])
     et.ENsolveH()