summaryrefslogtreecommitdiff
path: root/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb
diff options
context:
space:
mode:
authorkinitrupti2017-05-12 18:53:46 +0530
committerkinitrupti2017-05-12 18:53:46 +0530
commit6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d (patch)
tree22789c9dbe468dae6697dcd12d8e97de4bcf94a2 /Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb
parentd36fc3b8f88cc3108ffff6151e376b619b9abb01 (diff)
downloadPython-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.tar.gz
Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.tar.bz2
Python-Textbook-Companions-6279fa19ac6e2a4087df2e6fe985430ecc2c2d5d.zip
Removed duplicates
Diffstat (limited to 'Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb')
-rwxr-xr-xChemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb846
1 files changed, 846 insertions, 0 deletions
diff --git a/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb
new file mode 100755
index 00000000..e54d6be2
--- /dev/null
+++ b/Chemical_Engineering_Thermodynamics_by_Y._V._C._Rao/ch14.ipynb
@@ -0,0 +1,846 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Chemical reaction equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Page No : 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "T = 298.15;\t\t\t #temperature in K\n",
+ "del_Gf = [-137.327,-228.600,-394.815,0]; #the standard Gibbs free energy of formation of CO(g),H2O(g),CO2(g) and H2(g) in kJ\n",
+ "n = [1,1,-1,-1] \t\t\t #stoichiometric coefficients of CO(g),H2O(g),CO2(g) and H2(g) respectively (no unit)\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "del_G = (n[0]*del_Gf[0])+(n[1]*del_Gf[1])+(n[2]*del_Gf[2])+(n[3]*del_Gf[3]);\n",
+ "Ka = math.exp((-(del_G*10**3))/(R*T))\n",
+ "\n",
+ "# Results\n",
+ "print 'The standard Gibbs free energy of the water gas shift reaction at 298.15K = %0.3f kJ '%(del_G);\n",
+ "print 'The equilibrium constant of the water gas shift reaction at 298.15K = %0.3e '%(Ka);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The standard Gibbs free energy of the water gas shift reaction at 298.15K = 28.888 kJ \n",
+ "The equilibrium constant of the water gas shift reaction at 298.15K = 8.685e-06 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Page No : 490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 298.15;\t\t\t #temperature in K\n",
+ "P_s = 0.16716;\t\t\t #saturation pressure of CH3OH in bar at T\n",
+ "del_G1 = -166.215\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "\n",
+ "# Calculations\n",
+ "f_v = 1\n",
+ "f_l = P_s\n",
+ "del_G2 = R*T*math.log(f_v/f_l)*10**-3;\t\t\t # Calculations of the value of del_G2 in kJ\n",
+ "del_G = del_G2+del_G1;\t\t\n",
+ "\n",
+ "# Results\n",
+ "print 'The standard Gibbs free energy of formation of CH3OHg = %0.3f kJ '%(del_G);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The standard Gibbs free energy of formation of CH3OHg = -161.781 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No : 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "#The water gas shift reaction is given by: CO2(g)+H2(g)--->CO(g)+H2O(g)\n",
+ "T1 = 298.15 \t\t\t #initial temperature in K\n",
+ "Ka1 = 8.685*10**-6;\t\t\t #equilibrium constant for the water-gas shift reaction at T1 (no unit)\n",
+ "T2 = 1000.\t\t \t #temperature at which the equilibrium constant has to be determined in K\n",
+ "R = 8.314;\t\t\t #universal gas constant in J/molK\n",
+ "del_Hf = [-110.532,-241.997,-393.978,0];\t\t\t #the standard enthalpy of formation of CO(g),H2O(g),CO2(g) and H2(g) in kJ\n",
+ "n = [1,1,-1,-1];\t\t\t #stoichiometric coefficients of CO(g),H2O(g),CO2(g) and H2(g) respectively (no unit)\n",
+ "\n",
+ "# Calculations\n",
+ "#It is assumed that del_H is constant in the temperature range T1 and T2\n",
+ "del_H = (n[0]*del_Hf[0])+(n[1]*del_Hf[1])+(n[2]*del_Hf[2])+(n[3]*del_Hf[3])\n",
+ "Ka2 = Ka1*math.exp(((del_H*10**3)/R)*((1./T1)-(1./T2)));\t\t\t \n",
+ "\n",
+ "# Results\n",
+ "print 'The equilibrium constant for the water gas shift reaction at 1000K = %f '%(Ka2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equilibrium constant for the water gas shift reaction at 1000K = 1.085357 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.4 Page No : 492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "P = 0.1 \t\t\t #pressure in MPa\n",
+ "T1 = 298.15;\t\t\t #initial temperature in K\n",
+ "Ka1 = 8.685*10**-6;\t\t\t #equilibrium constant for the water-gas shift reaction at T1 (no unit) (from Example 14.1)\n",
+ "T2 = 1000. \t\t\t #temperature at which the equilibrium constant is to be found, in K\n",
+ "del_H = 41.449;\t\t\t #smath.tan(math.radiansard enthalpy of the reaction at T1 in kJ (from Example 14.3)\n",
+ "a = [28.068,28.850,45.369,27.012];\n",
+ "b = [4.631*10**-3,12.055*10**-3,8.688*10**-3,3.509*10**-3]\n",
+ "c = [0,0,0,0];\n",
+ "d = [0,0,0,0];\n",
+ "e = [-0.258*10**5,1.006*10**5,-9.619*10**5,0.690*10**5]\n",
+ "n = [1,1,-1,-1]\n",
+ "R = 8.314;\t\t\n",
+ "Ka2_prev = 1.0855\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "del_a = (n[0]*a[0])+(n[1]*a[1])+(n[2]*a[2])+(n[3]*a[3]);\n",
+ "del_b = (n[0]*b[0])+(n[1]*b[1])+(n[2]*b[2])+(n[3]*b[3]);\n",
+ "del_c = (n[0]*c[0])+(n[1]*c[1])+(n[2]*c[2])+(n[3]*c[3]);\n",
+ "del_d = (n[0]*d[0])+(n[1]*d[1])+(n[2]*d[2])+(n[3]*d[3]);\n",
+ "del_e = (n[0]*e[0])+(n[1]*e[1])+(n[2]*e[2])+(n[3]*e[3]);\n",
+ "del_H0 = (del_H*10**3)-((del_a*T1)+((del_b/2)*T1**2)+((del_c/3)*T1**3)+((del_d/4)*T1**4)-(del_e/T1));\n",
+ "I = (math.log(Ka1))-((1./R)*((-del_H0/T1)+(del_a*math.log(T1))+((del_b/2)*T1)+((del_c/6)*T1**2)+((del_d/12)*T1**3)+((del_e/(2*T1**2)))));\n",
+ "Ka2 = math.exp(((1./R)*((-del_H0/T2)+(del_a*math.log(T2))+((del_b/2)*T2)+((del_c/6)*T2**2)+((del_d/12)*T2**3)+((del_e/(2*T2**2)))))+I);\n",
+ "\n",
+ "\t\t\t # Results\n",
+ "print 'The equilibrium constant for the water gas shift reaction at 1000K\\\n",
+ " by taking into account the variation of del_H with temperature = %f '%(Ka2);\n",
+ "print 'The equilibrium constant for the water gas shift reaction at 1000K without\\\n",
+ " considering the variation of del_H with temperature as given by Example14.3 = %0.4f '%(Ka2_prev);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equilibrium constant for the water gas shift reaction at 1000K by taking into account the variation of del_H with temperature = 0.664976 \n",
+ "The equilibrium constant for the water gas shift reaction at 1000K without considering the variation of del_H with temperature as given by Example14.3 = 1.0855 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.5 page no : 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "deltaGf = -161.781 # kJ from exa. 14.2\n",
+ "deltaG298 = deltaGf - (-137.327)\n",
+ "deltaH298 = -200.660 - (-110.532)\n",
+ "deltaA = 18.382 - 28.068 - 2 * 27.012\n",
+ "deltaB = (101.564 - 4.631 - 2 * 3.509) * 10**-3\n",
+ "deltaC = -28.683 * 10**-6\n",
+ "deltaD = 0\n",
+ "deltaE = (0.258 - 2 * 0.690) * 10**5\n",
+ "T = 298.15\n",
+ "\n",
+ "# calculations\n",
+ "deltaHf298 = -238.648 + 37.988\n",
+ "deltaH0 = Symbol('deltaH0')\n",
+ "Eq = deltaH0 + deltaA*T + deltaB*T**2/2 + deltaC*T**3/3 - deltaE/T - deltaH298*1000\n",
+ "deltaH0 = solve(Eq,deltaH0)[0]/1000\n",
+ "I = Symbol('I')\n",
+ "\n",
+ "Eq1 = deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I + 24454\n",
+ "I = round(solve(Eq1,I)[0],3)\n",
+ "\n",
+ "T = 500\n",
+ "deltaG500 = (deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I)/1000\n",
+ "\n",
+ "Ka = math.exp(-22048/(8.314*T))\n",
+ "e = Symbol('e')\n",
+ "Eq3 = ( (e*(3-2*e)**2) / (1 - e)**3) / 0.4973 -1\n",
+ "e = round(solve(Eq3,e)[0],4)\n",
+ "yCH3OH = e/(3-2*e)\n",
+ "yco = (1-e)/(3-2*e)\n",
+ "yh2 = (2*(1-e) / (3-2*e))\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.4f\"%e\n",
+ "print \"YCH30H = %.4f\"%yCH3OH\n",
+ "print \"YCO = %.4f\"%yco\n",
+ "print \"YH2 = %.4f\"%yh2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 0.0506\n",
+ "YCH30H = 0.0175\n",
+ "YCO = 0.3275\n",
+ "YH2 = 0.6550\n"
+ ]
+ }
+ ],
+ "prompt_number": 103
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.6, Page 496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy.solvers import solve \n",
+ "from sympy import Symbol \n",
+ "\n",
+ "#Variables\n",
+ "e = Symbol('e')\n",
+ "\n",
+ "#Calculations\n",
+ "x = solve((((e/(3-2*e))/(((1-e)/(3-2*e))*(((2*(1-e))/(3-2*e))**2)))-49.73),e)\n",
+ "print \"e =\",round(x[0],3)\n",
+ "ych3oh = x[0]/(3-2*x[0])\n",
+ "yco = (1-x[0])/(3-2*x[0])\n",
+ "yh2 = ((2*(1-x[0]))/(3-2*x[0]))\n",
+ "print \"yCH3OH =\",round(ych3oh,4)\n",
+ "print \"yCO =\",round(yco,4)\n",
+ "print \"yH2 =\",round(yh2,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e = 0.801\n",
+ "yCH3OH = 0.5731\n",
+ "yCO = 0.1423\n",
+ "yH2 = 0.2846\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.7 pageno : 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka = 4.973*10**-3 # from example 14.5\n",
+ "Ky = 25 * Ka # from example 14.5\n",
+ "\n",
+ "# calculations\n",
+ "e = Symbol('e')\n",
+ "Eq1 = ( (e*(4-e)**2)/(1-e)**3 ) / .1243 - 1\n",
+ "e = round(solve(Eq1,e)[0],5)\n",
+ "yCH3OH = e/(8-2*e)\n",
+ "yco = (1-e)/(8-2*e)\n",
+ "yh2 = (2*(1-e) / (8-2*e))\n",
+ "yA = 5/(8-2*e)\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.5f\"%e\n",
+ "print \"YCH30H = %.5f\"%yCH3OH\n",
+ "print \"YCO = %.5f\"%yco\n",
+ "print \"YH2 = %.5f\"%yh2\n",
+ "print \"YA = %.5f\"%yA"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 0.00762\n",
+ "YCH30H = 0.00095\n",
+ "YCO = 0.12428\n",
+ "YH2 = 0.24857\n",
+ "YA = 0.62619\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.8 pageno : 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka = 4.973*10**-3 # example 14.5\n",
+ "Ky = 25 * Ka # example 14.5\n",
+ "\n",
+ "# calculations and results\n",
+ "e = Symbol('e')\n",
+ "Eq1= ((e*(1-e))/(1-2*e)**2)/.03108 - 1\n",
+ "e = solve(Eq1,e)\n",
+ "print \"part a\"\n",
+ "print \"e = %.5f and e = %.5f\"%(e[0],e[1])\n",
+ "print \"The admissible value is e = %.5f\"%e[0]\n",
+ "\n",
+ "print \"part b\"\n",
+ "print \"e = 0.0506 ( from example 14.5 )\"\n",
+ "\n",
+ "x = 4\n",
+ "e = Symbol('e')\n",
+ "Eq1= ((e/(1-e) ) * ( (5 - 2*e)/ (2-e) )**2)/ 0.4973 - 1\n",
+ "e = solve(Eq1,e)\n",
+ "print \"part c\"\n",
+ "print \"e = %.4f\" %(e[0])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part a\n",
+ "e = 0.02845 and e = 0.97155\n",
+ "The admissible value is e = 0.02845\n",
+ "part b\n",
+ "e = 0.0506 ( from example 14.5 )\n",
+ "part c"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "e = 0.0727\n"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.9 pageno : 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka = 4.973*10**-3 # example 14.5\n",
+ "Ky = 25 * Ka # example 14.5\n",
+ "\n",
+ "# calculations\n",
+ "e = Symbol('e')\n",
+ "Eq1 = (0.02 + e)*(1.51-e)**2 / (1-e)**3 / Ky - 1\n",
+ "e = solve(Eq1,e)[0]\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.5f\"%e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 0.03165\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.10 pageno : 500"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "\n",
+ "from matplotlib.pyplot import *\n",
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "from scipy.integrate import quad\n",
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "deltaA = round(28.850 - 27.012 - 0.5 * 30.255,2)\n",
+ "deltaB = (12.055 - 3.509 - 0.5 * 4.207) * 10**-3\n",
+ "deltaC = 0\n",
+ "deltaD = 0\n",
+ "deltaE = round((1.006 - 0.690 + 0.5 * 1.887),3) * 10**5\n",
+ "deltaH298 = -241.997\n",
+ "Ts = [2000,2500,3000,3500,3800]\n",
+ "deltaHt = []\n",
+ "deltaGt = []\n",
+ "Ka = []\n",
+ "Ea = []\n",
+ "Eb = []\n",
+ "\n",
+ "# Calculations\n",
+ "T = 298.15\n",
+ "deltaH0 = Symbol('deltaH0')\n",
+ "Eq = deltaH0 + deltaA*T + deltaB*T**2/2 + deltaC*T**3/3 + deltaD*T**4/4 - deltaE/T - deltaH298*1000\n",
+ "deltaH0 = round(solve(Eq,deltaH0)[0]/1000,3)\n",
+ "I = Symbol('I')\n",
+ "Eq1 = deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I + 228600\n",
+ "I = round(solve(Eq1,I)[0],3)\n",
+ "\n",
+ "def fun1(T1):\n",
+ " #return 42.1395*(T1 - 298.15) + 5.613*10**-3/2*(T1**2 - 298.15**2) + .2535 * 10**5 * (1./T1 - 1/298.15)\n",
+ " return 42.1395*T1 + 5.613*10**-3/2 * T1**2 + 0.2535*10**5/T1 - 12898.37\n",
+ "\n",
+ "for T in Ts:\n",
+ " Ht = deltaH0*1000 + deltaA*T + deltaB*T**2/2 + deltaC*T**3/3 + deltaD*T**4/4 - deltaE/T \n",
+ " Gt = deltaH0*1000 - deltaA*T*math.log(T) - deltaB*T**2/2 - deltaC*T**3/6 - deltaD*T**4/12 - deltaE/(2*T) - 8.314 * T * I \n",
+ " ka = math.exp(-Gt/(8.314*T))\n",
+ " e = Symbol('e')\n",
+ " Eq2 = ( e * (3-e)**(1./2) ) / ( 1-e)**(3./2) / ka - 1\n",
+ " b = round(solve(Eq2)[0],4)\n",
+ " a = (quad(fun1,298.15,T)[0]/1000) / -Ht\n",
+ " deltaHt.append(Ht)\n",
+ " deltaGt.append(Gt)\n",
+ " Ka.append(ka)\n",
+ " Ea.append(a)\n",
+ " Eb.append(b)\n",
+ "\n",
+ "\n",
+ "# Results \n",
+ "plot(Ts,Ea,\"g\")\n",
+ "plot(Ts,Eb,\"b\")\n",
+ "xlabel(\"T(k)\")\n",
+ "ylabel(\"E\")\n",
+ "suptitle(\"Plot of e versus adiabatic reaction temperature\")\n",
+ "show()\n",
+ "print \"from plot, it can be seen that both lines are simultaneously satisfied at the point \\\n",
+ "\\nintersection where e = 0.68 and T = 3440 K\"\n",
+ "e = 0.68\n",
+ "T = 3440\n",
+ "yh2 = (1- e)/(1.5 - 0.5*e)\n",
+ "yo2 = 0.5*(1-e) / (1.5-0.5*e)\n",
+ "yh2o = e/(1.5- 0.5*e)\n",
+ "\n",
+ "print \"yH2 = %.4f\"%yh2\n",
+ "print \"yO2 = %.4f\"%yo2\n",
+ "print \"yH2O = %.4f\"%yh2o"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['solve', 'draw_if_interactive', 'e']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x51ff6d0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from plot, it can be seen that both lines are simultaneously satisfied at the point \n",
+ "intersection where e = 0.68 and T = 3440 K\n",
+ "yH2 = 0.2759\n",
+ "yO2 = 0.1379\n",
+ "yH2O = 0.5862\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.11 Page No : 506"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "stoichio_matrix = matrix([[-1,-1, 1, 3, 0, 0],[0, -1, -1, 1, 1 ,0],[-1, -2, 0 ,4, 1, 0], \\\n",
+ " [0,0, 1, 0, -1, 0.5],[-1, 2 ,0, 0, 1, -2],[-1, 1, 1, 1, 0, -1]])\t\t\t #Framing the stoichiometric coefficient matrix\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "\n",
+ "r = linalg.matrix_rank(stoichio_matrix)\n",
+ "\n",
+ "stoichio_matrix[0] = -stoichio_matrix[0];\n",
+ "stoichio_matrix[2] = stoichio_matrix[2]+stoichio_matrix[0];\n",
+ "stoichio_matrix[5:] = stoichio_matrix[5:]+stoichio_matrix[0];\n",
+ "stoichio_matrix[6:] = stoichio_matrix[6:]+stoichio_matrix[0];\n",
+ "stoichio_matrix[1] = -stoichio_matrix[1];\n",
+ "stoichio_matrix[2] = stoichio_matrix[2]+stoichio_matrix[1];\n",
+ "stoichio_matrix[5:] = stoichio_matrix[5:]-(3*stoichio_matrix[1]);\n",
+ "stoichio_matrix[6:] = stoichio_matrix[6:]-(2*stoichio_matrix[1]);\n",
+ "x = stoichio_matrix[:3]\n",
+ "y = stoichio_matrix[:4];\n",
+ "stoichio_matrix[:4] = y;\n",
+ "stoichio_matrix[:3] = x;\n",
+ "stoichio_matrix[5:] = stoichio_matrix[5:]+(4*stoichio_matrix[3]);\n",
+ "stoichio_matrix[6:] = stoichio_matrix[6:]+(2*stoichio_matrix[3]);\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print ' The stoichiometric coefficient matrix after performing the elementary row operations = ';\n",
+ "print (stoichio_matrix);\n",
+ "print ' The number of primary reactions = %d'%(r);\n",
+ "print ' The non zero rows are 1,2,4'\n",
+ "print ' The primary reactions are: CH4g)+H2Og)--->COg)+3H2g)%( COg)+H2Og)--->CO2g)+H2g),( CO2g)--->COg)+1./2)O2g)'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The stoichiometric coefficient matrix after performing the elementary row operations = \n",
+ "[[ 1. 1. -1. -3. -0. -0. ]\n",
+ " [-0. 1. 1. -1. -1. -0. ]\n",
+ " [ 0. 0. 0. 0. 0. 0. ]\n",
+ " [ 0. 0. 1. 0. -1. 0.5]\n",
+ " [-1. 2. 0. 0. 1. -2. ]\n",
+ " [ 0. -1. 1. 1. -1. 1. ]]\n",
+ " The number of primary reactions = 3\n",
+ " The non zero rows are 1,2,4\n",
+ " The primary reactions are: CH4g)+H2Og)--->COg)+3H2g)%( COg)+H2Og)--->CO2g)+H2g),( CO2g)--->COg)+1./2)O2g)\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.13 pageno : 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Ka1 = 0.1429\n",
+ "Ka2 = 2\n",
+ "\n",
+ "# calculations and Results\n",
+ "\n",
+ "# assume e1 = .3\n",
+ "e2 = Symbol('e2')\n",
+ "Eq1 = ((0.3 - e2)*(0.3+e2) /((0.7 - e2) * 0.7)) / 0.1429 -1\n",
+ "e2 = solve(Eq1)\n",
+ "print \"E2 = %.1f and %.1f \"%(e2[0],e2[1])\n",
+ "\n",
+ "# since negative value is inadmissible. e2 = 0.2\n",
+ "e2 = round(e2[1],1)\n",
+ "e1 = Symbol('e1')\n",
+ "Eq2 = ((e1 + 0.2)*(0.2) /((0.8 - e1) *(e1 - 0.2) ) ) / 2 -1\n",
+ "e1 = solve(Eq2)\n",
+ "print \"E1 = %.1f and %.1f \"%(e1[0],e1[1])\n",
+ "e1 = round(e1[0],1)\n",
+ "print \"Satisfied results when e1 = %.1f and e2 = %.1f\"%(e1,e2)\n",
+ "\n",
+ "yA = (1-e1-e2)/2\n",
+ "yB = (1-e1)/2\n",
+ "yC = (e1-e2)/2\n",
+ "yD = (e1+e2)/2\n",
+ "yE = e2/2\n",
+ "\n",
+ "print \"yA = %.2f\"%yA\n",
+ "print \"yB = %.2f\"%yB\n",
+ "print \"yC = %.2f\"%yC\n",
+ "print \"yD = %.2f\"%yD\n",
+ "print \"yE = %.2f\"%yE\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E2 = -0.1 and 0.2 \n",
+ "E1 = 0.3 and 0.6 \n",
+ "Satisfied results when e1 = 0.3 and e2 = 0.2\n",
+ "yA = 0.25\n",
+ "yB = 0.35\n",
+ "yC = 0.05\n",
+ "yD = 0.25\n",
+ "yE = 0.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 214
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 14.14 page no : 515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "from sympy.solvers import solve\n",
+ "\n",
+ "# variables\n",
+ "Kc = 2.92\n",
+ "\n",
+ "# Calculations and results\n",
+ "e = Symbol('e')\n",
+ "Eq1 = (e*(10+e)/((5-e)*(10-e)))/Kc - 1\n",
+ "e = round(solve(Eq1)[0],4)\n",
+ "print \"E = %.4f\"%e\n",
+ "\n",
+ "cA = 5-e\n",
+ "cB = 10-e\n",
+ "cC = e\n",
+ "cD = 10+e\n",
+ "\n",
+ "print \"CA = %.4f kmol/m*3\"%cA\n",
+ "print \"CB = %.4f kmol/m*3\"%cB\n",
+ "print \"CC = %.4f kmol/m*3\"%cC\n",
+ "print \"CD = %.4f kmol/m*3\"%cD"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 3.0446\n",
+ "CA = 1.9554 kmol/m*3\n",
+ "CB = 6.9554 kmol/m*3\n",
+ "CC = 3.0446 kmol/m*3\n",
+ "CD = 13.0446 kmol/m*3\n"
+ ]
+ }
+ ],
+ "prompt_number": 220
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.15, Page 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "T = 1200. \t\t\t #temperature in K\n",
+ "T0 = 298.15 \t\t\t #reference temperature in K\n",
+ "a = [41.84,45.369,82.34];\n",
+ "b = [20.25*10**-3,8.688*10**-3,49.75*10**-3];\n",
+ "c = [0,0,0];\n",
+ "d = [0,0,0];\n",
+ "e = [-4.51*10**5,-9.619*10**5,-12.87*10**5];\n",
+ "del_Gf = [-604.574,-394.815,-1129.515]\n",
+ "del_Hf = [-635.975,-393.978,-1207.683]\n",
+ "n = [1,1,-1]\n",
+ "R = 8.314\n",
+ "\n",
+ "# Calculations\n",
+ "del_G = (n[0]*del_Gf[0])+(n[1]*del_Gf[1])+(n[2]*del_Gf[2]);\n",
+ "del_H = (n[0]*del_Hf[0])+(n[1]*del_Hf[1])+(n[2]*del_Hf[2]);\n",
+ "del_a = (n[0]*a[0])+(n[1]*a[1])+(n[2]*a[2]);\n",
+ "del_b = (n[0]*b[0])+(n[1]*b[1])+(n[2]*b[2]);\n",
+ "del_c = (n[0]*c[0])+(n[1]*c[1])+(n[2]*c[2]);\n",
+ "del_d = (n[0]*d[0])+(n[1]*d[1])+(n[2]*d[2]);\n",
+ "del_e = (n[0]*e[0])+(n[1]*e[1])+(n[2]*e[2]);\n",
+ "del_H0 = ((del_H*10**3)-((del_a*T0)+((del_b/2)*T0**2)+((del_c/3)*T0**3)+((del_d/4)*T0**4)-(del_e/T0)))*10**-3;\n",
+ "IR = (1./(T0))*((del_H0*10**3)-(del_a*T0*math.log(T0))-((del_b/2)*T0**2)-((del_c/6)*T0**3)-((del_d/12)*T0**4)-((del_e/2)*(1./T0))-(del_G*10**3));\n",
+ "del_G_T = ((del_H0*10**3)-(del_a*T*math.log(T))-((del_b/2)*T**2)-((del_c/6)*T**3)-((del_d/12)*T**4)-((del_e/2)*(1./T))-(IR*T))*10**-3;\n",
+ "Ka = math.exp((-del_G_T*10**3)/(R*T))\n",
+ "y = 1;\n",
+ "phi = 1;\n",
+ "f0 = 1;\n",
+ "P = (Ka*f0)/(phi*y)\n",
+ "\n",
+ "# Results\n",
+ "print ' The decomposition pressure,P = %f bar '%(P);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The decomposition pressure,P = 2.384295 bar \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file