예제 #1
0
def obj_func(xdict):
    global dia
    global tsr
    global solidity
    global Cp
    global dens
    global velf
    global funcs
    
    Vars = xdict['xvars']
    x = xdict['xvars']
    y = xdict['yvars']
    funcs = {}
    
    veleff = np.zeros_like(x)
    power_turb = np.zeros_like(x)
    
    for i in range(np.size(x)):
        xp = np.delete(x,i)
        yp = np.delete(y,i)
        diap = np.delete(dia,i)
        tsrp = np.delete(tsr,i)
        solidityp = np.delete(solidity,i)
        veleff[i] = overlap(xp,yp,diap,tsrp,solidityp,x[i],y[i],dia[i],velf,True,False)
        power_turb[i] = powerval(Cp,dens,veleff[i],dia[i])
        # print i+1
    
    power = np.sum(power_turb)
    print power 
    funcs['obj'] = (-1.0*power)
    
    sep = sep_func(np.append(x,y))
    funcs['sep'] = sep
    funcs['veleff'] = veleff
    funcs['power_turb'] = power_turb
    
    fail = False

    return funcs, fail
예제 #2
0
 plt.xlim(points[0]-spacing*area,points[-1]+spacing*area)
 plt.ylim(points[0]-spacing*area,points[-1]+spacing*area)
 
 
 if contour == True:
 
     N = 10
     xplot = np.linspace(points[0]-spacing*area,points[-1]+spacing*area,N)
     yplot = np.linspace(points[0]-spacing*area,points[-1]+spacing*area,N)
     [X,Y] = np.meshgrid(xplot,yplot)
     Vel = np.zeros((N,N))
     
     k = 0
     for i in range(N):
         for j in range(N):
             Vel[i,j] = overlap(xf,yf,dia,tsr,solidity,X[i,j],Y[i,j],turb_dia,velf,True,False)
             k += 1
             print k
     
     plt.figure(2)
     lb = 0.0 # lower bound on velocity to display
     ub = velf # upper bound on velocity to display
     ran = 200 # number of contours between the velocity bounds
     bounds = np.linspace(lb,ub,ran)
     v = np.linspace(lb,ub,4) # setting the number of tick marks on colorbar
     CS = plt.contourf(X,Y,Vel,ran,vmax=ub,vmin=lb,levels=bounds,cmap=plt.cm.jet) # plotting the contour plot
     CB = plt.colorbar(CS, ticks=v) # creating colorbar
     for i in range(np.size(xt)):
         circ = plt.Circle((xt[i],yt[i]),dia[i]/2.,color='g',edgecolor='k',fill=True)
         plt.gca().add_patch(circ)