예제 #1
0
    def FracPre(self,model,case):
    
        T_i = []
        Fra_i= []
        Fra_r =case.Prop["FracVap"]
        
        case.Prop["T"]= sum(self.PV.T(case.Prop["P"],model)*case.Prop["x"])
        
        self.Isotermic(model,case)
        
        T_i.append(case.Prop["T"])
        Fra_i.append( case.Prop["FracVap"] )
##        print case.Prop["FracVap"],case.Prop["T"]
        
        if case.Prop["FracVap"] <=0.5:
            case.Prop["T"]= case.Prop["T"]*1.05
            self.Isotermic(model,case)
            while case.Prop["FracVap"] <=0.05:
                case.Prop["T"]= case.Prop["T"]*1.05
                self.Isotermic(model,case)
        else:
            case.Prop["T"]= case.Prop["T"]*0.95
            self.Isotermic(model,case)
            while case.Prop["FracVap"] >=0.95:
                case.Prop["T"]= case.Prop["T"]*0.95
                self.Isotermic(model,case)
        
        self.Isotermic(model,case)
        T_i.append(case.Prop["T"])
        Fra_i.append( case.Prop["FracVap"] )
        
        case.Prop["T"]= sum(T_i)/2
        self.Isotermic( model,case )
        T_i.append( case.Prop["T"] )
        Fra_i.append( case.Prop["FracVap"] )
        
##        print case.Prop["FracVap"],case.Prop["T"]
        
        i = 1
        while i<=20:
            case.Prop["T"]=lagrange(Fra_i,T_i,Fra_r)
##            print case.Prop["FracVap"],case.Prop["T"]
            self.Isotermic(model,case)
            T_i.append(case.Prop["T"])
            Fra_i.append( case.Prop["FracVap"] )
            i += 1
            if abs(Fra_r-case.Prop["FracVap"])<=1e-10:
                break
예제 #2
0
    def HenPre(self, model, case):
        T_i = []
        H_i = []
        H_r = case.Prop["H"]
        case.Prop["T"] = sum(self.PV.T(case.Prop["P"], model) * case.Prop["x"])
        self.Isotermic(model, case)
        self.EOS.Thermal(model, case)
        T_i.append(case.Prop["T"])
        H_i.append(case.Prop["H"])

        if case.Prop["FracVap"] <= 0.5:
            case.Prop["T"] = case.Prop["T"] * 1.1
            self.Isotermic(model, case)
            while case.Prop["FracVap"] <= 0.05:
                case.Prop["T"] = case.Prop["T"] * 1.1
                self.Isotermic(model, case)
        else:
            case.Prop["T"] = case.Prop["T"] * 0.9
            self.Isotermic(model, case)
            while case.Prop["FracVap"] >= 0.95:
                case.Prop["T"] = case.Prop["T"] * 0.9
                self.Isotermic(model, case)

        self.Isotermic(model, case)
        self.EOS.Thermal(model, case)
        T_i.append(case.Prop["T"])
        H_i.append(case.Prop["H"])

        case.Prop["P"] = sum(T_i) / 2
        self.Isotermic(model, case)
        self.EOS.Thermal(model, case)
        T_i.append(case.Prop["T"])
        H_i.append(case.Prop["H"])

        i = 1
        while i <= 20:
            case.Prop["T"] = lagrange(H_i, T_i, H_r)
            self.Isotermic(model, case)
            self.EOS.Thermal(model, case)
            T_i.append(case.Prop["T"])
            H_i.append(case.Prop["H"])
            i += 1
            if abs(H_r - case.Prop["H"]) <= 1e-10:
                break
