def procesarBarrera(self): self.pozosVirtuales=[] ## print 'hizo el calculo de la recta' #Hay una barrera definida en el sistema ## cuando aparece la barrera se duplica todo se duplican los mismos ensayos if len(self.listaRecta)>0 and self.metodo.aceptaBarrera==True: ##se obtiene la primera recta q pasa si son mas ??? recta=self.listaRecta[0] alfa,beta,gamma=recta.devolverCoef() #print 'alfa: '+str(alfa)+'beta: '+str(beta)+'gamma: '+str(gamma) #Recorrer todos los pozos para irlos replicando ##solo para los pozos de bombeo Todoslospozos=self.obtenerPozosdeBombeo(); for p in Todoslospozos: x=0 y=0 if alfa == 0: #Pim.x=P.x; x=p.x # Pim.y=-P.y-2*barrera.gamma/barrera.beta; y=-p.y-(2*amma/beta) else: if beta==0: #Pim.y=P.y; y=p.y #Pim.x=-P.x-2*barrera.gamma/barrera.alfa; x=-p.x-(2*gamma/alfa) else: #a= barrera.alfa/-barrera.beta; a=alfa/-beta #b= barrera.gamma/-barrera.beta; b=gamma/-beta #angulo=atan(a); angulo=np.arctan(a) #x1p=P.x +b/a; x1p=p.x + b/a #x2p=x1p*cos(angulo)+P.y*sin(angulo); x2p=x1p*np.cos(angulo)+p.y*np.sin(angulo) #y2p=-x1p*sin(angulo)+P.y*cos(angulo); y2p=-x1p*np.sin(angulo)+p.y*np.cos(angulo) #Pim.x= x2p*cos(angulo) +y2p*sin(angulo) -b/a ; x=x2p*np.cos(angulo) +y2p*np.sin(angulo) -b/a #Pim.y= x2p*sin(angulo) -y2p*cos(angulo) ; y= x2p*np.sin(angulo) -y2p*np.cos(angulo) #se instancia un nuevo pozo cn una nueva lista de bombeos pvirtual=pozo(x,y) pvirtual.copiarAPozoVirtual(p,recta.tipo) self.pozosVirtuales.append(pvirtual) ##barrera.signo=sign( p(1).x*barrera.alfa + p(1).y*barrera.beta +barrera.gamma ); valorsigno=Todoslospozos[0].x * alfa + Todoslospozos[0].y * beta + gamma print np.sign(valorsigno) recta.setearSigno(np.sign(valorsigno)) ## if valorsigno==0: ## barrera.signo=0 ## else: ## if valorsigno>0 ## barrera.signo=1 ## recta.setearSigno(1) ## else: ## barrera.signo=-1 ## recta.setearSigno(-1) else: print 'no hay barreras'
def agregarPozo(self, x, y): p = pozo(x, y) self.idP = self.idP + 1 p.id = self.idP self.dominio.listaPozo.append(p) return p.id
def procesarBarrera(self): self.pozosVirtuales = [] ## print 'hizo el calculo de la recta' #Hay una barrera definida en el sistema ## cuando aparece la barrera se duplica todo se duplican los mismos ensayos if len(self.listaRecta) > 0 and self.metodo.aceptaBarrera == True: ##se obtiene la primera recta q pasa si son mas ??? recta = self.listaRecta[0] alfa, beta, gamma = recta.devolverCoef() #print 'alfa: '+str(alfa)+'beta: '+str(beta)+'gamma: '+str(gamma) #Recorrer todos los pozos para irlos replicando ##solo para los pozos de bombeo Todoslospozos = self.obtenerPozosdeBombeo() for p in Todoslospozos: x = 0 y = 0 if alfa == 0: #Pim.x=P.x; x = p.x # Pim.y=-P.y-2*barrera.gamma/barrera.beta; y = -p.y - (2 * amma / beta) else: if beta == 0: #Pim.y=P.y; y = p.y #Pim.x=-P.x-2*barrera.gamma/barrera.alfa; x = -p.x - (2 * gamma / alfa) else: #a= barrera.alfa/-barrera.beta; a = alfa / -beta #b= barrera.gamma/-barrera.beta; b = gamma / -beta #angulo=atan(a); angulo = np.arctan(a) #x1p=P.x +b/a; x1p = p.x + b / a #x2p=x1p*cos(angulo)+P.y*sin(angulo); x2p = x1p * np.cos(angulo) + p.y * np.sin(angulo) #y2p=-x1p*sin(angulo)+P.y*cos(angulo); y2p = -x1p * np.sin(angulo) + p.y * np.cos(angulo) #Pim.x= x2p*cos(angulo) +y2p*sin(angulo) -b/a ; x = x2p * np.cos(angulo) + y2p * np.sin(angulo) - b / a #Pim.y= x2p*sin(angulo) -y2p*cos(angulo) ; y = x2p * np.sin(angulo) - y2p * np.cos(angulo) #se instancia un nuevo pozo cn una nueva lista de bombeos pvirtual = pozo(x, y) pvirtual.copiarAPozoVirtual(p, recta.tipo) self.pozosVirtuales.append(pvirtual) ##barrera.signo=sign( p(1).x*barrera.alfa + p(1).y*barrera.beta +barrera.gamma ); valorsigno = Todoslospozos[0].x * alfa + Todoslospozos[ 0].y * beta + gamma print np.sign(valorsigno) recta.setearSigno(np.sign(valorsigno)) ## if valorsigno==0: ## barrera.signo=0 ## else: ## if valorsigno>0 ## barrera.signo=1 ## recta.setearSigno(1) ## else: ## barrera.signo=-1 ## recta.setearSigno(-1) else: print 'no hay barreras'