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()
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)
def alter_epanet_demand(self, node, value): ret, index = epa.ENgetnodeindex(str(node)) ret = epa.ENsetnodevalue(index, epa.EN_BASEDEMAND, value)
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()