예제 #3
0
    def FracTemp(self,model,case):
    
        P_i = []
        Fra_i= []
        Fra_r =case.Prop["FracVap"]
        
        case.Prop["P"]= sum(self.PV.P(case.Prop["T"],model)*case.Prop["x"])
        self.Isotermic(model,case)
        P_i.append(case.Prop["P"])
        Fra_i.append( case.Prop["FracVap"] )
        case.Prop["LiqDen"] = sum( xm* model["MoleWt"] )
        if case.Prop["FracVap"] <=0.5:
            case.Prop["P"]= case.Prop["P"]*0.5
            self.Isotermic(model,case)
            while case.Prop["FracVap"] <=0.05:
                case.Prop["P"]= case.Prop["P"]*0.5
                self.Isotermic(model,case)
        else:
            case.Prop["P"]= case.Prop["P"]*1.5
            self.Isotermic(model,case)
            while case.Prop["FracVap"] >=0.95:
                case.Prop["P"]= case.Prop["P"]*1.5
                self.Isotermic(model,case)
        
##        self.Isotermic( model,case )
        P_i.append( case.Prop["P"] )
        Fra_i.append( case.Prop["FracVap"] )
        
        case.Prop["P"]= sum(P_i)/2
        self.Isotermic( model,case )
        P_i.append( case.Prop["P"] )
        Fra_i.append( case.Prop["FracVap"] )
        
        i = 1
        while i<=20:
            case.Prop["P"]=lagrange( Fra_i, P_i, Fra_r )
            self.Isotermic( model, case )
            P_i.append( case.Prop["P"] )
            Fra_i.append( case.Prop["FracVap"] )
            i += 1
            if abs(Fra_r-case.Prop["FracVap"])<=1e-10:
                break
예제 #4
0
    def HenTemp(self,model,case):
        P_i = []
        H_i= []
        H_r =case.Prop["H"]
        case.Prop["P"]= sum(self.PV.P(case.Prop["T"],model)*case.Prop["x"])
        self.Isotermic(model,case)
        self.EOS.Thermal(model,case)
        
        P_i.append(case.Prop["P"])
        H_i.append( case.Prop["H"] )
        
        if case.Prop["H"] <=0.5*H_r:
            case.Prop["P"]= case.Prop["P"]*0.5
        else:
            case.Prop["P"]= case.Prop["P"]*1.5
    
        self.Isotermic(model,case)
        self.EOS.Thermal(model,case)
        P_i.append(case.Prop["P"])
        H_i.append( case.Prop["H"] )
        
        case.Prop["P"]= sum(P_i)/2
        self.Isotermic(model,case)
        self.EOS.Thermal(model,case)
        P_i.append(case.Prop["P"])
        H_i.append( case.Prop["H"] )
        
        i = 1
        
        while i<=20:
            case.Prop["P"]=lagrange(H_i,P_i,H_r)
            self.Isotermic(model,case)
            self.EOS.Thermal(model,case)
            P_i.append(case.Prop["P"])
            H_i.append( case.Prop["H"] )
            i += 1

            if abs(H_r-case.Prop["H"])<=1e-10:
                break
예제 #5
0
            while case.Prop["FracVap"] >= 0.95:
                case.Prop["P"] = case.Prop["P"] * 1.5
                self.Isotermic(model, case)

##        self.Isotermic( model,case )
        P_i.append(case.Prop["P"])
        Fra_i.append(case.Prop["FracVap"])

        case.Prop["P"] = sum(P_i) / 2
        self.Isotermic(model, case)
        P_i.append(case.Prop["P"])
        Fra_i.append(case.Prop["FracVap"])

        i = 1
        while i <= 20:
            case.Prop["P"] = lagrange(Fra_i, P_i, Fra_r)
            self.Isotermic(model, case)
            P_i.append(case.Prop["P"])
            Fra_i.append(case.Prop["FracVap"])
            i += 1
            if abs(Fra_r - case.Prop["FracVap"]) <= 1e-10:
                break

#################################################################
#Case that Tempererature and Hentalpy are defined
#################################################################

    def HenTemp(self, model, case):
        P_i = []
        H_i = []
        H_r = case.Prop["H"]
