예제 #1
0
파일: makeplots.py 프로젝트: niyaa/paper
def calculateSigmaThroughInterpolation(caseList, Re):
    '''
    Creates, through interpolation new result for a given Re
    accepts caseList for a given alfa
    '''
    S = [0.01, 0.025, 0.04, 0.055, 0.07, 0.085, 0.1, 0.115, 0.13, 0.145, 0.16, 0.175, 0.19, 0.205, 0.22, 0.235, 0.25]
    caseList.sort(key=lambda l: l.alfa)
    out=[]        
    for key, group in groupby(caseList, lambda x: x.alfa):
        alist = list(group)
    
        case=Case()
        case.alfa = alist[0].alfa
        case.Re = Re
        stab=[]
        sigma=[]
        for s in S:
#            try:
            sig=calculateSigmaForS(alist, s, Re)
            sigma.append(sig)
            stab.append(s)
#            except:
#                print "Failed for:"
#                print "Alfa=" + str(case.alfa) + " S=" + str(s)
#                continue
        case.S=stab
        case.sigma=sigma
        out.append(case)
    return out
예제 #2
0
파일: makeplots.py 프로젝트: niyaa/paper
def calcMaxSigma(caseList):
    '''
    For a given caseList (single alfa) returns a colection of Re, S, Sig
    '''
    caseList.sort(key=lambda l: l.Re)
    S = [0.01, 0.025, 0.04, 0.055, 0.07, 0.085, 0.1, 0.115, 0.13, 0.145, 0.16, 0.175, 0.19, 0.205, 0.22, 0.235, 0.25]
#    S = [0.025, 0.05, 0.075, 0.1, 0.125, 0.15, 0.175, 0.2]
    out=[]
    
    for key, group in groupby(caseList, lambda x: x.Re):
        alist = list(group)        
        s, sig = getSig_S(alist)
#        print s, sig
        i=0
        if s[0] > S[0]:
            for ss in S:
                if ss in s:
                    break
                s.insert(i, ss)
                sig.insert(i, calculateSigmaForS(caseList, ss, alist[0].Re))
                i=i+1
                
        if s[-1] < S[-1]:
            for ss in S:
                if ss not in s: continue
                if ss <= s[-1]:
                    continue
                else:
#                    print ss, alist[0].Re
                    s.insert(len(s), ss)
                    sig.insert(len(sig), calculateSigmaForS(caseList, ss, alist[0].Re))
#                    print s, sig
        
        if float(alist[0].alfa) == 3:  
            #extra manual ...
            if float(alist[0].Re) == 1900:
                ssig = calculateSigmaForS(caseList, 0.025, 1900)
                s.insert(1, 0.025)
                sig.insert(1, ssig)
#                print ssig
                
            #extra manual ...
            if float(alist[0].Re) == 1500:
                ssig = calculateSigmaForS(caseList, 0.025, 1500)
                s.insert(1, 0.025)
                sig.insert(1, ssig)
#                print ssig
                
#        print alist[0].Re, s, sig
        case=Case()
        case.alfa = alist[0].alfa
        case.Re = alist[0].Re
        case.S = s
        case.sigma = sig
        out.append(case)        
        
    return out