Exemple #1
0
    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'
Exemple #2
0
 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
Exemple #3
0
    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'