예제 #6
0
    def FracPre(self, model, case):

        T_i = []
        Fra_i = []
        Fra_r = case.Prop["FracVap"]

        case.Prop["T"] = sum(self.PV.T(case.Prop["P"], model) * case.Prop["x"])

        self.Isotermic(model, case)

        T_i.append(case.Prop["T"])
        Fra_i.append(case.Prop["FracVap"])
        ##        print case.Prop["FracVap"],case.Prop["T"]
        if case.Prop["FracVap"] <= 0.5:
            case.Prop["T"] = case.Prop["T"] * 1.05
            self.Isotermic(model, case)
            while case.Prop["FracVap"] <= 0.05:
                case.Prop["T"] = case.Prop["T"] * 1.05
                self.Isotermic(model, case)
        else:
            case.Prop["T"] = case.Prop["T"] * 0.95
            self.Isotermic(model, case)
            while case.Prop["FracVap"] >= 0.95:
                case.Prop["T"] = case.Prop["T"] * 0.95
                self.Isotermic(model, case)

        self.Isotermic(model, case)
        T_i.append(case.Prop["T"])
        Fra_i.append(case.Prop["FracVap"])
        case.Prop["T"] = sum(T_i) / 2
        self.Isotermic(model, case)
        T_i.append(case.Prop["T"])
        Fra_i.append(case.Prop["FracVap"])
        ##        print case.Prop["FracVap"],case.Prop["T"]
        ##        print "TI",T_i
        i = 1
        while i <= 20:
            ##            print "TI",T_i
            ##            print "TI",Fra_i,case.Prop["T"]
            case.Prop["T"] = lagrange(Fra_i, T_i, Fra_r)

            if case.Prop["T"] >= case.Prop["TC"]:
                case.Prop["T"] = case.Prop["TC"] - 50

            ##            print case.Prop["T"],Fra_r
            ##            print case.Prop["FracVap"],case.Prop["T"]
            self.Isotermic(model, case)
            ##            print case.Prop["T"],Fra_r,case.Prop["FracVap"]

            if case.Prop["FracVap"] <= 0.01:

                while case.Prop["FracVap"] < 0.01:
                    case.Prop["T"] = case.Prop["T"] + 3
                    print "TII", case.Prop["T"]
                    self.Isotermic(model, case)

            elif case.Prop["FracVap"] >= 0.99:

                while case.Prop["FracVap"] > 0.99:
                    case.Prop["T"] = case.Prop["T"] - 3
                    print "TII", case.Prop["T"]
                    self.Isotermic(model, case)

            T_i.append(case.Prop["T"])
            Fra_i.append(case.Prop["FracVap"])
            ##            print min(Fra_i)
            ##            for m in range(len(T_i)):
            ##
            ##                if abs(min(Fra_i)-case.Prop["FracVap"])<=1e-8:
            ##                    n=Fra_i.index(min(Fra_i))
            ##                    T_i[n]=case.Prop["T"]
            ##
            ##                if abs(max(Fra_i)-case.Prop["FracVap"])<=1e-8:
            ##                    n=Fra_i.index(case.Prop["FracVap"])
            ##                    T_i[n]=case.Prop["T"]
            ##
            ##            else:

            i += 1
            if abs(Fra_r - case.Prop["FracVap"]) <= 1e-10:
                break
예제 #7
0
파일: Presionv.py 프로젝트: shao130/sim42
    Pvi=S1.Get("PreVap")[0]
    Ppi.append(Pvi)
    fl=S1.Get("fl_i")[0]
    fv=S1.Get("fv_i")[0]
    P.append(S1.Get("P"))
    df.append(fl-fv)
    
    S1.P(Pvi)
    Ollin.Solve()
    fl=S1.Get("fl_i")[0]
    fv=S1.Get("fv_i")[0]
    P.append(S1.Get("P"))
    df.append(fl-fv)
    E = fl-fv
    while abs(E)>1e-3: 
        Pi = lagrange(df,P,0)
        print Pi
        S1.P(Pi)
        Ollin.Solve()
        fl=S1.Get("fl_i")[0]
        fv=S1.Get("fv_i")[0]
        P.append(S1.Get("P"))
        E = fl-fv
        df.append(E)
    
    Ppv.append(Pi)



plot(Ti,Ppi)
plot(Ti,Ppv)