Пример #1
0
 def run_for_multiple_aoa(self,alphaSequence=arange(-5,20,3),
                          turbulenceModel='SA',Cp=False,iterMax=5000,densityBased=False):
     """
     Run fluent at sequence of angle of attacks
     
     Parameters
     ----------
     
     alphaSequence : array, deg
         array of angles of attack
     turbulenceModel : string
         fluent turbulence model. Two options are available: 'SA' and 
         'ke-realizable'
     Cp : bool
         This option is not available yet.
     iterMax : int
         maximum number of iterations
     """
     result = FluentOutput(len(alphaSequence))
     for i,alpha in enumerate(alphaSequence):
         result1 = self.fluent.run_at_aoa(alpha,self.fc,self._caseFilePath,turbulenceModel,Cp,iterMax,densityBased)
         result.alpha[i] = result1.alpha
         result.cl[i] = result1.cl
         result.cd[i] = result1.cd
         result.cm[i] = result1.cm
         result.LD[i] = result1.LD
     return result
Пример #2
0
def combine_results(resultXfoil, resultCfd):
    alphaMax = min([max(resultXfoil.alpha), max(resultCfd.alpha)])
    alphaMin = max([min(resultXfoil.alpha), min(resultCfd.alpha)])
    alphaNew = np.arange(alphaMin,alphaMax+1.,1.)
    clAlpha = interp1d(resultCfd.alpha,resultCfd.cl,'cubic')
    cdAlpha = interp1d(resultXfoil.alpha, resultXfoil.cd,'cubic')
    cmAlpha = interp1d(resultXfoil.alpha, resultXfoil.cm,'cubic')
    resultNew = FluentOutput()
    resultNew.alpha = alphaNew
    resultNew.cl = clAlpha(alphaNew)
    resultNew.cd = cdAlpha(alphaNew)
    resultNew.cm = cmAlpha(alphaNew)
    f1 = lambda x: -clAlpha(x)
    f2 = lambda x: -clAlpha(x)/cdAlpha(x)
    f3 = lambda x: -clAlpha(x)**1.5/cdAlpha(x)
    a1 = fminbound(f1,alphaMin, alphaMax, full_output=1)
    a2 = fminbound(f2,alphaMin, alphaMax, full_output=1)
    a3 = fminbound(f3,alphaMin, alphaMax, full_output=1)
    resultNew.alphaClmax = a1[0]
    resultNew.alphaLDmax = a2[0]
    resultNew.alphaLD32max = a3[0]
    resultNew.Clmax = -a1[1]
    resultNew.LDmax = -a2[1]
    resultNew.LD32max = -a3[1]
    resultNew.cdAtLDmax = cdAlpha(a2[0])
    resultNew.cdAtLD32max = cdAlpha(a3[0])
    return resultNew