{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 11 - Distillation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 548 Example 11.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Mole fraction in liquid phase is : 0.854\n",
      "\n",
      "Mole fraction in vapour phase is : 0.894\n",
      "\n"
     ]
    }
   ],
   "source": [
    "p0_A=106#  #Vapour pressure of n-heptane  in kN/m**2\n",
    "p0_B=73.7#  #Vapour pressure of toluene  in kN/m**2\n",
    "P=101.3#  #Total pressure in kN/m**2\n",
    "\n",
    "xA=(P-p0_B)/(p0_A-p0_B)\n",
    "\n",
    "yA=p0_A*xA/P\n",
    "\n",
    "print\"\\nMole fraction in liquid phase is : %.3f\"%(xA)\n",
    "print\"\\nMole fraction in vapour phase is : %.3f\\n\"%(yA)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 549 Example 11.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Tr1 = 0.648   \n",
      "Pr1 = 0.021  \n",
      "\n",
      "\n",
      "c5 = 2.2687 \n",
      "c2 = 7.2970 \n",
      "c1 = -0.2966\n",
      "\n",
      "\n",
      "k9 = 10.380 \n",
      "k10 = 10.677 \n",
      "k11 = -5.1589\n",
      "\n",
      "k12 = 0.29657\n",
      "\n",
      "\n",
      "Pr = 0.043   \n",
      "\n",
      "P0 = 203.75 kN/m**2\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from math import log,exp\n",
    "\n",
    "Pc=4700#  #Critical pressure in kN/m**2\n",
    "Tc=508.1#  #critical temperature in K\n",
    "p1=100.666#  #in kN/m**2\n",
    "T1=329.026#  #in K\n",
    "T=350.874#  #in K\n",
    "\n",
    "Tr1=T1/Tc\n",
    "Pr1=p1/Pc\n",
    "print\"\\nTr1 = %.3f   \\nPr1 = %.3f  \\n\"%(Tr1,Pr1)\n",
    "\n",
    "c5=-35+(36/Tr1)+(42*log(Tr1))-(Tr1**6)\n",
    "c2=((0.315*c5)-log(Pr1))/((0.0838*c5)-log(Tr1))\n",
    "c1=0.0838*(3.758-c2)\n",
    "print\"\\nc5 = %.4f \\nc2 = %.4f \\nc1 = %.4f\\n\"%(c5,c2,c1)\n",
    "\n",
    "k9=-35*c1\n",
    "k10=-36*c1\n",
    "k11=(42*c1)+c2\n",
    "k12=-c1\n",
    "\n",
    "print\"\\nk9 = %.3f \\nk10 = %.3f \\nk11 = %.4f\"%(k9,k10,k11)\n",
    "print\"\\nk12 = %.5f\\n\"%(k12)\n",
    "\n",
    "Tr=T/Tc\n",
    "Pr=exp(k9-(k10/Tr)+(k11*log(Tr))+(k12*Tr**6))\n",
    "p0=Pc*Pr\n",
    "print\"\\nPr = %.3f   \\n\\nP0 = %.2f kN/m**2\\n\"%(Pr,p0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 549 Exaple  11.3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "P0_B = 62.1 kN/m**2\n",
      "P0_T = 22.5 kN/m**2\n",
      "\n",
      "\n",
      "pB = 31.05 kN/m**2 \n",
      "pT = 11.254\n",
      "\n",
      "\n",
      "yB = 0.734 \n",
      "yT = 0.266\n",
      "\n"
     ]
    }
   ],
   "source": [
    "k1_B=6.90565\n",
    "k2_B=1211.033\n",
    "k3_B=220.79\n",
    "\n",
    "k1_T=6.95334\n",
    "k2_T=1343.943\n",
    "k3_T=219.377\n",
    "\n",
    "t=338-273#  #in Degree celsius\n",
    "P=101.3#  #in kN/m**2\n",
    "xB=0.5\n",
    "xT=0.5\n",
    "\n",
    "def antoine(k1,k2,k3,T):\n",
    "    p0=10**(k1-(k2/(T+k3)))\n",
    "    return p0\n",
    "\n",
    "p0_B=antoine(k1_B,k2_B,k3_B,t)*101.325/760\n",
    "p0_T=antoine(k1_T,k2_T,k3_T,t)*101.325/760\n",
    "\n",
    "print\"\\nP0_B = %.1f kN/m**2\\nP0_T = %.1f kN/m**2\\n\"%(p0_B,p0_T)\n",
    "\n",
    "pB=xB*p0_B\n",
    "pT=xT*p0_T\n",
    "print\"\\npB = %.2f kN/m**2 \\npT = %.3f\\n\"%(pB,pT)\n",
    "\n",
    "p=pB+pT\n",
    "yB=pB/p\n",
    "yT=pT/p\n",
    "print\"\\nyB = %.3f \\nyT = %.3f\\n\"%(yB,yT)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 550 Example 11.4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\tT(K)\n",
      "373 \t353 \t363 \t365 \t365.1 \t\n",
      "\n",
      "\t\n",
      "p0 B:\n",
      "180.051\t101.013\t136.121\t144.159\t144.570\t\n",
      "\t\n",
      "p0 T:\n",
      "\n",
      "74.170\t38.825\t54.227\t57.825\t58.010\t\n",
      "\n",
      "\t\n",
      "pB:\n",
      "\n",
      "90.025\t50.507\t68.060\t72.079\t72.285\t\n",
      "\t\n",
      "pT:\n",
      "\n",
      "37.085\t19.412\t27.113\t28.912\t29.005\t\n",
      "\t\n",
      "pB+pT:\n",
      "\n",
      "127.110\t69.919\t95.174\t100.992\t101.290\t\n",
      "\n",
      "Boiling temperature is 365.100   K\n"
     ]
    }
   ],
   "source": [
    "def antoine(k1,k2,k3,T):\n",
    "    p0=10**(k1-(k2/(T+k3-273)))\n",
    "    return p0\n",
    "\n",
    "\n",
    "k1_B=6.90565\n",
    "k2_B=1211.033\n",
    "k3_B=220.79\n",
    "\n",
    "k1_T=6.95334\n",
    "k2_T=1343.943\n",
    "k3_T=219.377\n",
    "\n",
    "xB=0.5\n",
    "xT=0.5\n",
    "\n",
    "print\"\\n\\tT(K)\"\n",
    "T=[373, 353, 363, 365, 365.1]\n",
    "for t in T:\n",
    "    print t,'\\t',\n",
    "\n",
    "print\n",
    "i=0\n",
    "\n",
    "p0_B=[];p0_T=[];pB=[];pT=[];p=[]\n",
    "while i<5:\n",
    "    p0_B.append(antoine(k1_B,k2_B,k3_B,T[(i)])*101.325/760)\n",
    "    p0_T.append(antoine(k1_T,k2_T,k3_T,T[(i)])*101.325/760)\n",
    "    pB.append(xB*p0_B[(i)])\n",
    "    pT.append(xT*p0_T[(i)])\n",
    "    p.append(pB[(i)]+pT[(i)])\n",
    "    i=i+1\n",
    "\n",
    "print\"\\n\\t\\np0 B:\"\n",
    "for pp in p0_B:\n",
    "    print \"%0.3f\\t\"%pp,\n",
    "print\"\\n\\t\\np0 T:\"\n",
    "print \n",
    "for pp in p0_T:\n",
    "    print \"%0.3f\\t\"%pp,\n",
    "print\n",
    "print\"\\n\\t\\npB:\"\n",
    "print \n",
    "for pp in pB:\n",
    "    print \"%0.3f\\t\"%pp,\n",
    "\n",
    "print\"\\n\\t\\npT:\"\n",
    "print \n",
    "for pp in pT:\n",
    "    print \"%0.3f\\t\"%pp,\n",
    "\n",
    "print\"\\n\\t\\npB+pT:\"\n",
    "print \n",
    "for pp in p:\n",
    "    print \"%0.3f\\t\"%pp,\n",
    "\n",
    "print \n",
    "#since total pressure at 365.1 K is nearly same as 101.3 kPa\n",
    "print\"\\nBoiling temperature is %.3f   K\"%(T[4])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 551 Example 11.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "T(K) : \n",
      "373.2 \t371.2 \t371.7 \t371.9 \t372 \t\n",
      "p0 B:\n",
      "181.028525362 \t171.432167447 \t173.793590263 \t174.745148387 \t175.222430638 \t\n",
      "\n",
      "p0 T:\n",
      "74.6211877248 \t70.2066082135 \t71.2902696145 \t71.7274367157 \t71.9468173127 \t\n",
      "\n",
      "xB:\n",
      "0.279790159583 \t0.2954521357 \t0.291437675713 \t0.289850679504 \t0.289061165375 \t\n",
      "\n",
      "xT:\n",
      "0.678761643232 \t0.721442059214 \t0.71047564098 \t0.706145407102 \t0.703992224977 \t\n",
      "\n",
      "x = xB+xT:\n",
      "0.958551802815 \t1.01689419491 \t1.00191331669 \t0.995996086606 \t0.993053390352 \t\n",
      "\n",
      "Dew point can be taken as 372.000   K\n"
     ]
    }
   ],
   "source": [
    "def antoine(k1,k2,k3,T):\n",
    "    p0=10**(k1-(k2/(T+k3-273)))\n",
    "    return p0\n",
    "\n",
    "k1_B=6.90565\n",
    "k2_B=1211.033\n",
    "k3_B=220.79\n",
    "\n",
    "k1_T=6.95334\n",
    "k2_T=1343.943\n",
    "k3_T=219.377\n",
    "\n",
    "#Since total pressure is 101.3 kPa, pB=pT\n",
    "pB=50.65\n",
    "pT=50.65\n",
    "\n",
    "print\"\\nT(K) : \"\n",
    "T=[373.2 ,371.2 ,371.7 ,371.9, 372]\n",
    "for t in T:print t,'\\t',\n",
    "\n",
    "\n",
    "i=0\n",
    "\n",
    "p0_B=[];p0_T=[];xB=[];xT=[];x=[]\n",
    "while i<5:\n",
    "    p0_B.append(antoine(k1_B,k2_B,k3_B,T[(i)])*101.325/760)\n",
    "    p0_T.append(antoine(k1_T,k2_T,k3_T,T[(i)])*101.325/760)\n",
    "    xB.append(pB/p0_B[(i)])\n",
    "    xT.append(pT/p0_T[(i)])\n",
    "    x.append(xB[(i)]+xT[(i)])\n",
    "    i=i+1\n",
    "\n",
    "\n",
    "print\"\\np0 B:\"\n",
    "for p in p0_B: print p,'\\t',\n",
    "print    \n",
    "print\"\\np0 T:\"\n",
    "for p in p0_T:print p,'\\t',\n",
    "print    \n",
    "print\"\\nxB:\"\n",
    "for xx in xB:print xx,'\\t',\n",
    "print\n",
    "print\"\\nxT:\"\n",
    "for xx in xT:print xx,'\\t',\n",
    "print\n",
    "print\"\\nx = xB+xT:\"\n",
    "for xx in x:print xx,'\\t',\n",
    "print \n",
    "#Since last value is closer to 1, 372 K is the required dew point\n",
    "print\"\\nDew point can be taken as %.3f   K\"%(T[4])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 557 Example 11.6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "For slope = -3\n",
      "\n",
      "x=0.42 \t y=0.63\n",
      "\n",
      "\n",
      "for x=0.42 \t T=366.5\n"
     ]
    }
   ],
   "source": [
    "#Fractional vapourisation   f=V/F\n",
    "f=0.25\n",
    "\n",
    "slope=(1-f)/-f\n",
    "\n",
    "#from fig 11.9, a construction is made\n",
    "print\"\\nFor slope = %d\"%(slope)\n",
    "print\"\\nx=0.42 \\t y=0.63\\n\"\n",
    "\n",
    "#from fig. 11.10,temperature corresponding to x=0.42 is noted\n",
    "print\"\\nfor x=0.42 \\t T=366.5\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 564 Example 11.7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\npncAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f42ec286550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      " As the least point on equilibrium Line xt-7 correspond to reboiler, and there will be seven plates\n"
     ]
    }
   ],
   "source": [
    "from scipy.optimize import fsolve\n",
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot,title,xlabel,ylabel,show\n",
    "from numpy import arange\n",
    "\n",
    "\n",
    "# Find Number of theoretical plates needed and the position of entry for the feed\n",
    "\n",
    "F = 100#                #Feed [kmol]\n",
    "\n",
    "def Feed(x):\n",
    "    f=[]\n",
    "    f.append(x[0]+x[1]-100)                    #Overall mass Balance\n",
    "    f.append(0.9*x[0]+.1*x[1]-(100*.4))#        #A balance on MVC,benzene\n",
    "    return f\n",
    "x = [50, 50]\n",
    "product = fsolve(Feed,x)\n",
    "\n",
    "#Using notation of figure 11.13\n",
    "Ln = 3*product[0]\n",
    "Vn = Ln + product[0]\n",
    "\n",
    "#Reflux to the plate\n",
    "Lm = Ln + F\n",
    "Vm = Lm - product[1]\n",
    "\n",
    "#Equilibrium Composition\n",
    "xt = .79\n",
    "yt = .9\n",
    "#From Top eqm line\n",
    "yt1 = (Ln/Vn)*xt + (product[0]/Vn)\n",
    "xt1=.644#        #Thus from Eqm curve for yt1\n",
    "#From Top eqm line\n",
    "yt2 = (Ln/Vn)*xt1 + (product[0]/Vn)\n",
    "xt2=.492#        #Thus from Eqm curve for yt2\n",
    "#From Top eqm line\n",
    "yt3 = (Ln/Vn)*xt2 + (product[0]/Vn)\n",
    "xt3=.382#        #Thus from Eqm curve for yt3\n",
    "#From II Eqm Line\n",
    "yt4 = (Lm/Vm)*xt3 - (product[1]/Vm)*.1\n",
    "xt4=.2982#        #Thus from Eqm curve for yt4\n",
    "#From II Eqm Line\n",
    "yt5 = (Lm/Vm)*xt4 - (product[1]/Vm)*.1\n",
    "xt5=.208#        #Thus from Eqm curve for yt5\n",
    "#From II Eqm Line\n",
    "yt6 = (Lm/Vm)*xt5 - (product[1]/Vm)*.1\n",
    "xt6=.120#        #Thus from Eqm curve for yt6\n",
    "#From II Eqm Line\n",
    "yt7 = (Lm/Vm)*xt6 - (product[1]/Vm)*.1\n",
    "xt7=.048#        #Thus from Eqm curve for yt7\n",
    "\n",
    "#Equilibrium Data\n",
    "y=[0, yt7 ,yt6 ,yt5 ,yt4 ,yt3 ,yt2 ,yt1 ,yt]\n",
    "x=[0, xt7 ,xt6 ,xt5 ,xt4 ,xt3 ,xt2 ,xt1, xt]\n",
    "#Top Equilibrium Line equation 11.35\n",
    "x1 = arange(0,.79,100)\n",
    "y1 = (Ln/Vn)*x1 + (product[0]/Vn)\n",
    "#Equilibrium Line equation 11.37\n",
    "x2 = arange(0.048,.44,100)\n",
    "y2 = (Lm/Vm)*x2 - (product[1]/Vm)*.1\n",
    "\n",
    "plot(x,y,x1,y1,x2,y2)\n",
    "title(\"Lewis-Sorel Method\")\n",
    "xlabel( \"Mole fraction of C6H6 in Liquid (x)\")\n",
    "ylabel( \"Mole Fraction C6H6 in Vapor (y)\")\n",
    "show()\n",
    "print\"\\n\\n As the least point on equilibrium Line xt-7 correspond to reboiler, and there will be seven plates\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 567 Example 11.8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f42ec32b4d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f42ccf88a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      " The Number of stages are then counted highlighted points that is number of plates required as 7\n"
     ]
    }
   ],
   "source": [
    "from scipy.optimize import fsolve\n",
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot,title,xlabel,ylabel,show\n",
    "from numpy import arange\n",
    "\n",
    "\n",
    "# Find Number of theoretical plates needed and the position of entry for the feed by mccabe thiele method\n",
    "\n",
    "F = 100#                #Feed [kmol]\n",
    "\n",
    "def Feed(x):\n",
    "    f=[]\n",
    "    f.append(x[0]+x[1]-100)#                    #Overall mass Balance\n",
    "    f.append(0.9*x[0]+.1*x[1]-(100*.4))        #A balance on MVC,benzene\n",
    "    return f\n",
    "x = [50, 50]\n",
    "product = fsolve(Feed,x)\n",
    "\n",
    "#Using notation of figure 11.13\n",
    "Ln = 3*product[0]\n",
    "Vn = Ln + product[0]\n",
    "\n",
    "#Reflux to the plate\n",
    "Lm = Ln + F\n",
    "Vm = Lm - product[1]\n",
    "\n",
    "#Equilibrium Data\n",
    "y=[0, .127, .252 ,.379 ,.498, .594, .708, .818, .9, 1]\n",
    "x=[0 ,.048, .12, .208, .298, .382 ,.492, .644, .79, 1]\n",
    "#Diagnol Line\n",
    "y3 = [0, 1]\n",
    "x3 = [0 ,1]\n",
    "#Top Equilibrium Line equation 11.35\n",
    "x1 = arange(0,.985,100)\n",
    "y1 = (Ln/Vn)*x1 + (product[0]/Vn)\n",
    "#Equilibrium Line equation 11.37\n",
    "x2 = arange(0.048,.44,100)\n",
    "y2 = (Lm/Vm)*x2 - (product[1]/Vm)*.1\n",
    "\n",
    "#Setting initial point A x =  .985 at top eqm line\n",
    "xm = [.985, .965, .965, .92 ,.92 ,.825 ,.825 ,.655 ,.655 ,.44 ,.44 ,.255 ,.255 ,.125 ,.125 ,.048]\n",
    "ym = [.985 ,.985, .965, .965, .92 ,.92 ,.825 ,.825 ,.655 ,.655 ,.44 ,.44 ,.255, .255, .125, .125]\n",
    "xp = [.985 ,.965 ,.92 ,.825, .655, .44 ,.255 ,.125 ,.048]\n",
    "yp = [.985, .965 ,.92 ,.825 ,.655 ,.44, .255, .125, .048]\n",
    "plot(x,y,x3,y3,x1,y1,x2,y2,xm,ym)\n",
    "title(\"Mccabe Thiele Method\")\n",
    "xlabel( \"Mole fraction of C6H6 in Liwuid (x)\")\n",
    "ylabel( \"Mole Fraction C6H6 in Vapor (y)\")\n",
    "show()\n",
    "#for i in range(1:8):\n",
    "plot(xp[1:8],yp[1:8])\n",
    "title(\"Equilibrium plot\")\n",
    "xlabel(\"mole fraction C6H6 in liquid(x)\")\n",
    "ylabel(\"mole fractionC6H6 in vapour(y)\")\n",
    "show()\n",
    "\n",
    "print\"\\n\\n The Number of stages are then counted highlighted points that is number of plates required as 7\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 574 Example 11.9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "No. of theoretical plates in column is : 4\n",
      "\n",
      "Minimum reflux ratio is 1.32\n",
      "\n",
      "\n",
      "Using Graphical construction with yf=0.61\n",
      "\n",
      "Minimum reflux ratio is 1.38\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from math import log\n",
    "\n",
    "xA_d=0.9\n",
    "xA_s=0.1\n",
    "xB_d=1-xA_d\n",
    "xB_s=1-xA_s\n",
    "\n",
    "a=2.4\n",
    "xd=0.9\n",
    "xf=0.4\n",
    "xw=0.1\n",
    "\n",
    "n=(log(xA_d*xB_s/(xB_d*xA_s))/log(a))-1\n",
    "print\"\\nNo. of theoretical plates in column is : %d\"%(n)\n",
    "\n",
    "Rm=((xd/xf)-(a*((1-xd)/(1-xf))))/(a-1)\n",
    "print\"\\nMinimum reflux ratio is %.2f\\n\"%(Rm)\n",
    "\n",
    "yf=0.61\n",
    "print\"\\nUsing Graphical construction with yf=0.61\\n\"\n",
    "Rmin=(xd-yf)/(yf-xf)\n",
    "print\"Minimum reflux ratio is %.2f\\n\"%(Rmin)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 587 Example 11.10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Rm = 0.323\n",
      "\n",
      " Since the actual reflux is 8 pre cent above the minimum NA = 1.08*NmA = 437.400\n",
      "\n",
      " Number of plates to be  required are 8.333\n",
      "\n",
      " Heat input to the boiler per unit mass of bottom product is 791.000\n",
      "\n",
      " Heat input to the boiler = 616.980 kW\n",
      "\n",
      " Condenser duty = 371 kW\n"
     ]
    }
   ],
   "source": [
    "from __future__ import division\n",
    "#From material balance\n",
    "    #  D+W=1\n",
    "    #  0.995D+0.1W=1*3\n",
    "\n",
    "A=[[1, 1],[0.995, 0.1]]\n",
    "B=[[1],[3]]\n",
    "Rm = (1952-1547)/(1547-295)\n",
    "print\"\\n Rm = %.3f\"%(Rm)\n",
    "NA = 1.08*405\n",
    "print\"\\n Since the actual reflux is 8 pre cent above the minimum NA = 1.08*NmA = %.3f\"%(NA)\n",
    "N = 5/0.6\n",
    "print\"\\n Number of plates to be  required are %.3f\"%(5/0.6)\n",
    "\n",
    "Qb_W = 582 - (-209)\n",
    "print\"\\n Heat input to the boiler per unit mass of bottom product is %.3f\"%(Qb_W)\n",
    "print\"\\n Heat input to the boiler = %.3f kW\"%(791*0.78)\n",
    "print\"\\n Condenser duty = %d kW\"%((1984-296)*0.22)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 590 Example 11.11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "D = 41.7    W = 48.3\n",
      "\n",
      "From the enthalpy data and the reflux ratio, the upper pole point M is located as shown in Figure.\n",
      "Points F and S are located,such that FS/FF = 10.\n",
      "MF is Joined and extended to cut NS**A at O, the immediate pole point.\n",
      "The number of stages required is then obtained from the figure and\n",
      "13 theoretical stages are required\n"
     ]
    }
   ],
   "source": [
    "from numpy import mat\n",
    "\n",
    "#    F is feed\n",
    "#    D is distillate\n",
    "#    W is waste\n",
    "#    S is sidestream\n",
    "\n",
    "F=100\n",
    "S=10\n",
    "\n",
    "#Mass fractions of CCl4 in various streams\n",
    "xf=0.5\n",
    "xd=0.95\n",
    "xw=0.05\n",
    "xs=0.8\n",
    "\n",
    "#    D + W = 100-10\n",
    "#    0.95D + 0.00W = 50-8\n",
    "A=mat([[1,1],[0.95,0.05]])\n",
    "B=mat([[90],[42]])\n",
    "x=(A**-1)*B\n",
    "print\"\\nD = %.1f    W = %.1f\\n\"%(x[0],x[1])\n",
    "\n",
    "print \"From the enthalpy data and the reflux ratio, the upper pole point M is located as shown in Figure.\"\n",
    "\n",
    "print \"Points F and S are located,such that FS/FF = 10.\"\n",
    "\n",
    "print \"MF is Joined and extended to cut NS**A at O, the immediate pole point.\"\n",
    "print \"The number of stages required is then obtained from the figure and\"\n",
    "print\"13 theoretical stages are required\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 595 Example 11.12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "   R          Fi            xs       Db   \n",
      "\n",
      " 0.85        0.405         0.55       0.0\n",
      "\n",
      " 1.00        0.375         0.50       20.0\n",
      "\n",
      " 1.50        0.300         0.37       47.4\n",
      "\n",
      " 2.00        0.250         0.20       63.6\n",
      "\n",
      " 3.00        0.188         0.07       70.4\n",
      "\n",
      " 4.00        0.150         0.05       71.4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAf8PokWS6grUuJQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f949a715a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " The area under the Db vs R curve is given by 96 kmol\n",
      "\n",
      " Heat to be supplied to provide the reflux,Qr is approximately 384.0 MJ\n",
      "\n",
      " Heat to be supplied to provide the reflux per kmol of product is then 5.32 MJ\n",
      "\n",
      " Total heat = 9.32 MJ/kmol product\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot,title,xlabel,ylabel,show\n",
    "\n",
    "R = [0.85, 1.0, 1.5, 2.0, 3.0 ,4.0]#    #Reflux ratio\n",
    "xd = 0.75#                         #top concentration of alcohol\n",
    "xs = [0.55 ,0.50, 0.37 ,0.20 ,0.075 ,0.05]##From the graph fig.11.35 page-596\n",
    "Db = [0]\n",
    "\n",
    "print\"\\n   R          Fi            xs       Db   \"\n",
    "i=0;Fi=[]\n",
    "while i<=5:\n",
    "    Fi.append(xd/(R[i] + 1))\n",
    "    if i>0:\n",
    "        Db.append(100*(xs[0]-xs[i])/(xd-xs[i]))\n",
    "    \n",
    "    print\"\\n %.2f        %.3f         %.2f       %.1f\"%(R[(i)],Fi[(i)],xs[(i)],Db[(i)])\n",
    "    i=i+1\n",
    "\n",
    "plot(R,Db)\n",
    "xlabel(\"Reflux ratio(R)\")\n",
    "ylabel(\"Product Db (kmol)\")\n",
    "show()\n",
    "print\"\\n The area under the Db vs R curve is given by 96 kmol\"\n",
    "Hav = 4000#            #average latent heat in kJ/kmol\n",
    "Qr = 96*Hav/1000\n",
    "print\"\\n Heat to be supplied to provide the reflux,Qr is approximately %.1f MJ\"%(Qr)\n",
    "print\"\\n Heat to be supplied to provide the reflux per kmol of product is then %.2f MJ\"%(380/71.4)\n",
    "print\"\\n Total heat = %.2f MJ/kmol product\"%(5.32+4.0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 596 Example 11.13"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " xs      xd   (xd-xs)   1/(xd-xs)\n",
      "\n",
      "0.55 \t0.78 \t0.23 \t4.348\n",
      "0.5 \t0.775 \t0.275 \t3.636\n",
      "0.425 \t0.77 \t0.345 \t2.899\n",
      "0.31 \t0.76 \t0.45 \t2.222\n",
      "0.225 \t0.75 \t0.525 \t1.905\n",
      "0.105 \t0.74 \t0.635 \t1.575\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nv4hICfp/ZesktB7mgUMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f07c5ec1e50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Average composition is 0.77 kmol\n",
      "\n",
      "Heat required to produce reflux per kmol : 8400 kJ\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from numpy import nditer,exp\n",
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot,title,xlabel,ylabel,show\n",
    "\n",
    "xs=[0.55,0.5,0.425,0.31,0.225,0.105]\n",
    "xd=[0.78,0.775,0.77,0.76,0.75,0.74]\n",
    "differ=[]\n",
    "for m,n in nditer([xd,xs]):\n",
    "    differ.append(m-n)\n",
    "reci=[]\n",
    "for i in range(0,6):\n",
    "    reci.append(1/(xd[(i)]-xs[(i)]))\n",
    "\n",
    "\n",
    "m=[xs, xd, differ, reci]\n",
    "print\"\\n xs      xd   (xd-xs)   1/(xd-xs)\\n\"\n",
    "for a,b,c,d in nditer([xs,xd,differ,reci]):\n",
    "    print a,'\\t',b,'\\t',c,'\\t%0.3f'%d,\n",
    "    print \n",
    "\n",
    "plot(xs,reci)\n",
    "title('Graphical integration')\n",
    "xlabel('xs')\n",
    "ylabel('1/xd-xs)')\n",
    "show()\n",
    "#Area under the curve is calculated and is found to be 1.1\n",
    "\n",
    "#logdiv = S1/S2 = area under the curve\n",
    "logdiv=1.1\n",
    "S1=100#           #Assume\n",
    "div=exp(logdiv)\n",
    "S2=S1/div\n",
    "Db=S1-S2#        #Product obtained\n",
    "amt=xs[0]*S1-(xs[5]*S2)\n",
    "avg=amt/Db\n",
    "\n",
    "print\"\\nAverage composition is %.2f kmol\\n\"%(avg)\n",
    "\n",
    "L=4000#         #latent heat\n",
    "R=2.1\n",
    "\n",
    "h=R*L\n",
    "print\"Heat required to produce reflux per kmol : %d kJ\\n\"%(h)    \n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 601 Example 11.14"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " D = 55.56 kmol & W = 44.44 kmol\n",
      "\n",
      " Let us assume that the distillate contains 0.6 mole per cent meta and 1.4 mole per cent para\n",
      "\n",
      " Component            Feed                       Distillate                 Bottoms         \n",
      "\n",
      "               (kmol)   (mole per cent)     (kmol)  (mole per cent)   (kmol)    (mole per cent)  \n",
      "\n",
      " Ortho        60.000      60.00                 54.44        98.00            5.56          12.50         \n",
      "\n",
      " Meta          4.000      4.00                  0.33        0.60            3.69          8.30         \n",
      "\n",
      " Para         36.000      36.00                 0.78        1.40            35.20          79.20        \n",
      "\n",
      "          plate compositions below the feed plate:\n",
      "\n",
      " Component           xs            axs           ys          x1              ax1          y1           x2\n",
      "\n",
      "     o              0.125           0.212          0.193       0.185         0.315        0.272        0.255\n",
      "\n",
      "     m              0.083           0.096          0.087       0.170         0.198        0.171        0.244\n",
      "\n",
      "     p              0.792           0.792          0.719       0.645         0.645        0.557        0.501\n",
      "\n",
      "                    1.000           1.101          1.000       1.000         1.157        1.000        1.000\n",
      "\n",
      " Component       ax2            y2               x3              ax3              y3              x4            ax4\n",
      "\n",
      "     o           0.433           0.356          0.185       0.315         0.272        0.185        0.315\n",
      "\n",
      "     m           0.083           0.096          0.087       0.170         0.198        0.171        0.244\n",
      "\n",
      "     p           0.792           0.792          0.719       0.645         0.645        0.557        0.501\n",
      "\n",
      " Component      y4                x5          ax5          y5          x6          ax6            y6\n",
      "\n",
      "     o           0.272           0.185          0.315       0.272         0.185        0.315        0.272\n",
      "\n",
      "     m           0.171           0.170          0.198       0.171         0.170        0.198        0.171\n",
      "\n",
      "     p           0.557           0.645          0.645       0.557         0.645        0.645        0.557\n",
      "\n",
      " Component      x7                ax7          y7        x8           ax8         y8            x9\n",
      "\n",
      "     o           0.185           0.315          0.272       0.252         0.428        0.272        0.252\n",
      "\n",
      "     m           0.170           0.198          0.171       0.232         0.269        0.171        0.232\n",
      "\n",
      "     p           0.645           0.645          0.557       0.877         0.877        0.557        0.877\n",
      "\n",
      " Component         x7            ax7           y7           x8          ax8           y8         x9\n",
      "\n",
      "     o             0.272           0.185          0.315       0.272         0.185        0.315        0.272\n",
      "\n",
      "     m             0.171           0.170          0.198       0.171         0.170        0.198        0.171\n",
      "\n",
      "     p             0.557           0.645          0.645       0.557         0.645        0.645        0.557\n"
     ]
    }
   ],
   "source": [
    "from scipy.optimize import fsolve\n",
    "from sympy import symbols,solve\n",
    "\n",
    "xdo = 0.98#               #per cent of ortho top product\n",
    "xwo = 0.125#              #per cent of ortho bottom product\n",
    "\n",
    "def product(x):\n",
    "    f=[]\n",
    "    f.append(100 - x[0] - x[1])#      #x(1) is D and x(2) is W\n",
    "    f.append(60 - x[0]*xdo - x[1]*xwo)\n",
    "    return f\n",
    "x = [0,0]\n",
    "y = fsolve(product,x)\n",
    "print\"\\n D = %.2f kmol & W = %.2f kmol\"%(y[0],y[1])\n",
    "\n",
    "print\"\\n Let us assume that the distillate contains 0.6 mole per cent meta and 1.4 mole per cent para\"\n",
    "print\"\\n Component            Feed                       Distillate                 Bottoms         \"\n",
    "print\"\\n               (kmol)   (mole per cent)     (kmol)  (mole per cent)   (kmol)    (mole per cent)  \"\n",
    "print\"\\n Ortho        %.3f      %.2f                 %.2f        %.2f            %.2f          %.2f         \"%(60,60,y[0]*0.98,98,y[1]*0.125,12.5)\n",
    "print\"\\n Meta          %.3f      %.2f                  %.2f        %0.2f            %.2f          %.2f         \"%(4,4,y[0]*0.006,0.6,y[1]*0.083,8.3)\n",
    "print\"\\n Para         %.3f      %.2f                 %.2f        %.2f            %.2f          %.2f        \"%(36,36,y[0]*0.014,1.4,y[1]*0.792,79.2)\n",
    "\n",
    "ao = 1.7#             #relative volatility of ortho relative to para\n",
    "am = 1.16#            #relative volatility of meta relative to para\n",
    "ap =1#                #relative volatility of para w.r.t. to itself\n",
    "xso = 0.125\n",
    "xsm = 0.083\n",
    "xsp = 0.792\n",
    "xwo = 0.125\n",
    "xwp = 0.083\n",
    "xwm = 0.792\n",
    "yso = ao*xso/(ao*xso+ap*xsp+am*xsm)\n",
    "ysm = am*xsm/(ao*xso+ap*xsp+am*xsm)\n",
    "ysp = ap*xsp/(ao*xso+ap*xsp+am*xsm)\n",
    "#Equations of operating lines\n",
    "#Above the feed point\n",
    "Ln = 5*y[0]#          #Liquid downflow\n",
    "Vn = 6*y[0]#          #Vapour up\n",
    "#Assuming the feed is liquid at its boiling point\n",
    "F = 100#           #feed\n",
    "Lm = Ln+F#         #liquid downflow\n",
    "Vm = Lm-y[1]#      #Vapour up\n",
    "x1o = symbols('x1o')\n",
    "x11 = solve(yso - (Lm/Vm)*x1o + (y[1]/Vm)*xwo)[0]\n",
    "x1p = symbols('x1p')\n",
    "x12 = solve(ysp - (Lm/Vm)*x1p + (y[1]/Vm)*xwp)[0]\n",
    "x1m = symbols('x1m')\n",
    "x13 = solve(ysm - (Lm/Vm)*x1m + (y[1]/Vm)*xwm)[0]\n",
    "x1 = [x11, x13, x12]\n",
    "ax1 = [ao*x11, am*x13, ap*x12]\n",
    "y1 = [ax1[0]/(ax1[0]+ax1[1]+ax1[2]), ax1[1]/(ax1[0]+ax1[1]+ax1[2]), ax1[2]/(ax1[0]+ax1[1]+ax1[2])]\n",
    "x2o = symbols('x2o')\n",
    "x21 = solve(y1[0] - (Lm/Vm)*x2o + (y[1]/Vm)*xwo)[0]\n",
    "x2p = symbols('x2p')\n",
    "x22 = solve(y1[2] - (Lm/Vm)*x2p + (y[1]/Vm)*xwp)[0]\n",
    "x2m = symbols('x2m')\n",
    "x23 = solve(y1[1] - (Lm/Vm)*x2m + (y[1]/Vm)*xwm)[0]\n",
    "x2 = [x21, x23, x22]\n",
    "print\"\\n          plate compositions below the feed plate:\"\n",
    "print\"\\n Component           xs            axs           ys          x1              ax1          y1           x2\"\n",
    "print\"\\n     o              %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(xso,ao*xso,yso,x1[0],ax1[0],y1[0],x2[0])\n",
    "print\"\\n     m              %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(xsm,am*xsm,ysm,x1[1],ax1[1],y1[1],x2[1])\n",
    "print\"\\n     p              %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(xsp,ap*xsp,ysp,x1[2],ax1[2],y1[2],x2[2])\n",
    "print\"\\n                    %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(xso+xsm+xsp,ao*xso+am*xsm+ap*xsp,yso+ysm+ysp,x1[0]+x1[1]+x1[2],ax1[0]+ax1[1]+ax1[2],y1[0]+y1[1]+y1[2],x2[0]+x2[1]+x2[2])\n",
    "\n",
    "\n",
    "\n",
    "ax2 = [ao*x2[0], am*x2[1], ap*x2[2]]\n",
    "y2 = [ax2[0]/(ax2[0]+ax2[1]+ax2[2]) ,ax2[1]/(ax2[0]+ax2[1]+ax2[2]), ax2[2]/(ax2[0]+ax2[1]+ax2[2])]\n",
    "x3o = symbols('x3o')\n",
    "x31 = solve(yso - (Lm/Vm)*x3o + (y[1]/Vm)*xwo)[0]\n",
    "x3p = symbols('x3p')\n",
    "x32 = solve(ysp - (Lm/Vm)*x3p + (y[1]/Vm)*xwp)[0]\n",
    "x3m = symbols('x3m')\n",
    "x33 = solve(ysm - (Lm/Vm)*x3m + (y[1]/Vm)*xwm)[0]\n",
    "x3 = [x31, x33, x32]\n",
    "\n",
    "ax3 = [ao*x3[0], am*x3[1], ap*x3[2]]\n",
    "y3 = [ax3[0]/(ax3[0]+ax3[1]+ax3[2]), ax3[1]/(ax3[0]+ax3[1]+ax3[2]), ax3[2]/(ax3[0]+ax3[1]+ax3[2])]\n",
    "x4o = symbols('x4o')\n",
    "x41 = solve(yso - (Lm/Vm)*x4o + (y[1]/Vm)*xwo)[0]\n",
    "x4p = symbols('x4p')\n",
    "x42 = solve(ysp - (Lm/Vm)*x4p + (y[1]/Vm)*xwp)[0]\n",
    "x4m = symbols('x4m')\n",
    "x43 = solve(ysm - (Lm/Vm)*x4m + (y[1]/Vm)*xwm)[0]\n",
    "x4 = [x41, x43, x42]\n",
    "\n",
    "ax4 = [ao*x4[0], am*x4[1], ap*x4[2]]\n",
    "y4 = [ax4[0]/(ax4[0]+ax4[1]+ax4[2]), ax4[1]/(ax4[0]+ax4[1]+ax4[2]), ax4[2]/(ax4[0]+ax4[1]+ax4[2])]\n",
    "x5o = symbols('x5o')\n",
    "x51 = solve(yso - (Lm/Vm)*x5o + (y[1]/Vm)*xwo)[0]\n",
    "x5p = symbols('x5p')\n",
    "x52 = solve(ysp - (Lm/Vm)*x5p + (y[1]/Vm)*xwp)[0]\n",
    "x5m = symbols('x5m')\n",
    "x53 = solve(ysm - (Lm/Vm)*x5m + (y[1]/Vm)*xwm)[0]\n",
    "x5 = [x51 ,x53, x52]\n",
    "\n",
    "ax5 = [ao*x5[0] ,am*x5[1] ,ap*x5[2]]\n",
    "y5 = [ax5[0]/(ax5[0]+ax5[1]+ax5[2]), ax5[1]/(ax5[0]+ax5[1]+ax5[2]), ax5[2]/(ax5[0]+ax5[1]+ax5[2])]\n",
    "x6o = symbols('x6o')\n",
    "x61 = solve(yso - (Lm/Vm)*x6o + (y[1]/Vm)*xwo)[0]\n",
    "x6p = symbols('x6p')\n",
    "x62 = solve(ysp - (Lm/Vm)*x6p + (y[1]/Vm)*xwp)[0]\n",
    "x6m = symbols('x6m')\n",
    "x63 = solve(ysm - (Lm/Vm)*x6m + (y[1]/Vm)*xwm)[0]\n",
    "x6 = [x61, x63, x62]\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "ax6 = [ao*x6[0], am*x6[1] ,ap*x6[2]]\n",
    "y6 = [ax6[0]/(ax6[0]+ax6[1]+ax6[2]) ,ax6[1]/(ax6[0]+ax6[1]+ax6[2]) ,ax6[2]/(ax6[0]+ax6[1]+ax6[2])]\n",
    "x7o = symbols('x7o')\n",
    "x71 = solve(yso - (Lm/Vm)*x7o + (y[1]/Vm)*xwo)[0]\n",
    "x7p = symbols('x7p')\n",
    "x72 = solve(ysp - (Lm/Vm)*x7p + (y[1]/Vm)*xwp)[0]\n",
    "x7m = symbols('x7m')\n",
    "x73 = solve(ysm - (Lm/Vm)*x7m + (y[1]/Vm)*xwm)[0]\n",
    "x7 = [x71, x73, x72]\n",
    "print\"\\n Component       ax2            y2               x3              ax3              y3              x4            ax4\"\n",
    "print\"\\n     o           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(ax2[0],y2[0],x3[0],ax3[0],y3[0],x4[0],ax4[0])\n",
    "print\"\\n     m           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(xsm,am*xsm,ysm,x1[1],ax1[1],y1[1],x2[1])\n",
    "print\"\\n     p           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(xsp,ap*xsp,ysp,x1[2],ax1[2],y1[2],x2[2])\n",
    "\n",
    "print\"\\n Component      y4                x5          ax5          y5          x6          ax6            y6\"\n",
    "print\"\\n     o           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(y4[0],x5[0],ax5[0],y5[0],x6[0],ax6[0],y6[0])\n",
    "print\"\\n     m           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(y4[1],x5[1],ax5[1],y5[1],x6[1],ax6[1],y6[1])\n",
    "print\"\\n     p           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(y4[2],x5[2],ax5[2],y5[2],x6[2],ax6[2],y6[2])\n",
    "\n",
    "\n",
    "ax7 = [ao*x7[0] ,am*x7[1] ,ap*x7[2]]\n",
    "y7 = [ax7[0]/(ax7[0]+ax7[1]+ax7[2]), ax7[1]/(ax7[0]+ax7[1]+ax7[2]) ,ax7[2]/(ax7[0]+ax7[1]+ax7[2])]\n",
    "x8o = symbols('x8o')\n",
    "x81 = solve(yso - (Ln/Vn)*x8o + (y[1]/Vn)*xwo)[0]\n",
    "x8p = symbols('x8p')\n",
    "x82 = solve(ysp - (Ln/Vn)*x8p + (y[1]/Vn)*xwp)[0]\n",
    "x8m = symbols('x8m')\n",
    "x83 = solve(ysm - (Ln/Vn)*x8m + (y[1]/Vn)*xwm)[0]\n",
    "x8 = [x81, x83, x82]\n",
    "\n",
    "ax8 = [ao*x8[0] ,am*x8[1] ,ap*x8[2]]\n",
    "y8 = [ax8[0]/(ax8[0]+ax8[1]+ax8[2]), ax8[1]/(ax8[0]+ax8[1]+ax8[2]) ,ax8[2]/(ax8[0]+ax8[1]+ax8[2])]\n",
    "x9o = symbols('x9o')\n",
    "x91 = solve(yso - (Ln/Vn)*x9o + (y[1]/Vn)*xwo)[0]\n",
    "x9p = symbols('x9p')\n",
    "x92 = solve(ysp - (Ln/Vn)*x9p + (y[1]/Vn)*xwp)[0]\n",
    "x9m = symbols('x9m')\n",
    "x93 = solve(ysm - (Ln/Vn)*x9m + (y[1]/Vn)*xwm)[0]\n",
    "x9 = [x91, x93, x92]\n",
    "\n",
    "print\"\\n Component      x7                ax7          y7        x8           ax8         y8            x9\"\n",
    "print\"\\n     o           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(x7[0],ax7[0],y7[0],x8[0],ax8[0],y8[0],x9[0])\n",
    "print\"\\n     m           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(x7[1],ax7[1],y7[1],x8[1],ax8[1],y8[1],x9[1])\n",
    "print\"\\n     p           %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(x7[2],ax7[2],y7[2],x8[2],ax8[2],y8[2],x9[2])\n",
    "\n",
    "print\"\\n Component         x7            ax7           y7           x8          ax8           y8         x9\"\n",
    "print\"\\n     o             %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(y4[0],x5[0],ax5[0],y5[0],x6[0],ax6[0],y6[0])\n",
    "print\"\\n     m             %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(y4[1],x5[1],ax5[1],y5[1],x6[1],ax6[1],y6[1])\n",
    "print\"\\n     p             %.3f           %.3f          %.3f       %.3f         %.3f        %.3f        %.3f\"%(y4[2],x5[2],ax5[2],y5[2],x6[2],ax6[2],y6[2])\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 608 Example 11.15"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Dew point calculation\n",
      "\n",
      " Component      xd               Td = 344 K\n",
      "\n",
      "                                 K       xd/K \n",
      "\n",
      " n-C4           0.975            1.05      0.929\n",
      "\n",
      " C5             0.025            0.41      0.061\n",
      "\n",
      "                1.0                      0.990\n",
      "\n",
      "   Td = 343 K\n",
      "\n",
      "    K     xd/K\n",
      "\n",
      "   1.040   1.575\n",
      "\n",
      "   0.405   -1.575\n",
      "\n",
      "   -0.000\n",
      "\n",
      " At 343 K       K1 = 1.04      K2 = 0.405   from fig.11.39\n",
      "\n",
      "\n",
      "\n",
      " Estimation of still temperature Ts\n",
      "\n",
      " At Ts = 416 K equillibrium constants are from fig.11.39\n",
      "\n",
      " n-C4           C5        C6          C7\n",
      "\n",
      "  3.05          1.60      0.87       0.49\n",
      "\n",
      "\n",
      "   at Ts = 416 K\n",
      "\n",
      " n-C4           C5        C6          C7\n",
      "\n",
      "  0.052          0.587       0.246      0.163\n",
      "\n",
      " Sum of Kxw = 1\n",
      "\n",
      " Hence the still temperature Ts = 416 K\n",
      "\n",
      "\n",
      "\n",
      " Calculation of feed condition\n",
      "\n",
      " Component     xf         Tb = 377K         Tb = 376 K\n",
      "\n",
      "                         K       Kxf        K     Kxf \n",
      "\n",
      " n-C4         0.40     1.80     0.720      1.78   0.712\n",
      "\n",
      " C5           0.23     0.81     0.186      0.79   0.182\n",
      "\n",
      " C6           0.17     0.39     0.066      0.38   0.065\n",
      "\n",
      " C7           0.20     0.19     0.038      0.18   0.037\n",
      "\n",
      "                                1.011             0.995\n",
      "\n",
      "\n",
      "\n",
      " The upper pinch temperature,Tn = 367 K\n",
      "\n",
      " The lower pinch temperature,Tm = 391 K\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      " Component      Tn = 367 K      Tm = 391 K    xfh   axfh\n",
      "\n",
      "                   a                a                   \n",
      "\n",
      " n-C4              2.38             2.00                \n",
      "\n",
      " C5                1.00             1.00                \n",
      "\n",
      " C6                0.455             0.464      0.17    0.077\n",
      "\n",
      " C7                0.220             0.254      0.20    0.044\n",
      "\n",
      "                                                      0.121\n",
      "\n",
      " rf = 1.739\n",
      "\n",
      " xn4 = 0.566\n",
      "\n",
      " xn5 = 0.326\n",
      "\n",
      " Rm = 1.07\n",
      "\n",
      " Ln = 44.8 kmol\n",
      "\n",
      " Vn = 84.8 kmol\n",
      "\n",
      " Lm = 144.8 kmol\n",
      "\n",
      " Vn = 84.4 kmol\n",
      "\n",
      " Lm/W = 2.38\n",
      "\n",
      " For n-C4......xn = 0.659\n",
      "\n",
      " For n-C5...xn = 0.341\n",
      "\n",
      " Temperature check for upper pinch gives sum of K*xn = \n",
      "1.300\n"
     ]
    }
   ],
   "source": [
    "from sympy import symbols,solve\n",
    "\n",
    "print\"\\n Dew point calculation\"\n",
    "xd1 = 0.975#             #n-C4 light distillate\n",
    "xd2 = 0.025#            #C5 heavy key distillate\n",
    "Td = 344#               #temperature in kelvins\n",
    "K1 = 1.05#             #Eqillibrium constant calculation for n-C4 at 344 K\n",
    "K2 = 0.41#             #Equillibrium constant calculation for C5 at 344K\n",
    "#By a dew point calculation\n",
    "#sum(xd)=sum(xd/K)\n",
    "print\"\\n Component      xd               Td = 344 K\"\n",
    "print\"\\n                                 K       xd/K \"\n",
    "print\"\\n n-C4           %.3f            %.2f      %.3f\"%(xd1,K1,xd1/K1)\n",
    "print\"\\n C5             %.3f            %.2f      %.3f\"%(xd2,K2,xd2/K2)\n",
    "print\"\\n                %.1f                      %.3f\"%(xd1+xd2,(xd1/K1)+(xd2/K2))\n",
    "\n",
    "K11 = 1.04\n",
    "K21 = 0.405\n",
    "#Calculation for xd at 343 K\n",
    "x = symbols('x')\n",
    "x1 = solve(x/K11 + (1-x)/K21)[0]\n",
    "print\"\\n   Td = 343 K\"\n",
    "print\"\\n    K     xd/K\"\n",
    "print\"\\n   %.3f   %.3f\"%(K11,x1/K11)\n",
    "print\"\\n   %.3f   %.3f\"%(K21,(1-x1)/K21)\n",
    "print\"\\n   %.3f\"%(x1/K11+(1-x1)/K21)\n",
    "print\"\\n At 343 K       K1 = 1.04      K2 = 0.405   from fig.11.39\"\n",
    "\n",
    "print\"\\n\\n\\n Estimation of still temperature Ts\"\n",
    "#sum(xw) = sum(K*xw)\n",
    "K31 = 3.05#            #equillibrium const at 419 K\n",
    "K32 = 1.6#             #equillibrium const at 419 K\n",
    "K33 = 0.87#            #equillibrium const at 419 K\n",
    "K34 = 0.49#            #equillibrium const at 419 K\n",
    "xw1 = 0.017#           #mass fraction of n-C4\n",
    "xw2 = 0.367#           #mass fraction of C5\n",
    "xw3 = 0.283#           #mass fraction of C6\n",
    "xw4 = 0.333#           #mass fraction of C7\n",
    "\n",
    "print\"\\n At Ts = 416 K equillibrium constants are from fig.11.39\"\n",
    "print\"\\n n-C4           C5        C6          C7\"\n",
    "print\"\\n  %.2f          %.2f      %.2f       %.2f\"%(K31,K32,K33,K34)\n",
    "print\"\\n\\n   at Ts = 416 K\"\n",
    "print\"\\n n-C4           C5        C6          C7\"\n",
    "print\"\\n  %.3f          %.3f       %.3f      %.3f\"%(xw1*K31,xw2*K32,xw3*K33,xw4*K34)\n",
    "print\"\\n Sum of Kxw = %d\"%(xw1*K31+xw2*K32+xw3*K33+xw4*K34)\n",
    "print\"\\n Hence the still temperature Ts = 416 K\"\n",
    "print\"\\n\\n\\n Calculation of feed condition\"\n",
    "print\"\\n Component     xf         Tb = 377K         Tb = 376 K\"\n",
    "print\"\\n                         K       Kxf        K     Kxf \"\n",
    "xf1 = 0.40\n",
    "xf2 = 0.23\n",
    "xf3 = 0.17\n",
    "xf4 = 0.20\n",
    "Kb1 = 1.80#             #equillibrium constants at 377 K for n-C4\n",
    "Kb2 = 0.81#             #equillibrium constants at 377 K for C5\n",
    "Kb3 = 0.39#             #equillibrium constants at 377 K for C6\n",
    "Kb4 = 0.19#             #equillibrium constants at 377 K for C7\n",
    "Kb11 = 1.78#            #equillibrium constants at 377 K for n-C4\n",
    "Kb21 = 0.79#            #equillibrium constants at 377 K for C5\n",
    "Kb31 = 0.38#            #equillibrium constants at 377 K for C6\n",
    "Kb41 = 0.185#           #equillibrium constants at 377 K for C7\n",
    "print\"\\n n-C4         %.2f     %.2f     %.3f      %.2f   %.3f\"%(xf1,Kb1,xf1*Kb1,Kb11,xf1*Kb11)\n",
    "print\"\\n C5           %.2f     %.2f     %.3f      %.2f   %.3f\"%(xf2,Kb2,xf2*Kb2,Kb21,xf2*Kb21)\n",
    "print\"\\n C6           %.2f     %.2f     %.3f      %.2f   %.3f\"%(xf3,Kb3,xf3*Kb3,Kb31,xf3*Kb31)\n",
    "print\"\\n C7           %.2f     %.2f     %.3f      %.2f   %.3f\"%(xf4,Kb4,xf4*Kb4,Kb41,xf4*Kb41)\n",
    "print\"\\n                                %.3f             %.3f\"%(xf1*Kb1+xf2*Kb2+xf3*Kb3+xf4*Kb4,xf1*Kb11+xf2*Kb21+xf3*Kb31+xf4*Kb41)\n",
    "\n",
    "#Calculation of pinch temperatures\n",
    "print\"\\n\\n\\n The upper pinch temperature,Tn = %d K\"%(343+0.33*(416-343))\n",
    "print\"\\n The lower pinch temperature,Tm = %d K\"%(343+0.67*(416-343))\n",
    "\n",
    "#Calculation of approximate minimum reflux ratio.\n",
    "print\"\\n\\n\\n\"\n",
    "print\"\\n Component      Tn = 367 K      Tm = 391 K    xfh   axfh\"\n",
    "print\"\\n                   a                a                   \"\n",
    "print\"\\n n-C4              %.2f             %.2f                \"%(2.38,2.00)\n",
    "print\"\\n C5                %.2f             %.2f                \"%(1.00,1.00)\n",
    "print\"\\n C6                %.3f             %.3f      %.2f    %.3f\"%(0.455,0.464,0.17,0.077)\n",
    "print\"\\n C7                %.3f             %.3f      %.2f    %.3f\"%(0.220,0.254,0.20,0.044)\n",
    "print\"\\n                                                      %.3f\"%(0.077+0.044)\n",
    "rf = xf1/xf2\n",
    "print\"\\n rf = %.3f\"%(rf)\n",
    "xn4 = rf/((1+rf)*(1+0.121))\n",
    "print\"\\n xn4 = %.3f\"%(xn4)\n",
    "xn5 = xn4/rf\n",
    "print\"\\n xn5 = %.3f\"%(xn5)\n",
    "Rm = (1/(2.38-1))*(0.975/0.563)-2.38*(0.025/0.325)\n",
    "print\"\\n Rm = %.2f\"%(Rm)\n",
    "\n",
    "#The streams in the column\n",
    "D = 40\n",
    "Ln = D*Rm\n",
    "Vn = Ln+D\n",
    "F = 100\n",
    "Lm = Ln + F\n",
    "W = 60\n",
    "Vm = Lm - W\n",
    "Ratio = Lm/W\n",
    "print\"\\n Ln = %.1f kmol\"%(44.8)\n",
    "print\"\\n Vn = %.1f kmol\"%(84.8)\n",
    "print\"\\n Lm = %.1f kmol\"%(144.8)\n",
    "print\"\\n Vn = %.1f kmol\"%(84.4)\n",
    "print\"\\n Lm/W = %.2f\"%(Ratio)\n",
    "#Check on minimum reflux ratio\n",
    "#xn = xd/(a-1)Rm\n",
    "xn = xd1/((2.38-1)*Rm)\n",
    "print\"\\n For n-C4......xn = %.3f\"%(xn)\n",
    "xn1 = 1-xn\n",
    "print\"\\n For n-C5...xn = %.3f\"%(xn1)\n",
    "print\"\\n Temperature check for upper pinch gives sum of K*xn = \"\n",
    "sumKxn = 1.62*xn +0.68*xn1\n",
    "print\"%.3f\"%(sumKxn)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 612 Example 11.16"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "From Underwoods 1st eq\n",
      "\n",
      "The value of 1-q at theta = 1.15 and 1.17 are\n",
      "[1.4229424178474521, 0]\n",
      "\n",
      "Minimum Reflux ratio is 0.900\n",
      "\n"
     ]
    }
   ],
   "source": [
    "#Mole fractions\n",
    "xf=[0.40, 0.35 ,0.25]\n",
    "xd=[0.534, 0.453, 0.013]\n",
    "xw=[0 ,0.04 ,0.96]\n",
    "\n",
    "#Amount of feed, product, bottom in kmol\n",
    "F=[40, 35, 25]\n",
    "D=[40, 34, 1]\n",
    "W=[0 ,1, 24]\n",
    "\n",
    "#roots of equation\n",
    "theta=[1.15, 1.17]\n",
    "\n",
    "#relative volatility\n",
    "alpha=[2.7 ,2.22, 1]\n",
    "\n",
    "#Underwoods 1st equation for q=1\n",
    "sums=[0 ,0]\n",
    "for i in range(0,1):\n",
    "    for j in range(0,2):\n",
    "        sums[i]=sums[i]+(alpha[j]*xf[(j)]/(alpha[(j)]-theta[(i)]))\n",
    "    \n",
    "\n",
    "print\"\\nFrom Underwoods 1st eq\\n\"\n",
    "print\"The value of 1-q at theta = 1.15 and 1.17 are\"\n",
    "print sums\n",
    "\n",
    "#Underwoods 2nd equation for minimum reflux ratio\n",
    "sum2=0\n",
    "for l in range(0,2):\n",
    "    sum2=sum2+(alpha[(l)]*xd[(l)]/(alpha[(l)]-theta[1]))\n",
    "\n",
    "\n",
    "Rm=sum2-1\n",
    "print\"\\nMinimum Reflux ratio is %.3f\\n\"%(Rm)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 613 Example 11.17"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Minimum no. of plates are 7.438   or 7\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from math import log\n",
    "#From previous question data\n",
    "xA_d=0.453\n",
    "xB_d=0.013\n",
    "\n",
    "xA_s=0.04\n",
    "xB_s=0.96\n",
    "\n",
    "alpha_av=2.22\n",
    "\n",
    "#By Fenske Equation for no. of plates\n",
    "\n",
    "n=((log(xA_d*xB_s/(xA_s*xB_d)))/log(alpha_av))-1\n",
    "\n",
    "print\"\\nMinimum no. of plates are %.3f   or %d\\n\"%(n,n)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 614 Example 11.18"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "The values of R and n are\n",
      "\n",
      "\n",
      "\t1 \t 19.11\n",
      "\n",
      "\t2 \t 11.97\n",
      "\n",
      "\t5 \t 9.18\n",
      "\n",
      "\n",
      "The change in R and n can be seen as above\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sympy import symbols,solve\n",
    "R=[1 ,2 ,5, 10]\n",
    "Rm=0.83\n",
    "\n",
    "nm=8.5-1\n",
    "\n",
    "#X are points on X-axis of graph\n",
    "X=[]\n",
    "for i in range(0,3):\n",
    "    X.append((R[(i)]-Rm)/(R[(i)]+1))\n",
    "\n",
    "\n",
    "#Values at Y-axis for corresponding values of X-axis in graph are given by\n",
    "Y=[0.55, 0.32 ,0.15, 0.08]\n",
    "\n",
    "#where Y=(n+1)-(nm+1)/(n+2)\n",
    "\n",
    "N=[]\n",
    "for i in range(0,3):\n",
    "    n=symbols('x')\n",
    "    N.append(solve(((n+1)-(nm+1))-(Y[(i)]*(n+2)))[0])\n",
    "\n",
    "\n",
    "print\"\\nThe values of R and n are\\n\"\n",
    "for i in range(0,3):\n",
    "    print\"\\n\\t%d \\t %.2f\"%(R[i],N[i])\n",
    "\n",
    "\n",
    "print\"\\n\\nThe change in R and n can be seen as above\\n\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 615 Example 11.19"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEZCAYAAAB2AoVaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGhpJREFUeJzt3XuUXXWZ5vHvk3sq5FZEKBgu4dIISDQCBhoBT4S4uNjQ\njrSArB7bZaNLUZHGEZmBpHq6bUZ7HOi1GOluEVquLgcaGLvlpnJEBMLFhEASaEGDCiSASUhCILd6\n5499KlWJVZU6VbXPb5+zn89aZ9XOuf3etdk8e5933xQRmJlZaxuVugAzM8ufw97MrAQc9mZmJeCw\nNzMrAYe9mVkJOOzNzErAYW+FJqkq6VMNGuuzklZJWidpeiPGNGsUh70lJ2mFpI2S1ktaKel6SZNq\nL0ftsavvmCmpS9KQlmlJY4FvAidFxJSIWNPP96+vPVZIunwoY5ml4LC3IgjgwxExGTgSOBq4bIjf\npSF+rgOYACzfxfum1ur8KHCJpNOGOJ5ZQznsrVAi4mXgHuBdO7+mzGW1repVkr4raUrt5Qdrf9fW\ntryP6ePz4yVdJeml2uNKSeMkHUJPyK+V9KNB1PkksBQ4vK/XJV0j6e93eu4uSV+qTV8i6Xe1ltGz\nkj7Yz/f8i6T/I+nfau99VNKBu6rPbGcOeysKAUjaFzgVWNTHez4JfAKoAAcCuwFX1147ofZ3akRM\njoiFfXz+vwNzgPfUHnOAyyLiP+hZuUyNiJMHUeextc883s/7bgHO3v6hbB/APOB7kt4JXAAcHRFT\ngA8BKwYY82ygE5gOPA98bYD3mvXJYW9FIOBOSWuAnwFV4O/6eN95wDcjYkVEvAlcCpxT69MPpn3z\nceB/RMTrEfE68NfAn/eqYTBel7QReBhYEBE/7ed9DwEhqXsldBbwcESsBLYB44F3SRobEb+JiF/1\n8z0B/GtEPBER24CbgdmDrNVsO4e9FUEAZ0bE9IiYGRGfj4hNfbxvL+DFXv/+DTAG2HOQ4+zdx+f3\nrrPW3cl+UVwMfKlXG2kHkV1h8HvAubWnPk4W1ETE88CXyLbWV0m6VdJeA4y5qtf0W7XxzerisLdm\n8jIws9e/9wO2koXhYC7f2tfnX663iIjoiogryVovFw3w1luBsyTtT9Yyur3Xd9waEScA+5PV/vV6\n6zCrh8PemsmtwEW1wyB3I2v1fC8iuoDXgC7goF18/jJJMyTNAOYDNw6jnv8JfEFSW18vRsRi4HXg\nWuCeiFgHIOkQSR+UNB7YBLxN1trpy1CPLjLbgcPemsl1ZOH8IPArYCPwBYCI2Ei24/LnktZImtPH\n5/8WeAJYUns8UXuu265+HezwekT8O7AS+MsBPnML8MHa327jgSvIVlCvADPI9j/0N+bOdfkmFFY3\n5XnzEkkXkv2PIODbEfEPuQ1mZmb9ym3LXtIRZEH/PrLD3D4saaCf2GZmlpM82ziHAgsj4u3aIWM/\nBf5zjuOZmVk/8gz7Z4ATJLXXdmCdDuyT43hmZtaPMXl9cUQ8K+nrwH3Am2RnRHblNZ6ZmfUv1x20\nOwwk/R3wm4j4x17P+agCM7MhiIi6DsvN9dBLSXvU/u4HfIQdDz8DICJa5tHVFYwdG2zaVP9nFyxY\nkLz+ojw8LzwvPC8GfgxFbm2cmtsk7Q5sAT4XtZNKWpUE06bBmjWw52BP4Dcza4Bcwz4iTszz+4uo\nvd1hb2bF4zNoR9j06bB6df2fq1QqI15Ls/K86OF50cPzYngatoO2z8GlSDl+Hk47DS64AE4/PXUl\nZtaqJBFF2kFbRtOnZ20cM7MicdiPsPb2obVxzMzy5LAfYd6yN7MictiPMIe9mRWRw36EdR96aWZW\nJA77ETbUQy/NzPLksB9hbuOYWRE57EeYw97MishhP8J86KWZFZHDfoR5y97MishhP8ImTsz+vvVW\n2jrMzHpz2OfArRwzKxqHfQ7cyjGzonHY58Bhb2ZFk/dtCS+VtFTS05JukTQ+z/GKwmFvZkWTW9hL\nmgmcDxwZEbOA0cA5eY1XJO7Zm1nR5HlbwnVk955tk7QNaANeynG8wvCWvZkVTW5b9hGxGvgm8Bvg\nZWBtRPwor/GKxGFvZkWT25a9pIOALwEzgTeA/yvpvIi4uff7Ojs7t09XKpWWuM9kezs891zqKsys\nVVSrVarV6rC+I7d70Eo6G5gXEX9Z+/efA8dGxAW93tNy96AFuOkmuPtuuPnmXb/XzKxeRbsH7bPA\nsZImShJwMrAsx/EKw20cMyuaPHv2TwE3AE8AS2pP/3Ne4xWJw97MiibPo3GIiG8A38hzjCLyoZdm\nVjQ+gzYH3rI3s6LJbQftoAZv0R20mzfDpEnZX9W1C8XMbNeKtoO2tMaNg/HjYcOG1JWYmWUc9jlx\nK8fMisRhnxOHvZkVicM+J9On+4gcMysOh31O2tu9ZW9mxeGwz4nbOGZWJA77nDjszaxIHPY58Vm0\nZlYkDvuceMvezIrEYZ8Th72ZFYnDPic+9NLMisRhnxMfemlmReKwz4nbOGZWJA77nLiNY2ZFkmvY\nS3qnpEW9Hm9I+mKeYxbFtGmwbh10daWuxMysgdezlzQKeAmYExG/rT3Xktez7zZ1Krz4Yhb8ZmYj\npejXsz8ZeKE76MvAfXszK4pGhv05wC0NHC859+3NrChyveF4N0njgD8BLtn5tc7Ozu3TlUqFSqXS\niJIaoqMDXn4ZjjoqdSVm1syq1SrVanVY39GQnr2kM4HPRsQpOz3f0j37v/qrLPC/8pXUlZhZKyly\nz/5c4NYGjVUYhx0Gy5enrsLMrAFhL2kS2c7Zf817rKI5/HBYtix1FWZmDTz0ss/BW7yNs3o1zJwJ\nb7wBqusHl5lZ/4rcximl9nZoa4OXXkpdiZmVncM+Z+7bm1kROOxz5r69mRWBwz5n3rI3syJw2OfM\nW/ZmVgQO+5x5y97MisBhn7OODti6FV57LXUlZlZmDvucSd66N7P0HPYNcNhh7tubWVoO+wY4/HBv\n2ZtZWg77BvCWvZml5rBvAG/Zm1lqDvsG2G+/7PaE69alrsTMysph3wCjRsGhh3rr3szScdg3iA+/\nNLOUHPYN4ssmmFlKuYa9pGmSbpO0XNIyScfmOV6RecvezFIak/P3/wPww4g4S9IYYFLO4xWWt+zN\nLKXcbksoaSqwKCIOHOA9LX1bwt62boXJk7NbFU6cmLoaM2tmRbst4QHAa5Kul/QLSd+W1JbjeIU2\nZgwcdBA891zqSsysjPJs44wBjgQ+HxGPS7oK+Cowv/ebOjs7t09XKhUqlUqOJaXV3befPTt1JWbW\nTKrVKtVqdVjfkWcbpwN4JCIOqP37eOCrEfHhXu8pTRsHYMEC6OqCv/mb1JWYWTMrVBsnIlYCv5V0\nSO2pk4GleY3XDHxEjpmlkvfROF8AbpY0DngB+GTO4xWaj8gxs1Rya+MMavCStXHefhumTYP162Hs\n2NTVmFmzKlQbx/7QhAmw777w/POpKzGzsnHYN5j79maWgsO+wXwjEzNLwWHfYL6RiZml4LBvMLdx\nzCwFH43TYOvXQ0dH9neUV7VmNgQ+GqcJTJ4M7e3w4oupKzGzMnHYJ+CTq8ys0Rz2Cbhvb2aN5rBP\nwFv2ZtZoDvsEvGVvZo3mo3ES+P3v4cADYe1aUF37083MfDRO09h9dxg/Hl55JXUlZlYWDvtE3Lc3\ns0Zy2Cfivr2ZNVLeNy9B0gpgHbAN2BIRc/Iesxl4y97MGin3sAcCqETE6gaM1TQOOwxuvz11FWZW\nFo1q4/iYk514y97MGqkRYR/AjyQ9Ien8BozXFPbaCzZtgtdfT12JmZVBI8L+/RHxXuBU4AJJJzRg\nzMKTvHVvZo2Te88+Il6p/X1N0h3AHOBn3a93dnZuf2+lUqFSqeRdUmEccww8/DCceGLqSsysyKrV\nKtVqdVjfkesZtJLagNERsV7SJOA+4K8j4r7a66U8g7bbnXfCNdfAvfemrsTMmslQzqDNO+wPAO6o\n/XMMcHNEXNHr9VKH/erVMHNmdvmEsWNTV2NmzWIoYZ9rGycifg3MznOMZtbeDgcdBI8/Dscdl7oa\nM2tlPoM2sblzYZitODOzXXLYJ1apwAMPpK7CzFqdL3Gc2Nq1sO++Wd9+3LjU1ZhZM/AljpvQtGlw\nyCHw2GOpKzGzVuawLwD37c0sbw77AnDf3szy5p59AbzxBuyzT3adnPHjU1djZkXXkJ69MmfX+znr\n39SpcOihsHBh6krMrFX1G/aSdpN0saRvSfqcpFGSPgIsBc5rXInl4L69meVpoC37G4BZwFPAScCj\nwEXAxyPijAbUViru25tZnvrt2UtaEhHvrk2PBl4B9o+It0ZscPfst1u3DvbeO+vbT5iQuhozK7KR\n7tlv656IiG3ASyMZ9LajKVPgXe+CRx9NXYmZtaKBwv7dktZ3P4BZvf69rlEFlon79maWl37DPiJG\nR8TkXo8xvaanNLLIsnDf3szy4uPsC2TDBujogNdeg4kTU1djZkXla+M0ud12g1mz4JFHUldiZq0m\n97CXNFrSIkk/yHusVjB3rls5ZjbyGrFlfyGwDHC/ZhC8k9bM8pBr2EvaBzgNuBaoq79UVscdB4sW\nwcaNqSsxs1aS95b9lcB/BbpyHqdlTJoEs2fDww+nrsTMWkluYS/pw8CrEbEIb9XXxYdgmtlIG5Pj\ndx8HnCHpNGACMEXSDRHxX3q/qbOzc/t0pVKhUqnkWFJzmDsX5s9PXYWZFUW1WqU6zJ15DTnOXtIH\ngC9HxJ/s9LyPs+/Dxo2wxx6wcmV2OKaZWW9FP87eqT5IbW1w5JHu25vZyGlI2EfET31Z5Pq4b29m\nI8ln0BaUj7c3s5Hka+MU1FtvwTveAa+8ApMnp67GzIqk6D17q8PEiXD00fDzn6euxMxagcO+wNy3\nN7OR4rAvMPftzWykuGdfYG+/DTNmwMsvZ7ctNDMD9+xbzoQJMGcOPPRQ6krMrNk57AuuUoEf/zh1\nFWbW7NzGKbhf/hL++I/hySdh//1TV2NmReA2Tgv6oz+Ciy+Gz3wGvF40s6Fy2DeBL38ZVq2CG29M\nXYmZNSu3cZrEL34Bp54KS5bAnnumrsbMUhpKG8dh30QuvRReeAG+//3UlZhZSu7Zt7j58+Gpp+CO\nO1JXYmbNxlv2TebBB+Hcc2HpUpg2LXU1ZpaC2zgl8bnPwZYt8O1vp67EzFIoXNhLmgD8FBgPjAPu\niohLe73usB+CdevgiCPg+uvhpJNSV2NmjVa4nn1EvA3MjYjZwLuBuZKOz3PMMpgyBa65Bj79aXjz\nzdTVmFkzyH0HbURsrE2OA0YDq/MeswxOPz07s3b+/NSVmFkzyD3sJY2StBhYBTwQEcvyHrMsrroK\nbr4ZFi5MXYmZFd2YvAeIiC5gtqSpwL2SKhFR7X69s7Nz+3srlQqVSiXvklrGjBlZ4H/qU9lJV+PG\npa7IzPJQrVapDvPmFg09GkfS5cBbEfG/av/2DtphioAzz4SjjoIFC1JXY2aNULgdtJJmSJpWm54I\nzAMW5Tlm2UjwrW/B1VfDM8+krsbMiirvnv1ewE9qPfuFwA8iwldnH2H77ANf+1rWztm2LXU1ZlZE\nPqmqRXR1Zcfcn3EGXHRR6mrMLE+FO6lql4M77EfU88/DscfCY4/BgQemrsbM8lK4nr011sEHwyWX\nZCdbeR1qZr057FvMRRfB2rXZpRTMzLq5jdOCnnoK5s2DxYth771TV2NmI81tHAPgPe/J7ll7wQVu\n55hZxmHfoi67DJ59Fm6/PXUlZlYEbuO0sIcfhrPOyk62am9PXY2ZjRQfeml/4MIL4cUX4ZZboK0t\ndTVmNhLcs7c/cMUVWcgfd1x2HL6ZlZPDvsW1tWWXQT7//Czw77ordUVmloLbOCWycCF87GNwzjnZ\ntXTG5H6BazPLg3v2tkuvvw7nnQebN8Ott0JHR+qKzKxe7tnbLs2YAT/8IZx4Ihx9NDz0UOqKzKwR\nvGVfYnffDX/xF9n1dC66KLs2vpkVn9s4VrcVK+DP/gz23x+uuw6mTEldkZntits4VreZM7NWzjve\nAe97n+92Zdaq8r4t4b6SHpC0VNIzkr6Y53g2NOPHwzXXZJdYmDsXbropdUVmNtJybeNI6gA6ImKx\npN2AJ4E/jYjltdfdximYp5+Gj34UTj4ZrrwyWxGYWbEUro0TESsjYnFtegOwHPBFdwts1ix4/HFY\ntQpOOCG71IKZNb+G9ewlzQTeS3bjcSuwqVPhttvg7LPhmGPgnntSV2Rmw9WQcyhrLZzbgAtrW/jb\ndXZ2bp+uVCpUKpVGlGS7IMHFF8OcOdkZt+efD5dfDqNHp67MrHyq1SrVanVY35H7oZeSxgL/Btwd\nEVft9Jp79k1g5cpsK3/ChOw6OzNmpK7IrNwK17OXJOA7wLKdg96aR0cH/PjHMHs2HHUUPPZY6orM\nrF55H41zPPAgsAToHujSiLin9rq37JvMnXfCpz8NnZ3w2c/6rFuzFHwGrTXE889nh2fOmgX/9E8w\naVLqiszKpXBtHGtNBx8MjzySXSL5mGOye92aWbF5y96GLAKuvRa+8hU48ED40Ieyx3HH+WQsszy5\njWNJbNmS3Rjlvvuyx7JlcPzxPeF/2GHu7ZuNJIe9FcKaNfCTn/SE/+bNPcF/8snZRdfMbOgc9lY4\nEfDCCz3BX63u2PJ5//vd8jGrl8PeCm/Lluw4/e7wX7o0C/zu8D/8cLd8zHbFYW9NZ80aeOCBnvDf\ntAnmzetp+eyxR+oKzYrHYW9Nb+eWz8yZWfDPm5ft9J0wIXWFZuk57K2lbN26Y8vn6ad7Wj7z5sER\nR7jlY+XksLeWtnZtT8vn/vth48Ys9Lsfe+6ZukKzxnDYW6m88EIW+vffnx3quf/+O7Z8Jk5MXaFZ\nPhz2Vlpbt2Z32Ore6n/qqexM3u6dvbNmueVjrcNhb1bzxhtZy+f++7MVwIYNO7Z8OjpSV2g2dA57\ns3786lc7tnz22Qfe+U6YMgUmT87+DmbaJ4BZETjszQZh61Z48snsZurr18O6ddljMNMw+BXDrqbH\nNOSmoNaKHPZmOdu0qb6VQ/d0X8+NHz/8FcaUKbDbbjDKFysvlcKFvaTrgNOBVyNiVh+vO+ytlCKy\nQ0fr/WXR1/TGjdDWNvAKYbArj7Y278huBkUM+xOADcANDnuzfHR1ZTug6/1l0df05s1Z6O9q5dD9\nnr4e3a9PmuQVR14KF/YAkmYCP3DYmxXfli1Z6A+2LdX93r4eb7+dBf5AK4bBrDy6H9453mMoYe9d\nRGa23dix0N6ePYZr27bsF0fvFUB/K4hXXx14xbFuXfYroZ6Vw0DvLeN+juRh39nZuX26UqlQqVSS\n1WJmI2f0aJg6NXsMV0S2c3ygFUL34/e/hxUrBv7lsXFjdob1UH9l7Pze8ePzbVlVq1Wq1eqwvsNt\nHDMrna4uePPN/n9FDGal0vuxbdvgVg6XXz4yV251G8fMbBBGjeoJ4ZGwefPgVgqjR4/MeEOR99E4\ntwIfAHYHXgXmR8T1vV73lr2ZWZ0KeTTOgIM77M3M6jaUsC/Z/mgzs3Jy2JuZlYDD3sysBBz2ZmYl\n4LA3MysBh72ZWQk47M3MSsBhb2ZWAg57M7MScNibmZWAw97MrAQc9mZmJeCwNzMrAYe9mVkJOOzN\nzEog17CXdIqkZyX9UtIleY5lZmb9yy3sJY0GrgZOAQ4HzpV0WF7jNbvh3ky4lXhe9PC86OF5MTx5\nbtnPAZ6PiBURsQX4HnBmjuM1NS/IPTwvenhe9PC8GJ48w/4/Ab/t9e/f1Z4zM7MGyzPsfXNZM7OC\nyO2G45KOBToj4pTavy8FuiLi673e4xWCmdkQ1HvD8TzDfgzwHHAS8DLwGHBuRCzPZUAzM+vXmLy+\nOCK2Svo8cC8wGviOg97MLI3ctuzNzKw4kp1BK2mFpCWSFkl6LFUdKUi6TtIqSU/3eq5d0v2S/kPS\nfZKmpayxUfqZF52SfldbNhZJOiVljY0iaV9JD0haKukZSV+sPV+6ZWOAeVG6ZUPSBEkLJS2WtEzS\nFbXn61oukm3ZS/o1cFRErE5SQEKSTgA2ADdExKzac98AXo+Ib9TONp4eEV9NWWcj9DMvFgDrI+J/\nJy2uwSR1AB0RsVjSbsCTwJ8Cn6Rky8YA8+JjlHPZaIuIjbV9oQ8BXwbOoI7lIvW1ceram9wqIuJn\nwJqdnj4D+G5t+rtkC3bL62deQAmXjYhYGRGLa9MbgOVk56aUbtkYYF5AOZeNjbXJcWT7QNdQ53KR\nMuwD+JGkJySdn7COotgzIlbVplcBe6YspgC+IOkpSd8pQ9tiZ5JmAu8FFlLyZaPXvHi09lTplg1J\noyQtJvvv/0BELKXO5SJl2L8/It4LnApcUPs5b0BkvbUy7zm/BjgAmA28AnwzbTmNVWtb3A5cGBHr\ne79WtmWjNi9uI5sXGyjpshERXRExG9gHOFHS3J1e3+VykSzsI+KV2t/XgDvIrqVTZqtqfUok7QW8\nmrieZCLi1agBrqVEy4aksWRBf2NE3Fl7upTLRq95cVP3vCjzsgEQEW8A/w4cRZ3LRZKwl9QmaXJt\nehLwIeDpgT/V8v4f8Ina9CeAOwd4b0urLbjdPkJJlg1JAr4DLIuIq3q9VLplo795UcZlQ9KM7naV\npInAPGARdS4XSY7GkXQA2dY8ZCd23RwRVzS8kEQk3Qp8AJhB1mubD9wFfB/YD1gBfCwi1qaqsVH6\nmBcLgArZz/QAfg18pldvsmVJOh54EFhCz0/yS8nOPi/VstHPvPhvwLmUbNmQNItsB+yo2uPGiPh7\nSe3UsVz4pCozsxJIfeilmZk1gMPezKwEHPZmZiXgsDczKwGHvZlZCTjszcxKwGFvZlYCDnszsxJw\n2JvtRNJMScsl/XPtxhn3SpqQui6z4XDYm/XtYODqiDgCWAt8NHE9ZsPisDfr268jYklt+klgZsJa\nzIbNYW/Wt029preRXbDPrGk57M3MSsBhb9a3nS8H68vDWlPzJY7NzErAW/ZmZiXgsDczKwGHvZlZ\nCTjszcxKwGFvZlYCDnszsxJw2JuZlYDD3sysBP4/QUeUdYhfs3IAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f07b06055d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Derivative calculated from the graph\n",
      "\n",
      " Ropt = 1.25\n",
      "\n",
      " R is approximately 144.2 percent of the minimum reflux condition\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot,title,xlabel,ylabel,show\n",
    "\n",
    "\n",
    "#Data from fig. 11.42\n",
    "a = [0, 0.02, 0.04, 0.06, 0.08, 0.1 ,0.2 ,0.4 ,0.6 ,0.8 ,1.0]\n",
    "b = [0.75, 0.62, 0.60, 0.57, 0.55, 0.52, 0.45, 0.30, 0.18, 0.09, 0]\n",
    "#a = (R-Rm)/(R+1)\n",
    "#b = [(n+1)-(nm+1)]/(n+2)\n",
    "R = [0.92, 1.08, 1.25 ,1.75 ,2.5 ,3.5, 5.0 ,7.0 ,9.0]\n",
    "n = [28.6 ,22.8 ,16.9 ,13.5 ,11.7 ,10.5 ,9.8 ,9.2 ,8.95]\n",
    "plot(n,R)\n",
    "title(\"Plot of R vs n\")\n",
    "xlabel(\"n\")\n",
    "ylabel(\"R\")\n",
    "show()\n",
    "print\"\\n Derivative calculated from the graph\"\n",
    "d = [110.0, 34.9 ,9.8 ,3.8 ,1.7 ,0.6 ,0.4 ,0.2 ,0.05]\n",
    "i=0\n",
    "while i <=8:\n",
    "   s = R[(i)]+1 - (n[(i)]+7.72)/d[(i)]\n",
    "   if s <=0.0001:\n",
    "       Ropt = R[(i)]\n",
    "       print\"\\n Ropt = %.2f\"%(Ropt)\n",
    "       break\n",
    "   \n",
    "   i=i+1\n",
    "\n",
    "print\"\\n R is approximately %.1f percent of the minimum reflux condition\"%(1.25/0.866666666*100)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 633 Example 11.20"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Efficiency is 0.87\n"
     ]
    }
   ],
   "source": [
    "from math import log10\n",
    "\n",
    "#Mole fraction\n",
    "xf=[0.2, 0.3, 0.2, 0.3]\n",
    "\n",
    "#Viscosity at mean tower temp. in mNs/m**2\n",
    "uL=[0.048, 0.112, 0.145, 0.188]\n",
    "\n",
    "#Viscosity of water in mNs/m**2\n",
    "uw=1\n",
    "\n",
    "sums=0\n",
    "for i in range(0,3):\n",
    "    sums=sums+(xf[(i)]*uL[(i)]/uw)\n",
    "\n",
    "\n",
    "#Efficiency by DRICKAMER and BRADFORD\n",
    "E=0.17-(0.616*log10(sums))\n",
    "\n",
    "print\"\\nEfficiency is %.2f\"%(E)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
