def cfd_table():
    af = MyTools.airfoil.airfoil.Airfoil()
    af.read_txt('Clark-Y.txt')
    af.display()
    
    #Mach = np.arange(0.2, 0.9, 0.05)
    Mach = np.array([0.90])
    aseq = np.arange(-20., 21., 2.0)
    pth = 'ClarkY-C81.txt'
    fc = FlightConditions(0.2,0.0)
    scale = 1.0
    yplus = 1.0
    
#    fid = open(pth,'wt')
#    fid.write('Mach\talpha\tCL\tCD\tCM\n')
#    fid.close()
#    
    idx = 14
    for M in Mach:
        fc.set_speed(M)
        idx += 1
        for a in aseq:
            fid = open(pth,'at')
            cl,cd,cm,gs = cfd.run_analysis(af,fc,a,yplus,scale, idx)
            fid.write('%.4f\t%.4f\t%.8f\t%.8f\t%.8f\n'%(M,a,cl,cd,cm))
    fid.close()
예제 #2
0
 def __call__(self,x):
     self.idx += 1
     x = self.norm.denormalize(x)
     Mach = x[0]
     alpha = x[1]
     self.fc.set_speed(Mach)
     cl,cd,cm,gs = cfd.run_analysis(self.af,self.fc,alpha,self.yplus,self.scale, self.idx)
     self.save(Mach,alpha,cl,cd,cm)
     return cl, cd, cm
예제 #3
0
 def run_cfd(self,x,Mach,alpha,lowFidelity=True):
     x = self._get_x(x)
     x = self.xNormalization.denormalize(x)
     x = x[2:]
     self.af = MyTools.airfoil.airfoil.cst_x(x,101)
     self.af.set_trailing_edge(self.zTE)
     self.fc.set_speed(Mach)
     if lowFidelity:
         self.runCountLow += 1
         scale = self.gridScaleLow
     else:
         self.runCountHigh += 1
         scale = self.gridScaleHigh
     self.runCountTotal += 1
     tc = self.af.thickness
     cl,cd,cm,gs = cfd.run_analysis(self.af,self.fc,alpha,self.yplus,scale,
                                    self.runCountTotal)
     self.write_data_cfd(Mach,alpha,x,cl,cd,cm,tc,lowFidelity)
     return cl, cd, cm
예제 #4
0
def main():
    Mach = 0.85
    alpha = 0.0
    variance = 0.025
    MachLow = Mach*(1.0-variance)
    MachUp = Mach*(1.0+variance)
    alphaLow = alpha-0.25
    alphaUp  = alpha+0.25
    inFileDOE = 'LHS9_100.txt'
    
    doe = mt.read_tabulated_data_without_header(inFileDOE)
    lb = np.array([MachLow, alphaLow, 0.04343078, 0.0900427, 0.0570076, 0.08289899, -0.06762751, -0.13041535, -0.02843321])
    ub = np.array([MachUp, alphaUp, 0.08343078, 0.1900427, 0.1570076, 0.18289899, 0.03237249, -0.03041535, 0.07156679])
    
    zTE = 0.005
    alt = 10000
    
    yplus = 1.0
    gridScaleL = 1.0
    gridScaleH = 4.0
    outputFile = inFileDOE[:-4] + '_CFD.txt'
    
    norm = mt.Normalization(lb,ub)
    xDOE = norm.denormalize(doe)
    
    case = 0
    fid = open(outputFile, 'wt')
    fid.write('Mach\talpha\t')
    for i in range(len(lb)-2):
        fid.write('A%d\t'%(i+1))
    #fid.write('clHigh\tcdHigh\tcmHigh\tclLow\tcdLow\tcmLow\tLDhigh\tLDlow\tthickness\n')
    fid.write('cl\tcd\tcm\ttc\n')
    fid.close()

    for i, xx in enumerate(xDOE):
        M = xx[0]
        a = xx[1]
        fc = cfd.flight_conditions.FlightConditions(M, alt)
        af = MyTools.airfoil.airfoil.cst_x(xx[2:], 101)
        af.set_trailing_edge(zTE)
        tc = af.thickness
        try:
#            case += 1
#            clH,cdH,cmH, gs = cfd.run_analysis(af, fc, a, yplus, gridScaleH, case)
            case += 1
            clL,cdL,cmL, gs = cfd.run_analysis(af, fc, a, yplus, gridScaleL, case)
            fid = open(outputFile, 'at')
            fid.write('%.6f\t%.6f\t'%(M,a))
            for _x in xx[2:]:
                fid.write('%.8f\t'%_x)
            #fid.write('%.8f\t%.8f\t%.8f\t%.8f\t%.8f\t%.8f\t%.8f\t%.8f\t%.6f\n'%(clH,cdH,cmH,clL,cdL,cmL,clH/cdH,clL/cdL,tc))
            fid.write('%.8f\t%.8f\t%.8f\t%.8f\n'%(clL,cdL,cmL,tc))
            fid.close()
        except IOError:
            case += 1
            fid = open(outputFile, 'at')
            fid.write('%.6f\t%.6f\t'%(M,a))
            for _x in xx[2:]:
                fid.write('%.8f\t'%_x)
            fid.write('calculation failed\n')
            fid.close()