{
 "metadata": {
  "name": "",
  "signature": "sha256:23882ec0847c225b7b257c6443fe29684678f1f963a02f167a621eba14c49963"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter 10 : Vapor Liquid Equillibrium Introduction"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 10.1 page no : 148"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "\n",
      "from matplotlib.pyplot import plot,subplot,suptitle,xlabel,ylabel\n",
      "from numpy import array,linspace,exp\n",
      "import math \n",
      "\n",
      "#Antoinie Equations\n",
      "#ln P1_sat = 14.2724-(2945.47/(T-49.15))  [KPa]\n",
      "#ln P2_sat = 14.2043-(2972.64/(T-64.15))  [KPa]\n",
      "#(a) Graph Showing P vs x1 and P vs y1 for T = 348.15K\n",
      "T = 348.15;\t\t\t#[K]\n",
      "#using BUBL P calculations\n",
      "\n",
      "#Calculation of P1_sat and P2_sat at T = 348.15K\n",
      "P1_sat = round(math.exp(14.2724-(2945.47/(T-49.15))),2)  \t\t\t#KPa\n",
      "P2_sat = round(math.exp(14.2043-(2972.64/(T-64.15))),2)  \t\t\t#KPa\n",
      "\n",
      "#Using Eqn P = P2_sat+(P1_sat-P2_sat)x1\n",
      "\n",
      "x = linspace(0,1,6)\n",
      "P = round(P2_sat+((P1_sat-P2_sat)*x),2);\n",
      "y = round(x*P1_sat/P,4);\n",
      "\n",
      "print ('Explanations Of graph')\n",
      "\n",
      "Ans = [x,y,P];\n",
      "print '   x1      y1       P/PKa',Ans\n",
      "\n",
      "y1 = 0.6;\n",
      "y2 = 1-y1;\n",
      "P_dew = round(1/((y1/P1_sat)+(y2/P2_sat)),2)\n",
      "x1 = round(y1*P_dew/P1_sat,4)\n",
      "\n",
      "# Plotting the graph\n",
      "T = 348.15;\t\t\t#[K]\n",
      "P1_sat = round(exp(14.2724-(2945.47/(T-49.15))),2)  \t\t\t#KPa\n",
      "P2_sat = round(exp(14.2043-(2972.64/(T-64.15))),2)  \t\t\t#KPa\n",
      "\n",
      "x = linspace(0,1,6)\n",
      "P = round(P2_sat+((P1_sat-P2_sat)*x),2);\n",
      "y = round(x*P1_sat/P,4);\n",
      "\n",
      "plot(x,P,'g-')  \t\t\t#P vs x1\n",
      "plot(y,P,'b-')  \t\t\t#P vs y1\n",
      "x = [0,0.1];\n",
      "P = [P2_sat,P2_sat];\n",
      "plot(x,P,'--')  \t\t\t#P2_sat\n",
      "x = [0.9,1];\n",
      "P = [P1_sat,P1_sat];\n",
      "plot(x,P,'r--') \t\t\t#P1_sat\n",
      "\n",
      "x1 = 0.6;\n",
      "P_b = round(P2_sat+((P1_sat-P2_sat)*x1),2);\n",
      "y1 = round(x1*P1_sat/P_b,4);\n",
      "x = [x1,y1];\n",
      "P = [P_b,P_b];\n",
      "plot(x,P,'bo-')  \t\t\t#b--b'\n",
      "\n",
      "y1 = 0.6;\n",
      "y2 = 1-y1;\n",
      "P_c = round(1/((y1/P1_sat)+(y2/P2_sat)),2)\n",
      "x1 = round(y1*P_c/P1_sat,4)\n",
      "\n",
      "x = [x1,y1];\n",
      "P = [P_c,P_c];\n",
      "plot(x,P,'ro-')  \t\t\t#c'--c\n",
      "\n",
      "P = [(P_b+10),P_b,P_c,(P_c-10)];\n",
      "x = [0.6,0.6,0.6,0.6];\n",
      "plot(x,P,'go-')  \t\t\t#a--b--c--d--0.6\n",
      "\n",
      "P = [(P_c-10),30];\n",
      "x = [0.6,0.6];\n",
      "plot(x,P,'yo--')\n",
      "\n",
      "P = [110,80];\n",
      "x = [0.6,0.6];\n",
      "plot(x,P,'w')\n",
      "suptitle('(a)T/t = 348.15K')\n",
      "xlabel('x1,y1')\n",
      "ylabel('P/Kpa')\n",
      "\n",
      "print (\"This is the liquid-phase composition at point c''\")\n",
      "\n",
      "#(b) Graph showing (t vs x1) and (t vs y1) for a pressure of 70KPa\n",
      "#Example 10.2(b)\n",
      "P = 70;\t\t\t#[KPa]\n",
      "\n",
      "T1_sat = round(2945.47/(14.2724-math.log(P))+49.15,2);\n",
      "T2_sat = round(2972.64/(14.2043-math.log(P))+64.15,2);\n",
      "\n",
      "T = array([T1_sat,347.15,351.15,355.15,359.15,T2_sat]);\n",
      "\n",
      "P1_sat = round(exp(14.2724-(2945.47/(T-49.15))),2);  \t\t\t#KPa\n",
      "P2_sat = round(exp(14.2043-(2972.64/(T-64.15))),2);  \t\t\t#KPa\n",
      "\n",
      "x = round((P-P2_sat)/(P1_sat-P2_sat),3);\n",
      "y = round((x*P1_sat)/P,3);\n",
      "\n",
      "Ans = [x,y,T];\n",
      "print '   x1       y1       T/t(K/C`)',Ans\n",
      "\n",
      "#at x1 = 0.6;\n",
      "x1_b = 0.6;\n",
      "x2_b = 1-x1_b;\n",
      "\n",
      "T_a = 347.15;\t\t\t# Intermediate Temperature  (Point a in graph)\n",
      "P1_sat_a = round(exp(14.2724-(2945.47/(T_a-49.15))),2);  \t\t\t#KPa\n",
      "P2_sat_a = round(exp(14.2043-(2972.64/(T_a-64.15))),2);  \t\t\t#KPa\n",
      "alpha = P1_sat_a/P2_sat_a;  \t\t\t#Initial\n",
      "a = T_a;\n",
      "i = -1;\n",
      "while(i == -1):\n",
      "    P2_sat_b = P/((x1_b*alpha)+x2_b);\n",
      "    b = round(2972.64/(14.2043-math.log(P2_sat_b))+64.15,2);\n",
      "    dT = abs(a-b);\n",
      "    if(dT == 0):\n",
      "        i = 0;\n",
      "        T_b = b;\n",
      "    alpha = math.exp(0.0681-(2945.47/(b-49.15))+(2972.64/(b-64.15)));  \t\t\t#Eqn C\n",
      "    a = b;\n",
      "\n",
      "P1_sat_b = round(math.exp(14.2724-(2945.47/(T_b-49.15))),2);  \t\t\t#KPa\n",
      "y1_b = round((x1_b*P1_sat_b)/P,4);  \t\t\t#b`\n",
      "\n",
      "print 'Hence by iteration Temp(Temp at b) at x1 = 0.6 is ',T_b,'K'\n",
      "print 'Hence by iteration P1_sat at x1 = 0.6 is ',P1_sat_b,'KPa'\n",
      "print 'Composition of Vapor(b`) at x1 = 0.6',y1_b\n",
      "\n",
      "\n",
      "#At y1 = 0.6\n",
      "y1_c = 0.6;\n",
      "y2_c = 1-y1_c;\n",
      "T_d = 355.15;\t\t\t# Intermediate Temperature  (Point a in graph)\n",
      "P1_sat_d = round(math.exp(14.2724-(2945.47/(T_d-49.15))),2);  \t\t\t#KPa\n",
      "P2_sat_d = round(math.exp(14.2043-(2972.64/(T_d-64.15))),2);  \t\t\t#KPa\n",
      "alpha = P1_sat_d/P2_sat_d;  \t\t\t#Initial\n",
      "d = T_d;\n",
      "i = -1;\n",
      "while(i == -1):\n",
      "    P1_sat_c = P*(y1_c+(y2_c*alpha));\n",
      "    c = round(2945.47/(14.2724-math.log(P1_sat_c))+49.15,2);\n",
      "    dT = abs(d-c);\n",
      "    if(dT == 0):\n",
      "        i = 0;\n",
      "        T_c = c;\n",
      "    alpha = math.exp(0.0681-(2945.47/(c-49.15))+(2972.64/(c-64.15)));  \t\t\t#Eqn C\n",
      "    d = c;\n",
      "\n",
      "P1_sat_c = round(math.exp(14.2724-(2945.47/(T_c-49.15))),2);  \t\t\t#KPa\n",
      "x1_c = round((y1_c*P)/P1_sat_c,4);  \t\t\t#c`\n",
      "\n",
      "print 'Hence by iteration Temp(Temp at b) at y1 = 0.6 is ',T_c,'K'\n",
      "print 'Hence by iteration P1_sat at y1 = 0.6 is ',P1_sat_c,'KPa'\n",
      "print 'Composition of liqiud(c`) at y1 = 0.6',x1_c\n",
      "\n",
      "#Graph\n",
      "T = linspace(T1_sat,T2_sat,10); \n",
      "\n",
      "P1_sat = round(exp(14.2724-(2945.47/(T-49.15))),2);  \t\t\t#KPa\n",
      "P2_sat = round(exp(14.2043-(2972.64/(T-64.15))),2);  \t\t\t#KPa\n",
      "\n",
      "x = round((P-P2_sat)/(P1_sat-P2_sat),3);\n",
      "y = round((x*P1_sat)/P,3);\n",
      "\n",
      "plot(x,T,'g-');    \n",
      "plot(y,T,'b-');  \n",
      "\n",
      "xsat = [0,0.1];\n",
      "T2sat = [T2_sat,T2_sat];\n",
      "plot(xsat,T2sat,'--')  \t\t\t#T2_sat\n",
      "\n",
      "xsat = [0.9,1];\n",
      "T1sat = [T1_sat,T1_sat];\n",
      "plot(xsat,T1sat,'r--') \t\t\t#T1_sat\n",
      "\n",
      "Tcc = [T_c,T_c];\n",
      "xc = [x1_c,y1_c];\n",
      "plot(xc,Tcc,'ro-')  \t\t\t#c--c'\n",
      "\n",
      "Tbb = [T_b,T_b];\n",
      "xb = [x1_b,y1_b];\n",
      "plot(xb,Tbb,'bo-')  \t\t\t#b--b'\n",
      "\n",
      "Tabcd = [T_d,T_c,T_b,T_a];\n",
      "xabcd = [0.6,0.6,0.6,0.6];\n",
      "plot(xabcd,Tabcd,'go-')  \t\t\t#a--b--c--d--0.6\n",
      "\n",
      "Tao = [T_a,340];\n",
      "xao = [0.6,0.6];\n",
      "plot(xao,Tao,'yo--')\n",
      "suptitle('(b)P = 70KPa')\n",
      "xlabel('x1,y1')\n",
      "ylabel('T(K)')\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Explanations Of graph\n",
        "   x1      y1       P/PKa [array([ 0. ,  0.2,  0.4,  0.6,  0.8,  1. ]), array([ 0.    ,  0.3313,  0.5692,  0.7483,  0.888 ,  1.    ]), array([ 41.98,  50.23,  58.47,  66.72,  74.96,  83.21])]\n",
        "This is the liquid-phase composition at point c''"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "   x1       y1       T/t(K/C`) [array([ 1.   ,  0.738,  0.516,  0.318,  0.142,  0.   ]), array([ 1.   ,  0.849,  0.676,  0.474,  0.239,  0.   ]), array([ 342.99,  347.15,  351.15,  355.15,  359.15,  362.73])]\n",
        "Hence by iteration Temp(Temp at b) at x1 = 0.6 is  349.57 K\n",
        "Hence by iteration P1_sat at x1 = 0.6 is  87.17 KPa\n",
        "Composition of Vapor(b`) at x1 = 0.6 0.7472\n",
        "Hence by iteration Temp(Temp at b) at y1 = 0.6 is  352.73 K\n",
        "Hence by iteration P1_sat at y1 = 0.6 is  96.54 KPa\n",
        "Composition of liqiud(c`) at y1 = 0.6 0.4351\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "<matplotlib.text.Text at 0x108748c50>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x1086e3610>"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 10.2 page no :  149"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Variables\n",
      "H = 990.;\t\t\t#[Bar] Henry's Law const\n",
      "T = 283.15;\t\t\t#[K]\n",
      "P2_sat = 0.01227;\t\t\t#[Bar]  from Steam Tables\n",
      "x1 = 0.01;\t\t\t#Assumed\n",
      "x2 = 1-x1;\n",
      "y1 = 1;\n",
      "\n",
      "# Calculations\n",
      "P = round((x1*H)+(x2*P2_sat),3);\n",
      "x1 = round((y1*P)/H,4);\n",
      "x2 = 1-x1;\n",
      "y2 = round((x2*P2_sat)/P,4);\n",
      "y1 = 1-y2;\n",
      "\n",
      "# Results\n",
      "print 'Composition in liquid Phase',x1\n",
      "print 'Composition in vapor Phase',y1\n",
      "print 'Pressure Exerted on Can',P,'Bar'\n",
      "print ('Hence Vapor phase chosen is nearly pure')\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Composition in liquid Phase 0.01\n",
        "Composition in vapor Phase 0.9988\n",
        "Pressure Exerted on Can 9.912 Bar\n",
        "Hence Vapor phase chosen is nearly pure\n"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 10.3  page no :  150"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math \n",
      "\n",
      "#Equations to be Used\n",
      "# ln v1 = A*(x2**2)  ln v2 = A*(x1**2)  Where A = 2.771-0.00523T\n",
      "\n",
      "#Antoine Equations\n",
      "#ln P1_sat  =  16.59158-(3643.31/(T-33.424)) \n",
      "#ln P2_sat  =  14.25326-(2665.54/(T-53.424))\n",
      "#P  =  E(xi * Vi * Pi_sat)  E--Summation        Eqn 10.6\n",
      "#P  =  1/E(yi / (vi * Pi_sat))  E--Summation    Eqn 10.7\n",
      "\n",
      "#(a) Calculate P and (yi) , for T = 318.15K and x1 = 0.25\n",
      "\n",
      "# Variables\n",
      "T = 318.15;\t\t\t#[K]  Given\n",
      "x1 = 0.25; \t\t\t#Given\n",
      "x2 = 1-x1;\n",
      "\n",
      "# Calculations and Results\n",
      "P1_sat  =  round(math.exp(16.59158-(3643.31/(T-33.424))),2);\t\t\t#[KPa]\n",
      "P2_sat  =  round(math.exp(14.25326-(2665.54/(T-53.424))),2);\t\t\t#[KPa]\n",
      "A = round(2.771-(0.00523*T),3);\n",
      "v1 = round(math.exp(A*(x2**2)),3);\n",
      "v2 = round(math.exp(A*(x1**2)),3);\n",
      "\n",
      "#Form Eqn(10.6)\n",
      "P_a = round((x1*v1*P1_sat)+(x2*v2*P2_sat),2);\t\t\t#[KPa]\n",
      "y1_a = round((x1*v1*P1_sat)/P_a,3);\n",
      "y2_a = round((x2*v2*P2_sat)/P_a,3);\n",
      "\n",
      "print ('(a)P and [yi] for T = 318.15K and x1 = 0.25')\n",
      "print ('BUBL P calculations')\n",
      "print 'P  =  ',P_a,'KPa'\n",
      "print 'y1  =  ',y1_a\n",
      "print 'y2  =  ',y2_a\n",
      "\n",
      "#(b) Calculate P and (xi) , for T = 318.15K and y1 = 0.60\n",
      "\n",
      "#DEW P calculation\n",
      "y1 = 0.6;\n",
      "y2 = 1-y1;\n",
      "T = 318.15;\t\t\t#[K]\n",
      "P1_sat  =  round(math.exp(16.59158-(3643.31/(T-33.424))),2);\t\t\t#[KPa]\n",
      "P2_sat  =  round(math.exp(14.25326-(2665.54/(T-53.424))),2);\t\t\t#[KPa]\n",
      "A = round(2.771-(0.00523*T),3);\n",
      "v1 = 0.1;\t\t\t#Assumed\n",
      "v2 = 0.1;\t\t\t#Assumed\n",
      "a1 = v1;\n",
      "a2 = v2;\n",
      "i = -1;\n",
      "while(i == -1):\n",
      "    P = round(1/((y1/(a1*P1_sat))+(y2/(a2*P2_sat))),2); \n",
      "    x1 = round(y1*P/(a1*P1_sat),4);\n",
      "    x2 = 1-x1;\n",
      "    b1 = round(math.exp(A*(x2**2)),4);\n",
      "    b2 = round(math.exp(A*(x1**2)),4);\n",
      "    dt = abs(b1-a1);\n",
      "    if(dt == 0):\n",
      "        i = 0;\n",
      "        v1 = b1;\n",
      "        v2 = b2;\n",
      "        break;\n",
      "    a1 = b1;\n",
      "    a2 = b2;\n",
      "\n",
      "x1_b = x1;\n",
      "x2_b = 1-x1_b;\n",
      "P_b = P;\n",
      "v1_b = v1;\n",
      "v2_b = v2;\n",
      "print ('(b)P and [xi] for T = 318.15K and y1 = 0.60')\n",
      "print ('DEW P calculations')\n",
      "print 'P  =  ',P_b,'kPa'\n",
      "print 'x1  =  ',x1_b\n",
      "print 'x2  =  ',x2_b\n",
      "\n",
      "#(c) Calculate T and (yi) for P  =  101.33 KPa and x1 = 0.85\n",
      "\n",
      "#BUBL T calculation\n",
      "P = 101.33;\n",
      "x1 = 0.85;\n",
      "x2 = 1-x1;\n",
      "T1_sat = round((3643.31/(16.59158-math.log(P)))+33.424,2);\n",
      "T2_sat = round((2665.54/(14.25326-math.log(P)))+53.424,2);\n",
      "T = (x1*T1_sat)+(x2*T2_sat);\n",
      "a = T;\t\t\t#Initial\n",
      "i = -1;\n",
      "while(i == -1):\n",
      "    A = round(2.771-(0.00523*a),4);\n",
      "    v1 = round(math.exp(A*(x2**2)),4);\n",
      "    v2 = round(math.exp(A*(x1**2)),4);\n",
      "    P1_sat  =  round(math.exp(16.59158-(3643.31/(a-33.424))),2);\t\t\t#[KPa]\n",
      "    P2_sat  =  round(math.exp(14.25326-(2665.54/(a-53.424))),2);\t\t\t#[KPa]\n",
      "    alpha = P1_sat/P2_sat;  \n",
      "    P1_sat = round(P/((x1*v1)+(x2*v2/alpha)),2);\n",
      "    b = round((3643.31/(16.59158-math.log(P1_sat)))+33.424,2);\n",
      "    dt = abs(b-a);\n",
      "    if(dt == 0):\n",
      "        i = 0;\n",
      "        T = b;\n",
      "        break;\n",
      "    a = b;\n",
      "\n",
      "T_c = T;\n",
      "y1_c = round(x1*v1*P1_sat/P,3);\n",
      "y2_c = 1-y1_c;\n",
      "print ('(c)T and [yi] for P = 101.33kPa and x1 = 0.')\n",
      "print ('BUBL T calculations')\n",
      "print 'Temperature  =  ',T_c,'K'\n",
      "print 'y1  =  ',y1_c\n",
      "print 'y2  =  ',y2_c\n",
      "\n",
      "#(d) Calculate T and (xi) for P  =  101.3 KPa and y1 = 0.4\n",
      "P = 101.3;\n",
      "y1 = 0.4;\n",
      "y2 = 1-y1;\n",
      "T1_sat = round((3643.31/(16.59158-math.log(P)))+33.424,2);\n",
      "T2_sat = round((2665.54/(14.25326-math.log(P)))+53.424,2);\n",
      "T = (y1*T1_sat)+(y2*T2_sat);\n",
      "v1 = 1;  \t\t\t#Initially\n",
      "v2 = 1;  \t\t\t#Initially\n",
      "a = T;  \t\t\t#Initial\n",
      "i = -1;\n",
      "while(i == -1):\n",
      "    A = round(2.771-(0.00523*a),4);\n",
      "    P1_sat  =  round(math.exp(16.59158-(3643.31/(a-33.424))),2);\t\t\t#[KPa]\n",
      "    P2_sat  =  round(math.exp(14.25326-(2665.54/(a-53.424))),2);\t\t\t#[KPa]\n",
      "    alpha = P1_sat/P2_sat;\n",
      "    x1 = round((y1*P)/(v1*P1_sat),4);\n",
      "    x2 = 1-x1;\n",
      "    v1 = round(math.exp(A*(x2**2)),4);\n",
      "    v2 = round(math.exp(A*(x1**2)),4);\n",
      "    P1_sat = P*((y1/v1)+(y2*alpha/v2));\n",
      "    b = round((3643.31/(16.59158-math.log(P1_sat)))+33.424,2);\n",
      "    dt = abs(a-b);\n",
      "    if(dt == 0):\n",
      "        T = a;\n",
      "        i = 0;\n",
      "        break;\n",
      "    a = b;\n",
      "T_d = T;\n",
      "x1_d = x1;\n",
      "x2_d = x2;\n",
      "print ('(d)T and [xi] for P = 101.33kPa and y1 = 0.40')\n",
      "print ('DEW T calculations')\n",
      "print 'T  =  ',T,'K'\n",
      "print 'x1  =  ',x1_d\n",
      "print 'x2  =  ',x2_d\n",
      "\n",
      "#(e) Taz , (xi_az) and (yi_az)  for T  =  318.15K \n",
      "T  =  318.15;\n",
      "# Relative Volatility   alpha_12 = (y1/x1)/(y2/x2)\n",
      "#At Azeotrope y1 = x1 and y2 = x2 and alpha_12 = 1\n",
      "P1_sat  =  round(math.exp(16.59158-(3643.31/(T-33.424))),2);\t\t\t#[KPa]\n",
      "P2_sat  =  round(math.exp(14.25326-(2665.54/(T-53.424))),2);\t\t\t#[KPa]\n",
      "#From eqn (10.5) alpha_12 = (v1*P1_sat)/(v2*P2_sat)\n",
      "A = round(2.771-(0.00523*T),4);\n",
      "\n",
      "#When x1 = 0 v2 = 1 and v1 = math.exp(A)\n",
      "alpha_12_x10 = P1_sat*math.exp(A)/P2_sat; \n",
      "\n",
      "#When x1 = 1 v1 = 1 and v2 = math.exp(A)\n",
      "alpha_12_x11 = P1_sat/(P2_sat*math.exp(A));\n",
      "\n",
      "#But this is not Azeotrope  (at Azeotrope alpha_12 = 1)\n",
      "\n",
      "#v1_az/v2_az = (P2_sat/P1_sat) = K\n",
      "K = P2_sat/P1_sat;\n",
      "\n",
      "#ln(v1/v2) = ln(K) = A(1-(2*x1))\n",
      "x1_az = round((A-math.log(K))/(2*A),3);\n",
      "x2_az = 1-x1_az;\n",
      "y1_az = x1_az;\n",
      "y2_az = x2_az;\n",
      "v1_az = round(math.exp(A*(x2_az**2)),3);\n",
      "v2_az = round(math.exp(A*(x1_az**2)),3);\n",
      "P_az = round(v1_az*P1_sat,2);\n",
      "\n",
      "print ('Azeotropic Pressure and Azeotropic Composition for T  =  318.15K')\n",
      "print 'Azeotropic Pressure  =  ',P_az,'KPa'\n",
      "print 'x1_az',x1_az\n",
      "print 'y1_az',y1_az\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "(a)P and [yi] for T = 318.15K and x1 = 0.25\n",
        "BUBL P calculations\n",
        "P  =   73.52 KPa\n",
        "y1  =   0.282\n",
        "y2  =   0.718\n",
        "(b)P and [xi] for T = 318.15K and y1 = 0.60\n",
        "DEW P calculations\n",
        "P  =   62.89 kPa\n",
        "x1  =   0.8168\n",
        "x2  =   0.1832\n",
        "(c)T and [yi] for P = 101.33kPa and x1 = 0.\n",
        "BUBL T calculations\n",
        "Temperature  =   331.2 K\n",
        "y1  =   0.67\n",
        "y2  =   0.33\n",
        "(d)T and [xi] for P = 101.33kPa and y1 = 0.40\n",
        "DEW T calculations\n",
        "T  =   326.69 K\n",
        "x1  =   0.4598\n",
        "x2  =   0.5402\n",
        "Azeotropic Pressure and Azeotropic Composition for T  =  318.15K\n",
        "Azeotropic Pressure  =   73.71 KPa\n",
        "x1_az 0.325\n",
        "y1_az 0.325\n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 10.4  page no : 151"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from numpy import array,round\n",
      "import math \n",
      "\n",
      "# Variables\n",
      "T = 283.15;\t\t\t#[K]\n",
      "#(a) Dew Point Pressure\n",
      "#Species = [\" Methane \";\" Ethane \";\" Propane \"];\n",
      "y = array([0.1,0.2,0.7]);\n",
      "\n",
      "P1 = 6.9;\t\t\t#[bar]\n",
      "K1 = array([20,3.25,0.92]);\n",
      "x1 = round(y/K1,3);\n",
      "\n",
      "P2 = 10.34;\t\t\t#[bar]\n",
      "K2 = array([13.2,2.25,0.65]);\n",
      "x2 = round(y/K2,3);\n",
      "\n",
      "P3 = 8.7;\t\t\t#[bar]\n",
      "K3 = array([16,2.65,0.762]);\n",
      "x3 = round(y/K3,3);\n",
      "\n",
      "P = [P1,P2,P3];\n",
      "x = [x1,x2,x3];\n",
      "E1 = zeros(3);\n",
      "\n",
      "# Calculations and Results\n",
      "for i in range(3):\n",
      "    for j in range(3):\n",
      "        E1[i] = E1[i]+x[i][j];\t\t\t#Summation\n",
      "\n",
      "P_dew  =  8.7;\n",
      "Ans = [[y,K1,x1,K2,x2,K3,x3],[1,0,E1[0],0,E1[1],0,E1[2]]];\n",
      "print (    '               P = 6.9 bar      P = 10.34 bar     P = 8.7 bar')\n",
      "print '   yi      Ki     yi/Ki     Ki     yi/Ki     Ki      yi/Ki',Ans\n",
      "print ('Last Row Represents the summation')\n",
      "print 'The dew Point Pressure',P_dew,'KPa'\n",
      "\n",
      "T = 283.15;\t\t\t#[K]\n",
      "#(b) Bubble Point Pressure\n",
      "#Species = [\" Methane \";\" Ethane \";\" Propane \"];\n",
      "x = array([0.1,0.2,0.7]);\n",
      "\n",
      "P1 = 26.2;\t\t\t#[bar]\n",
      "K1 = array([5.6,1.11,0.335]);\n",
      "y1 = round(x*K1,3);\n",
      "\n",
      "P2 = 27.6;\t\t\t#[bar]\n",
      "K2 = array([5.25,1.07,0.32]);\n",
      "y2 = round(x*K2,3);\n",
      "\n",
      "P3 = 26.54;\t\t\t#[bar]\n",
      "K3 = [5.49,1.1,0.33];\n",
      "y3 = round(x*K3,3);\n",
      "\n",
      "i = 1;\n",
      "j = 1;\n",
      "P = [P1,P2,P3];\n",
      "y = [y1,y2,y3];\n",
      "E2 = zeros(3);\n",
      "for i in range(3):\n",
      "    for j in range(3):\n",
      "        E2[i] = E2[i] + y[i][j] \t\t\t#Summation\n",
      "\n",
      "P_Bubble  =  26.54;\n",
      "Ans = [[x,K1,y1,K2,y2,K3,y3],[1,0,E2[0],0,E2[1],0,E2[2]]]\n",
      "print (    '               P = 26.2 bar      P = 27.6 bar     P = 26.54 bar')\n",
      "print '   xi      Ki     xiKi     Ki     xiKi     Ki      xiKi',Ans\n",
      "print ('Last Row Represents the summation')\n",
      "print 'The Bubble Point Pressure',P_Bubble,'KPa'\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "               P = 6.9 bar      P = 10.34 bar     P = 8.7 bar\n",
        "   yi      Ki     yi/Ki     Ki     yi/Ki     Ki      yi/Ki [[array([ 0.1,  0.2,  0.7]), array([ 20.  ,   3.25,   0.92]), array([ 0.005,  0.062,  0.761]), array([ 13.2 ,   2.25,   0.65]), array([ 0.008,  0.089,  1.077]), array([ 16.   ,   2.65 ,   0.762]), array([ 0.006,  0.075,  0.919])], [1, 0, 0.82800000000000007, 0, 1.1739999999999999, 0, 1.0]]\n",
        "Last Row Represents the summation\n",
        "The dew Point Pressure 8.7 KPa\n",
        "               P = 26.2 bar      P = 27.6 bar     P = 26.54 bar\n",
        "   xi      Ki     xiKi     Ki     xiKi     Ki      xiKi [[array([ 0.1,  0.2,  0.7]), array([ 5.6  ,  1.11 ,  0.335]), array([ 0.56 ,  0.222,  0.234]), array([ 5.25,  1.07,  0.32]), array([ 0.525,  0.214,  0.224]), [5.49, 1.1, 0.33], array([ 0.549,  0.22 ,  0.231])], [1, 0, 1.016, 0, 0.96299999999999997, 0, 1.0]]\n",
        "Last Row Represents the summation\n",
        "The Bubble Point Pressure 26.54 KPa\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 10.5  page no : 152"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "import math \n",
      "\n",
      "# Variables\n",
      "z1 = 0.45;\n",
      "z2 = 0.35;\n",
      "z3 = 0.2;\n",
      "P = 110.;\t\t\t#[KPa]\n",
      "T = 353.15;\t\t\t#[K]\n",
      "P1_sat = 195.75;\t\t\t#[KPa]\n",
      "P2_sat = 97.84;\t\t\t#[KPa]\n",
      "P3_sat = 50.32;\t\t\t#[KPa]\n",
      "\n",
      "# Calculations\n",
      "#BUBL Calculation\n",
      "x1 = z1;\n",
      "x2 = z2;\n",
      "x3 = z3;\n",
      "P_BUBL = (x1*P1_sat)+(x2*P2_sat)+(x3*P3_sat);\n",
      "\n",
      "#DEW Calculation\n",
      "y1 = z1;\n",
      "y2 = z2;\n",
      "y3 = z3;\n",
      "P_Dew = 1/((y1/P1_sat)+(y2/P2_sat)+(y3/P3_sat));\n",
      "\n",
      "#Since P_Bubl<P<P_dew\n",
      "#Flash Calculation\n",
      "K1 = P1_sat/P;\n",
      "K2 = P2_sat/P;\n",
      "K3 = P3_sat/P;\n",
      "\n",
      "#Finding V from Eqn(10.17)\n",
      "#E((zi*Ki)/(1+(V*(Ki-1)))) = 1\n",
      "\n",
      "x = 0;\n",
      "F_x = (((z1*K1)/(1+((K1-1)*x)))+((z2*K2)/(1+((K2-1)*x)))+((z3*K3)/(1+((K3-1)*x)))-1);\n",
      "F_a = F_x;\n",
      "\n",
      "x = 0.9;\n",
      "F_x = (((z1*K1)/(1+((K1-1)*x)))+((z2*K2)/(1+((K2-1)*x)))+((z3*K3)/(1+((K3-1)*x)))-1);\n",
      "F_b = F_x;\n",
      "A = 0;\n",
      "B = 0.9;\n",
      "i = 1;\n",
      "while(i == 1):\n",
      "    a = A;\n",
      "    F_a = (((z1*K1)/(1+((K1-1)*a)))+((z2*K2)/(1+((K2-1)*a)))+((z3*K3)/(1+((K3-1)*a)))-1);\n",
      "    b = B;\n",
      "    F_b = (((z1*K1)/(1+((K1-1)*b)))+((z2*K2)/(1+((K2-1)*b)))+((z3*K3)/(1+((K3-1)*b)))-1);\n",
      "    x1 = ((a*F_b)-(b*F_a))/(F_b-F_a);\n",
      "    F_x1 = (((z1*K1)/(1+((K1-1)*x1)))+((z2*K2)/(1+((K2-1)*x1)))+((z3*K3)/(1+((K3-1)*x1)))-1);\n",
      "\n",
      "    if((F_a*F_x1)<0):\n",
      "        flag = 1;\n",
      "        A = a;\n",
      "        B = x1;\n",
      "    elif((F_x1*F_b)<0):\n",
      "        flag = 2;\n",
      "        A = x1;\n",
      "        B = b;  \n",
      "\n",
      "    x1_a = round(x1,1);\n",
      "    b_a = round(b,1);\n",
      "    a_a = round(a,1);\n",
      "    if(x1_a == b_a):\n",
      "        V = round(x1,4);\n",
      "        i = 0;\n",
      "        break; \n",
      "    elif(x1_a == a_a):\n",
      "        root = round(x1,4);\n",
      "        i = 0;\n",
      "        break;   \n",
      "\n",
      "# Results\n",
      "print 'Hence By solving the polynomial V  =  ',V\n",
      "L = 1-V;\n",
      "#from eqn 10.16\n",
      "#yi = (zi*Ki)/(1+(V*(Ki-1)))\n",
      "y1 = round((z1*K1)/(1+((K1-1)*V)),4);\n",
      "y2 = round((z2*K2)/(1+((K2-1)*V)),4);\n",
      "y3 = round((z3*K3)/(1+((K3-1)*V)),4);\n",
      "x1 = round(y1/K1,4);\n",
      "x2 = round(y2/K2,4);\n",
      "x3 = round(y3/K3,4);\n",
      "y = [y1, y2, y3];\n",
      "x = [x1, x2, x3];\n",
      "print 'Moles Of liquid',L\n",
      "print 'Moles Of vapor',V\n",
      "print 'Mole fraction Of liquid',x\n",
      "print 'Mole fraction Of vapor',y\n",
      "\n",
      "# note : answers might be different because of rounding off error."
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Hence By solving the polynomial V  =   0.8789\n",
        "Moles Of liquid 0.1211\n",
        "Moles Of vapor 0.8789\n",
        "Mole fraction Of liquid [0.26700000000000002, 0.38769999999999999, 0.38229999999999997]\n",
        "Mole fraction Of vapor [0.47520000000000001, 0.3448, 0.1749]\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 10.6  page no : 153"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Program To Find the Composition of Vapor and Liquid Phases\n",
      "\n",
      "from numpy import array,zeros,linspace,exp,round\n",
      "import math \n",
      "\n",
      "# Variables\n",
      "z = array([0.1,0.2,0.7]);\n",
      "K = array([10,1.76,0.52]);\n",
      "\n",
      "y_01 = zeros((10,3))\n",
      "Sum = zeros(10)\n",
      "V_01 = linspace(0.1,1,10)\n",
      "\n",
      "# Calculations\n",
      "for i in range(10):\n",
      "    for j in range(3):\n",
      "        y_01[i,:] = round((z*K)/(1+(V_01[i]*(K-1))),3);\n",
      "    Sum[i] = sum(y_01[i,:]);\n",
      "\n",
      "for i in range(10):\n",
      "    if(Sum[i+1]<1):\n",
      "        a1 = V_01[i];\n",
      "        i = -1;\n",
      "        break;\n",
      "\n",
      "V_001 = linspace(a1,a1+0.1,10)\n",
      "\n",
      "y_001 = zeros((10,3))\n",
      "for i in range(10):\n",
      "    for j in range(3):\n",
      "        y_001[i,:] = round((z*K)/(1+(V_001[i]*(K-1))),3);\n",
      "    Sum[i] = sum(y_001[i,:]);\n",
      "\n",
      "for i in range(10):\n",
      "    if(Sum[i]<1):\n",
      "        a01 = V_001[i];\n",
      "        i = -1;\n",
      "        break;\n",
      "\n",
      "V_0001 = linspace(a01,a01+0.01,10)\n",
      "\n",
      "y_0001 = zeros((10,3))\n",
      "for i in range(10):\n",
      "    for j in range(3):\n",
      "        y_0001[i,:] = round((z*K)/(1+(V_0001[i]*(K-1))),3);\n",
      "    Sum[i] = sum(y_0001[i,:]);\n",
      "\n",
      "for i in range(10):\n",
      "    if(Sum[i]<1):\n",
      "        a001 = V_0001[i];\n",
      "        i = -1;\n",
      "        break;\n",
      "\n",
      "V = a001;\n",
      "y_02 = round((z*K)/(1+(a1*(K-1))),3);\n",
      "y_03 = round((z*K)/(1+((a1+0.1)*(K-1))),3);\n",
      "y_0273 = round((z*K)/(1+(V*(K-1))),3);\n",
      "x_0273 = round(y_0273/K,3);\n",
      "\n",
      "Ans = [[z,K,y_02,y_03,y_0273,x_0273],[1,0,sum(y_02),sum(y_03),sum(y_0273),approx(sum(x_0273),2)]];\n",
      "\n",
      "# Results\n",
      "print '   z      K      y,V = 0.2  y,V = 0.3  y,V = 0.273 x,V = 0.273',Ans\n",
      "print ('NOTE : Last Row represents the summation')\n",
      "print ('Hence for V  =  0.273 E(yi)  =  0 and E(xi)  =  0')\n",
      "print 'Fraction of Vapor (V)  =  ',V\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "   z      K      y,V = 0.2  y,V = 0.3  y,V = 0.273 x,V = 0.273 [[array([ 0.1,  0.2,  0.7]), array([ 10.  ,   1.76,   0.52]), array([ 0.357,  0.306,  0.403]), array([ 0.27 ,  0.287,  0.425]), array([ 0.286,  0.291,  0.42 ]), array([ 0.029,  0.165,  0.808])], [1, 0, 1.0660000000000001, 0.98199999999999998, 0.99699999999999989, 1.002]]\n",
        "NOTE : Last Row represents the summation\n",
        "Hence for V  =  0.273 E(yi)  =  0 and E(xi)  =  0\n",
        "Fraction of Vapor (V)  =   0.277777777778\n"
       ]
      }
     ],
     "prompt_number": 2
    }
   ],
   "metadata": {}
  }
 ]
}