diff options
author | Jovina Dsouza | 2014-06-18 12:43:07 +0530 |
---|---|---|
committer | Jovina Dsouza | 2014-06-18 12:43:07 +0530 |
commit | 206d0358703aa05d5d7315900fe1d054c2817ddc (patch) | |
tree | f2403e29f3aded0caf7a2434ea50dd507f6545e2 /Elements_Of_Mass_Transfer_Part_1 | |
parent | c6f0d6aeb95beaf41e4b679e78bb42c4ffe45a40 (diff) | |
download | Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.tar.gz Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.tar.bz2 Python-Textbook-Companions-206d0358703aa05d5d7315900fe1d054c2817ddc.zip |
adding book
Diffstat (limited to 'Elements_Of_Mass_Transfer_Part_1')
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/README.txt | 10 | ||||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/ch2.ipynb | 1682 | ||||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/ch3.ipynb | 616 | ||||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/ch5.ipynb | 998 | ||||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/ch6.ipynb | 1312 | ||||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/ch7.ipynb | 738 | ||||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/screenshots/dry-time.png | bin | 0 -> 45352 bytes | |||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/screenshots/enthalpy.png | bin | 0 -> 34749 bytes | |||
-rw-r--r-- | Elements_Of_Mass_Transfer_Part_1/screenshots/tower.png | bin | 0 -> 20201 bytes |
9 files changed, 5356 insertions, 0 deletions
diff --git a/Elements_Of_Mass_Transfer_Part_1/README.txt b/Elements_Of_Mass_Transfer_Part_1/README.txt new file mode 100644 index 00000000..0640b5db --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/README.txt @@ -0,0 +1,10 @@ +Contributed By: Ashutosh Kumar +Course: btech +College/Institute/Organization: Indian Institute of Technology - Bombay, CHAR Lab 2 +Department/Designation: Electrical Department +Book Title: Elements Of Mass Transfer (Part 1) +Author: N. Anantharaman & K. M. M. S. Begum +Publisher: Prentice - Hall Of India, New Delhi +Year of publication: 2005 +Isbn: 8120327284 +Edition: 1st
\ No newline at end of file diff --git a/Elements_Of_Mass_Transfer_Part_1/ch2.ipynb b/Elements_Of_Mass_Transfer_Part_1/ch2.ipynb new file mode 100644 index 00000000..b72246a4 --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/ch2.ipynb @@ -0,0 +1,1682 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2 : Diffusion" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.1.a " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of nitrogen carbondioxide mixture\n", + "\n", + "# let A denote nitrogen and B denote carboondioxide\n", + "\n", + "# variable declaration \n", + "rA=.3798;\n", + "rB=.3941;\n", + "\n", + "# Calculation\n", + "rAB=(rA+rB)/2; #molecular seperation at collision \n", + "ebyk_A=71.4;\n", + "ebyk_B=195.2;\n", + "ebyk_AB=(ebyk_A/ebyk_B)**.5; #energy of molecular attraction\n", + "pt=1.013*10**5; #absolute total pressure in pascal\n", + "T=298; #absolute temperature in kelvin\n", + "s=T/ebyk_AB; #collision function\n", + " #from chart f(T/ebyk_AB) = 0.5 let it be = x\n", + "x=.5; #collision function\n", + "MA=28; #molecular weight of nitrogen\n", + "MB=44; #molecular weight of carbondioxide\n", + "Mnew=((1./MA)+(1./MB))**.5;\n", + "Dab= 10**-4*(1.084-.249*(Mnew))*T**1.5*((Mnew))/(pt*x*rAB**2);\n", + "\n", + "# Result\n", + "print \" the diffisivity of nitrogen-carbondioxide is :%f *10**-5 m**2/s\"%(Dab/10**-5)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the diffisivity of nitrogen-carbondioxide is :1.678856 *10**-5 m**2/s\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.1.b " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#diffusivity of hydrogen chloride mixture\n", + "# let A denote Hydrogen chloride and B denote air\n", + "\n", + "# variable declaration \n", + "\n", + "#\"part(ii)\"\n", + "rA=.3339;\n", + "rB=.3711;\n", + "\n", + "# Calculation \n", + "\n", + "rAB=(rA+rB)/2; #molecular seperation at collision \n", + "ebyk_A=344.7;\n", + "ebyk_B=78.6;\n", + "ebyk_AB=(ebyk_A/ebyk_B)**.5; #energy of molecular attraction\n", + "pt=200.*10**3; #absolute total pressure in pascal\n", + "T=298.; #absolute temperature in kelvin\n", + "s=T/ebyk_AB; #collision function\n", + " #from chart f(T/ebyk_AB) = 0.62 let it be = x\n", + "x=0.62; #collision function\n", + "MA=36.5; #molecular weight of hydrogen chloride\n", + "MB=29; #molecular weight of air\n", + "Mnew=((1./MA)+(1./MB))**.5;\n", + "Dab=10.**-4*(1.084-.249*(Mnew))*T**1.5*((Mnew))/(pt*x*rAB**2);\n", + "\n", + " # Result\n", + "print \"\\n the diffisivity of hydrogen chloride-air is :%f *10**-6 m**2/s\"%(Dab/10**-6)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the diffisivity of hydrogen chloride-air is :8.488596 *10**-6 m**2/s\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.2 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# the diffusivity of isoamyl alcohol\n", + "#kopp's law is valid\n", + "\n", + "# variable declaration \n", + "\n", + "u=1.145*10**-3; #viscosity of water1.145cp\n", + "v_a=5*.0148+12*.0037+1*.0074; #by kopp's law\n", + "t=288; #temperature of water in kelvin\n", + "MB=18; #molecular weight of water\n", + "phi=2.26; #association parameter for solvent-water\n", + "\n", + "# Calculation\n", + "D_ab=(117.3*10**-18)*((phi*MB)**.5)*(t)/(u*(v_a)**.6);\n", + "\n", + " # Result\n", + "print \"\\n the diffusivity of isoamyl alcohol is :%f *10**-9 m**2/s\"%(D_ab/10**-9)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the diffusivity of isoamyl alcohol is :0.652780 *10**-9 m**2/s\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.3 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of ccl4 through oxygen\n", + "\n", + "# variable declaration \n", + "\n", + "pa1=(33./760)*1.013*10**5; #vapour pressure of ccl4 at 273 in pascal\n", + "pa2=0;\n", + "d=1.59; \n", + "import math #density of liquid ccl4 in g/cm**3\n", + "#considering o2 to be non diffusing and with \n", + "T=273.; #temperature in kelvin\n", + "pt=(755./780)*1.013*10**5; #total pressure in pascal\n", + "z=.171; #thickness of film\n", + "a=.82*10**-4; #cross-sectional area of cell in m**2\n", + "v=.0208; #volume of ccl4 evaporated \n", + "t=10.; #time of evaporation\n", + "MB=154.; \n", + "\n", + "# Calculation\n", + "#molecular wght of ccl4\n", + "rate=v*d/(MB*t); #.0208cc of ccl4 is evaporating in 10hrs \n", + "Na=rate*10.**-3/(3600.*a); #flux in kmol/m**2*S\n", + "\n", + "D_ab=Na*z*8314*273./(pt*(math.log((pt-pa2)/(pt-pa1)))); #molecular diffusivity in m**2/s\n", + "\n", + " # Result\n", + "print \"the diffusivity of ccl4 through oxygen:%.2f *10**-6 m**2/s\"%(D_ab/10.**-6)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the diffusivity of ccl4 through oxygen:6.27 *10**-6 m**2/s\n" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.4 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate at which crystal dissolves\n", + "\n", + "\n", + "# variable declaration \n", + "\n", + "z=.0305*10**-3; #wall thickness sorrounding the crystal\n", + "x1=0.0229;\n", + "w1=160.; #molecular weight of copper sulphate\n", + "w2=18.; #molecular weight of water\n", + "Dab=7.29*10**-10; #diffusivity of copper sulphatein m**2/s\n", + " #av=d/m\n", + " \n", + "# Calculation \n", + "Mavg=x1*w1+(1-x1)*w2; #average molecular wght of solution\n", + "d1=1193; #density of copper sulphate solution\n", + "av1=d1/Mavg; #value of (d/m) of copper solution\n", + "\n", + " #for pure water\n", + "d2=1000.; #density of water\n", + "m2=18.; #molecular wght of water\n", + "av2=d2/m2; #value of (d/m) of water\n", + "allavg=(av1+av2)/2.; #average value of d/m\n", + "xa2=0;\n", + "import math\n", + "\n", + "# Result\n", + "Na=Dab*(allavg)*math.log((1-xa2)/(1-x1))/z; #flux of cuso4 from crystal surface to bulk solution\n", + "print \" the rate at which crystal dissolves :%f *10**-5 kmol/m**2*s\"%(Na/10**-5)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " the rate at which crystal dissolves :3.092260 *10**-5 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.5.a" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of diffusion of alcohol water vapour mixture\n", + "#position 1 moles molefraction\n", + "# air 80 0.8\n", + "# water 20 0.2\n", + "\n", + "#position 2 moles molefraction\n", + "# air 10 0.1\n", + "# water 90 0.9\n", + "\n", + "# variable declaration \n", + "\n", + "ya1=0.8;\n", + "ya2=0.1;\n", + "T=(273+35); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.3*10**-3; #gas film thickness in m\n", + "Dab=.18*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + "\n", + "# Calculation\n", + "Na=Dab*pt*(ya1-ya2)/(z*R*T) #diffusion flux in kmol/m**2*s\n", + "rate=Na*100*10**-4*3600*46; #since molecular weight of mixture is 46\n", + "\n", + "# Result\n", + "print \"\\n rate of diffusion of alcohol-water vapour :%f kg/hr \"%rate\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " rate of diffusion of alcohol-water vapour :2.751429 kg/hr \n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.5.b" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of diffusion if water layer is stagnant\n", + "\n", + "# variable declaration \n", + "\n", + "ya1=0.8;\n", + "ya2=0.1;\n", + "T=(273+35); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.3*10**-3; #gas film thickness in m\n", + "Dab=.18*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + "import math\n", + "#diffusion through stagnant film \n", + "\n", + "# Calculation\n", + "Na=Dab*pt*math.log((1-ya2)/(1-ya1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "rate=Na*100*10**-4*3600*46; #since molecular weight of mixture is 46\n", + "\n", + "# Result\n", + "print \"\\n rate of diffusion if water layer is stagnant :%f *10**-3 kg/s \"%(rate/(3600*10**-3))\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " rate of diffusion if water layer is stagnant :1.642207 *10**-3 kg/s \n" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.6 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of loss of hydrogen\n", + "\n", + "# variable declaration \n", + "T=298.; #temperature in kelvin\n", + "pt=1.*1.013*10**5; #total pressure in pascal\n", + "ID=25.*10**-3; #internal diameter in m of unvulcanised rubber in m\n", + "OD=50.*10**-3; #internal diameter in m of unvulcanised rubber in m\n", + "Ca1=2.37*10**-3; #conc. of hydrogen at the inner surface of the pipe in kmol/m**3\n", + "Ca2=0; #conc. of hydrogen at 2\n", + "Dab=1.8*10**-10; #diffusion coefficient in cm**2/s\n", + "l=2; #length of pipe in m\n", + "import math\n", + "\n", + "# Calculation \n", + "# Va=Da*Sa*(pa1-pa2)/z;\n", + "z=(50-25)*10**-3/2.; #wall thickness in m\n", + "Va=Dab*(Ca1-Ca2)/z; #diffusion through a flat slab of thickness z \n", + "Sa=2*3.14*l*(OD-ID)/(2*math.log(OD/ID)); #average mass transfer area of \n", + "rate=Va*Sa; #rate of loss of hydrogen by diffusion\n", + "\n", + "\n", + "# Result\n", + "\n", + "print \"\\n rate of loss hydrogen by diffusion through a pipe of 2m length :%f*10**-12kmol/s\"%(rate/10.**-12)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " rate of loss hydrogen by diffusion through a pipe of 2m length :7.730099*10**-12kmol/s\n" + ] + } + ], + "prompt_number": 36 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.7 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# ammonia diffusion through nitrogen\n", + "\n", + "# variable declaration \n", + "pa1=(1.5)*10**4; #vapour pressure of ammonia at pt.1 \n", + "pa2=(0.5)*10**4; #vapour pressure of ammonia at pt.2\n", + "Dab=2.3*10**-5 #molecular diffusivity in m**2/s\n", + "z=0.15; #diffusion path in m\n", + "R=8314.; #universal gas constant \n", + " #ammonia diffuses through nitrogen under equimolar counter diffusion\n", + "T=298.; #temperature in kelvin\n", + "pt=1.013*10**5; #total pressure in pascal\n", + "\n", + "# Calculation\n", + "Na=Dab*(pa1-pa2)/(z*R*T); #flux in kmol/m**2*S\n", + "\n", + "# Result\n", + "print \"the ammonia diffusion through nitrogen under equimolar \\\n", + " counter diffusion:%f *10**-7 kmol/m**2*s\"%(Na/10**-7);\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the ammonia diffusion through nitrogen under equimolar counter diffusion:6.188855 *10**-7 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 37 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate at which crystal dissolves\n", + "#position 1 moles molefraction weight\n", + "# ethanol 0.1478 0.02775 6.80\n", + "# water 5.18 0.9722 93.20\n", + "\n", + "import math\n", + "#position 2 moles molefraction weight\n", + "# ethanol 0.235 0.0453 10.8\n", + "# water 4.96 0.9547 89.20\n", + "\n", + "# variable declaration \n", + "\n", + "z=0.4*10**-2; #film thickness sorrounding the crystal\n", + "xa1=0.0453; #mole fraction of ethanol at pos.2\n", + "xa2=0.02775; #mole fraction of ethanol at pos.1\n", + "w1=46; #molecular weight of ethanol\n", + "w2=18; #molecular weight of water\n", + "Dab=74*10**-5*10**-4; #diffusivity of ethanol water sol.in m**2/s\n", + " #av=d/m\n", + " \n", + "# Calculation \n", + "Mavg1=xa2*w1+(1-xa2)*w2; #average molecular wght of solution at pos 1\n", + "d1=0.9881*10**3; # density of 6.8 wt% solution\n", + "av1=d1/Mavg1; #value of (d/m) of copper solution\n", + "\n", + " #for pure water\n", + "d2=972.8; # density of 10.8 wt% solution\n", + "Mavg2=xa1*w1+(1-xa1)*w2; #average molecular wght of solution at pos.2\n", + "av2=d2/Mavg2; #value of (d/m) of water\n", + "\n", + "allavg=(av1+av2)/2; #average value of d/m\n", + "Na=Dab*(allavg)*math.log((1-xa2)/(1-xa1))/z; #steady state flux in kmol/m**2*s of ethanol water sol.\n", + "\n", + " # Result\n", + "print \"\\n the rate at which crystal dissolves :%f *10**-5 kmol/m**2*s\"%(Na/10**-5)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the rate at which crystal dissolves :1.737360 *10**-5 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.9" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion rate of acetic acid\n", + "#position 1 kmoles molefraction weight\n", + "# acetic acid 0.167 0.0323 10\n", + "# water 5 0.9677 90\n", + "\n", + "#position 2 kmoles molefraction weight\n", + "# aceitic acid 0.067 0.0124 4\n", + "# water 5.33 0.9876 96\n", + "import math\n", + "# variable declaration \n", + "\n", + " #basis : 100kg of mixture\n", + "z=2*10**-3; #film thickness sorrounding the water\n", + "xa1=0.0323; #mole fraction of ethanol at pos.2\n", + "xa2=0.0124; #mole fraction of ethanol at pos.1\n", + "w1=60.; #molecular weight of acetic acid\n", + "w2=18.; #molecular weight of water\n", + "Dab=0.000095; #diffusivity of acetic water sol.in m**2/s\n", + " #av=d/m\n", + "# Calculation \n", + "Mavg1=xa1*w1+(1-xa1)*w2; #average molecular wght of solution at pos 1\n", + "d1=1013.; # density of 10 % acid\n", + "av1=d1/Mavg1; #value of (d/m) of copper solution\n", + "\n", + " #for pure water\n", + "d2=1004; #density of 4% acid\n", + "Mavg2=xa2*w1+(1-xa2)*w2; #average molecular wght of solution at pos.2\n", + "av2=d2/Mavg2; #value of (d/m) of water\n", + "\n", + "allavg=(av1+av2)/2.; #average value of d/m\n", + " #assuming water to be non diffusing\n", + "Na=Dab*(allavg)*math.log((1-xa2)/(1-xa1))/z; #diffusion rate of acetic acid aacross film of non diffusing water sol.\n", + "\n", + " # Result\n", + "print \"\\n diffusion rate of acetic acid aacross film of non diffusing water sol. :%f kmol/m**2*s\"%Na\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " diffusion rate of acetic acid aacross film of non diffusing water sol. :0.051508 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.10.a" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of mass transfer\n", + "# variable declaration \n", + "\n", + "#part (i)\n", + "r=(50./2)*10**-3; #radius pf circular tube\n", + "pa1=190; #vapour pressure of ammonia at pt.1 \n", + "pa2=95; #vapour pressure of ammonia at pt.2\n", + "Dab=2.1*10**-5 #molecular diffusivity in m**2/s\n", + "z=1;\n", + "R=760*22.414/273; #universal gas constant in mmHg*m**3*K*kmol \n", + " #carbondioxide and oxygen experiences equimolar counter diffusion \n", + "T=298.; #temperature in kelvin\n", + "\n", + "# Calculation \n", + "pt=(10.0/780)*1.013*10**5; #total pressure in pascal\n", + "Na=Dab*(pa1-pa2)/(z*R*T); #flux in kmol/m**2*S\n", + "rate=Na*(3.14*r**2); #rate of mass transfer..(3.14*r**2)-is the area\n", + "\n", + "# Result\n", + "print \"\\n the rate of mass transfer.:%f *10**-10 kmol/s\"%(rate/10**-10)\n", + " \n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the rate of mass transfer.:2.105552 *10**-10 kmol/s\n" + ] + } + ], + "prompt_number": 43 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.10.b" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# partial pressure of co2\n", + "#part (i)\n", + "# variable declaration \n", + "\n", + "r=(50./2)*10**-3; #radius pf circular tube\n", + "pa1=(190.); #vapour pressure of ammonia at pt.1 \n", + "pa2=(95.); #vapour pressure of ammonia at pt.2\n", + "Dab=2.1*10**-5 #molecular diffusivity in m**2/s\n", + "R=760.*22.414/273; #universal gas constant in mmHg*m**3*K*kmol \n", + " #carbondioxide and oxygen experiences equimolar counter diffusion \n", + "T=298.; #temperature in kelvin\n", + "\n", + "# Calculation\n", + "pt=(10./780)*1.013*10**5; #total pressure in pascal\n", + "\n", + " #part (ii)\n", + "#(ya-ya1)/(ya2-ya1)=(z-z1)/(z2-z1);\n", + "z2=1; #diffusion path in m at pos.2\n", + "z1=0; #diffusion path in m at pos.1\n", + "z=.75; #diffusion at general z\n", + "#pa=poly([0],'pa'); #calc. of conc. in gas phase\n", + "x= 118.750000 #roots((pa-pa1)/(pa2-pa1)-(z-z1)/(z2-z1));\n", + "\n", + "# Result\n", + "print \"\\n partial pressure of co2 at o.75m from the end where partial pressure is 190mmhg is:%f mmHg\"%x\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " partial pressure of co2 at o.75m from the end where partial pressure is 190mmhg is:118.750000 mmHg\n" + ] + } + ], + "prompt_number": 44 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.11.a" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion flux if N2 is non diffusing\n", + "\n", + "# variable declaration \n", + "\n", + "ya1=0.2; #initial mole fraction\n", + "ya2=0.1; #final mole fraction\n", + "T=298 #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.2*10**-2; #gas film thickness in m\n", + "Dab=.215*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314.; #universal gas constant\n", + "#part (i)when N2 is non diffusing \n", + "import math\n", + "\n", + "# Calculation\n", + "Na=Dab*pt*math.log((1-ya2)/(1-ya1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "\n", + "\n", + "# Result\n", + "print \" diffusion flux if N2 is non diffusing :%f *10**-5 kmol/m**2*s \"%(Na/10**-5);\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " diffusion flux if N2 is non diffusing :5.176955 *10**-5 kmol/m**2*s \n" + ] + } + ], + "prompt_number": 45 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.11.b" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion flux of oxygen\n", + "\n", + "# variable declaration \n", + "\n", + "ya1=0.2;\n", + "ya2=0.1;\n", + "T=(298); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.2*10**-2; #gas film thickness in m\n", + "Dab=.215*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + "\n", + "#part (ii) equimolar counter diffusion\n", + "# Calculation\n", + "Na=Dab*pt*(ya1-ya2)/(z*R*T) #diffusion flux in kmol/m**2*s\n", + "\n", + " # Result\n", + "print \" diffusion flux of oxygen during equimolar counter-diffusion :%f *10**-5 kmol/m**2*s \"%(Na/10**-5)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " diffusion flux of oxygen during equimolar counter-diffusion :4.395331 *10**-5 kmol/m**2*s \n" + ] + } + ], + "prompt_number": 46 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion flux through inert air\n", + "\n", + "# variable declaration \n", + "# ammonia diffusing through inert air and air is non-diffusing\n", + "ya1=0.1;\n", + "ya2=0;\n", + "T=293. #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.2*10**-2; #gas film thickness in m\n", + "Dab=.185*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314.; #universal gas constant\n", + " #part (i)when air is assumed to be stagnant and non-diffusing \n", + "import math\n", + "\n", + "# Calculation\n", + "Na=Dab*pt*math.log((1-ya2)/(1-ya1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "mw=17; #molecular weight of ammonia\n", + "massflux=Na*mw; #mass flux of given NH3\n", + "print \" diffusion flux when total presssure is 1atm and air \\\n", + " is non-diffusing :%f *10**-4 kg/m**2*s \"%(massflux/10**-4);\n", + " #part (ii) when pressure is increased to 10atm\n", + "\n", + "#Dab_1/Dab_2=pt_2/pt_1\n", + "pt_2=10; #final pressure in atm\n", + "pt_1=1; #initially pressure was 1atm\n", + "Dab_1=.185; #initially diffusion coefficient was.185\n", + "Dab_2=Dab_1*pt_1/pt_2; #for gases Dab is proportional to 1/pt\n", + "Dab=Dab_2*10**-4; #new diffusion coefficient \n", + "pt=pt_2*1.013*10**5; #new total pressure\n", + "Na=Dab*pt*math.log((1-ya2)/(1-ya1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "\n", + "# Result\n", + "print \"diffusion flux when pressure is increased to 10atm :%f *10**-5 kmol/m**2*s \"%(Na/10**-5);\n", + "print \"so the rate of diffusion remains same on increasing the pressure\"\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " diffusion flux when total presssure is 1atm and air is non-diffusing :6.889701 *10**-4 kg/m**2*s \n", + "diffusion flux when pressure is increased to 10atm :4.052765 *10**-5 kmol/m**2*s \n", + "so the rate of diffusion remains same on increasing the pressure\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.13" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion rate of acetic acid\n", + "#position 1 moles molefraction weight\n", + "# acetic acid 0.15 0.0288 9\n", + "# water 5 0.9712 91\n", + "\n", + "#position 2 moles molefraction weight\n", + "# aceitic acid 0.05 0.0092 4\n", + "# water 5.389 0.9908 96\n", + "# variable declaration \n", + "T=290.0; #temperature in kelvin\n", + "z=2*10**-3; #film thickness sorrounding the water\n", + "xa2=0.0092; #mole fraction of ethanol at pos.2\n", + "xa1=0.0288; #mole fraction of ethanol at pos.1\n", + "w1=60.0; #molecular weight of acetic acid\n", + "w2=18.0; #molecular weight of water\n", + "Dab=0.95*10**-9; #diffusivity of acetic water sol.in m**2/s\n", + " #av=d/m\n", + "# Calculation \n", + "Mavg1=xa1*w1+(1-xa1)*w2; #average molecular wght of solution at pos 1\n", + "d1=1012.0; # density of 10 % acid\n", + "av1=d1/Mavg1; #value of (d/m) of copper solution\n", + "\n", + " #for position 2\n", + "d2=1003.0; #density of 4% acid\n", + "Mavg2=xa2*w1+(1-xa2)*w2; #average molecular wght of solution at pos.2\n", + "av2=d2/Mavg2; #value of (d/m) of water\n", + "\n", + "allavg=(av1+av2)/2; #average value of d/m\n", + " \n", + " #assuming water to be non diffusing\n", + "import math \n", + "Na=Dab*(allavg)*math.log((1-xa2)/(1-xa1))/z; #diffusion rate of acetic acid aacross film of non diffusing water sol.\n", + "\n", + "# Result\n", + "print \"diffusion rate of acetic acid aacross film of non diffusing water sol. :%f *10**-7 kmol/m**2*s\"%(Na/10.0**-7)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "diffusion rate of acetic acid aacross film of non diffusing water sol. :5.088553 *10**-7 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 47 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion flux of nitrogen\n", + "\n", + "# variable declaration \n", + "\n", + "ya1=0.2; #molefraction at pos.1\n", + "ya2=0.1; #molefraction at pos.2\n", + "T=(293); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.2*10**-2; #gas film thickness in m\n", + "Dab=.206*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + " #for ideal gases volume fraction =mole fraction\n", + "#part (i)when N2 is non diffusing \n", + "import math\n", + "\n", + "# Calculation\n", + "Na=Dab*pt*math.log((1-ya2)/(1-ya1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "print \"\\n diffusion flux if N2 is non diffusing :%f *10**-5 kmol/m**2*s \"%(Na/10**-5);\n", + "#part (ii) equimolar counter diffusion\n", + "\n", + "Na=Dab*pt*(ya1-ya2)/(z*R*T) #diffusion flux in kmol/m**2*s\n", + "\n", + "# Result\n", + "print \"\\n diffusion flux of nitrogen during equimolar counter-diffusion :%f *10**-5 kmol/m**2*s \"%(Na/10**-5)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " diffusion flux if N2 is non diffusing :5.044891 *10**-5 kmol/m**2*s \n", + "\n", + " diffusion flux of nitrogen during equimolar counter-diffusion :4.283207 *10**-5 kmol/m**2*s \n" + ] + } + ], + "prompt_number": 48 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.15" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion rate of loss of benzene\n", + "\n", + "# variable declaration \n", + "\n", + "pa1=0.2*10**5; #partial pressure at pos.1\n", + "pa2=0; #partial pressure at pos.2\n", + "r=10./2; #radius of tank in which benzene is stored\n", + "T=298.; #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=10*10**-3; #gas film thickness in m\n", + "Dab=.02/3600; #diffusion coefficient in m**2/s\n", + "R=8314.; #universal gas constant\n", + " #benzene is stored in atank of dia 10m\n", + "#part (i)when air is assumed to be stagnant\n", + "import math\n", + "\n", + "# Calculation\n", + "Na=Dab*pt*math.log((pt-pa2)/(pt-pa1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "rate=Na*(3.14*r**2); #rate of loss of benzene if air is stagnant\n", + "\n", + " # Result\n", + "print \"diffusion rate of loss of benzene :%f *10**-4 kmol/s \"%(rate/10**-4);\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "diffusion rate of loss of benzene :3.921799 *10**-4 kmol/s \n" + ] + } + ], + "prompt_number": 49 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of diffusion of alcohol water vapour mixture\n", + "\n", + "# variable declaration \n", + "\n", + "ya2=0.1; #molefraction at pos.2\n", + "ya1=0.8; #molefraction at pos.1\n", + "T=(370.); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=0.1*10**-3; #gas film thickness in m\n", + "Dab=.15*10**-2; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + "Area=10; #area of the film is 10m**2\n", + "\n", + " #alcohol is being absorbed infrom amixture of alcohol vapour and water vapour by means of non-volatile solvent in which alcohol is soluble bt water is not \n", + " #for gase Dab=T**3/2\n", + " #Dab1/Dab2=(T1/T2)**3/2\n", + "import math\n", + "T2=370.; #final temperature in kelvin \n", + "T1=298.; #initial temperature in kelvin\n", + "\n", + "# Calculation\n", + "Dab1=.15*10**-2; #initial diffusion coefficient \n", + "Dab2=((T2/T1)**(3./2))*Dab1; #final diffusion coefficient\n", + "Na=Dab2*pt*math.log((1-ya2)/(1-ya1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "rate=Na*3600*46*Area; #rate of diffusion of alcohol-water vapour in kg/hour\n", + "\n", + " # Result\n", + "print \" rate of diffusion of alcohol-water vapour :%f *10**6 kg/hour \"%(rate/10**6)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " rate of diffusion of alcohol-water vapour :1.702149 *10**6 kg/hour \n" + ] + } + ], + "prompt_number": 50 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.17" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion rate of ammonia\n", + "\n", + "# variable declaration \n", + "\n", + "ya2=0; #molefraction at pos.2\n", + "ya1=0.1; #molefraction at pos.1\n", + "T=(273); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=2*10**-3; #gas film thickness in m\n", + "Dab=.198*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + " #ammonia is diffusing through an inert film 2mm thick \n", + "\n", + " #for gase Dab=T**3/2\n", + " #Dab1/Dab2=(T1/T2)**3/2\n", + "import math\n", + "T2=293; #final temperature in kelvin \n", + "T1=273; #initial temperature in kelvin\n", + "\n", + "\n", + "# Calculation\n", + "Dab1=0.198*10**-4; #initial diffusion coefficient \n", + "Dab2=((T2/T1)**(3.0/2))*Dab1; #final diffusion coefficient\n", + "Na=Dab2*pt*math.log((1-ya2)/(1-ya1))/(z*R*T2); #diffusion flux in kmol/m**2*s\n", + "print \" flux of diffusion of ammonia through inert film :%f *10**-5 kmol/m**2*s \"%(Na/10**-5)\n", + "\n", + "#if pressure is also incresed from 1 to 5 atm\n", + " #for gases Dab=(T**3/2)/pt;\n", + " #Dab1/Dab2=(T1/T2)**3/2*(p2/p1)\n", + "T2=293.; #final temperature in kelvin \n", + "T1=273.; #initial temperature in kelvin\n", + "pa2=5.; #final pressure in atm\n", + "pa1=1; #initial pressure in atm \n", + "p=pa2*1.013*10**5;\n", + "Dab1=.198*10**-4; #initial diffusion coefficient\n", + "Dab2=((T2/T1)**(3.0/2))*Dab1*(pa1/pa2); #final diffusion coefficient\n", + "Na=Dab2*p*math.log((1-ya2)/(1-ya1))/(z*R*T2); #diffusion flux in kmol/m**2*s\n", + "\n", + " # Result\n", + "print \"flux of diffusion of ammonia if temp. is 20 and pressure is 5 atm :%f*10**-5 kmol/m**2*s \"%(Na/10**-5)\n", + "print \"so there is no change in flux when pressure is changed\"\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " flux of diffusion of ammonia through inert film :4.337554 *10**-5 kmol/m**2*s \n", + "flux of diffusion of ammonia if temp. is 20 and pressure is 5 atm :4.822834*10**-5 kmol/m**2*s \n", + "so there is no change in flux when pressure is changed\n" + ] + } + ], + "prompt_number": 52 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.18" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#ate of evaporation\n", + "\n", + "# variable declaration \n", + "pa1=0.418*10**5; #partial pressure initially\n", + "pa2=0; #partial pressure of pure air\n", + "r=10/2; #radius of tank in which benzene is stored\n", + "T=(350); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "z=2*10**-3; #gas film thickness in m\n", + "Dab=.2*10**-4; #diffusion coefficient in m**2/s\n", + "R=8314; #universal gas constant\n", + "r=0.2/2; #radius of open bowl is 0.2\n", + "#when air layer is assumed to be stagnant of thickness 2mm\n", + "import math\n", + "\n", + "# Calculation\n", + "\n", + "Na=Dab*pt*math.log((pt-pa2)/(pt-pa1))/(z*R*T); #diffusion flux in kmol/m**2*s\n", + "rate=Na*(3.14*r**2)*18; #rate of loss of evaporation\n", + "\n", + "# Result\n", + "print \"\\n diffusion rate loss of evaporation :%f *10**-4 kg/s \"%(rate/10**-4)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " diffusion rate loss of evaporation :1.046972 *10**-4 kg/s \n" + ] + } + ], + "prompt_number": 54 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.19" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of the mixture in stefan tube of toluene in air\n", + "\n", + "# variable declaration \n", + "\n", + "#stefan tube experiment\n", + "import math\n", + "Ml=92.; #molecular weight of toluene\n", + "T=(312.4); #temperature in kelvin\n", + "pt=1*1.013*10**5; #total pressure in pascal\n", + "R=8314.; #universal gas constant\n", + "t=275.*3600; #after 275 hours the level dropped to 80mm from the top\n", + "zo=20.*10**-3; #intially liquid toluene is at 20mm from top\n", + "zt=80.*10**-3; #finally liquid toluene is at 80mm from top\n", + "#air is assumed to be satgnant \n", + "d=850.; #density in kg/m**3\n", + "pa=7.64*10**3; #vapour pressure of toluene in at 39.4degree celcius \n", + "\n", + "# Calculation \n", + "cal=d/Ml; #conc. at length at disxtance l\n", + "ca=pt/(R*T); #total conc. \n", + "xa1=pa/pt; #mole fraction of toluene at pt1 i.e before evaporation \n", + "xb1=1-xa1; #mole fraction of air before evaporation i.e at pt1 \n", + "xb2=1.; #mole fraction of air after evaporation i.e at pt.2\n", + "xa2=0.; #mole fraction of toluene at point 2\n", + "xbm=(xb2-xb1)/(math.log(xb2/xb1));\n", + "#t/(zt-zt0) = (xbm*cal*(zt+zo))/(2*c*(xa1-xa2)*t);\n", + "Dab=(xbm*cal*(zt**2-zo**2))/(2*ca*t*(xa1-xa2));\n", + "\n", + "# Result\n", + "print \"\\n the diffusivity of the mixture in stefan tube of toluene in air is :%f*10**-5 m**2/s\"%(Dab/10**-5)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the diffusivity of the mixture in stefan tube of toluene in air is :0.915437*10**-5 m**2/s\n" + ] + } + ], + "prompt_number": 55 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.20 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusion flux of a mixture of benzene and toluene\n", + "\n", + "#this is the case of equimolar counter diffusion as the latent heat of vaporisation are very close to each other\n", + "# variable declaration \n", + "\n", + "T=(360); #temperature in kelvin\n", + "pt=372.4/760; #total pressure in atm\n", + "R=82.06; #universal gas constant\n", + "Dab=0.0506; #diffusion coefficient in cm**2/s \n", + "z=0.254; #gas layer thickness in cm\n", + "vp=368.0/760; #vapour pressure of toluene in atm\n", + "xtol=.3; #mole fractoin of toluene in atm\n", + "pb1=xtol*vp; #partial pressure of toluene\n", + "#since pb1 is .045263 bt in book it is rounded to 0.145\n", + "\n", + "# Calculation \n", + "pb2=xtol*pt; #parial pressure of toluene in vapour phase\n", + "Na=Dab*(pb1-pb2)/(z*R*T); #diffusion flux \n", + "\n", + "# Result\n", + "print \"\\n the diffusion flux of a mixture of benzene and toluene %f*10**-8 gmol/cm**2*s\\n\"%(Na/10**-8)\n", + "print \"\\nthe negative sign indicates that the toluene is getting transferred from gas phase \\\n", + "to liquid phase(hence the transfer of benzene is from liquid to gas phase)\"\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the diffusion flux of a mixture of benzene and toluene -1.171233*10**-8 gmol/cm**2*s\n", + "\n", + "\n", + "the negative sign indicates that the toluene is getting transferred from gas phase to liquid phase(hence the transfer of benzene is from liquid to gas phase)\n" + ] + } + ], + "prompt_number": 56 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.21" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of the mixture in stefan tube\n", + "\n", + "#stefan tube experiment(pseudo steady state diffusion)\n", + "# variable declaration \n", + "\n", + "Ml=92.; #molecular weight of toluene\n", + "T=(303.); #temperature in kelvin\n", + "pt=1.*1.013*10**5; #total pressure in pascal\n", + "R=8314.; #universal gas constant\n", + "t=275.*3600; #after 275 hours the level dropped to 80mm from the top\n", + "zo=20.*10**-3; #intially liquid toluene is at 20mm from top\n", + "zt=77.5*10**-3; #finally liquid toluene is at 80mm from top\n", + " #air is assumed to be satgnant \n", + "import math\n", + "# Calculation \n", + "d=820.; #density in kg/m**3\n", + "pa=(57.0/760)*1.0135*10**5; #vapour pressure of toluene in at 39.4degree celcius \n", + "cal=d/Ml; #conc. at length at disxtance l\n", + "ca=pt/(R*T); #total conc. \n", + "xa1=pa/pt; #mole fraction of toluene at pt1 i.e before evaporation \n", + "xb1=1.-xa1; #mole fraction of air before evaporation i.e at pt1 \n", + "xb2=1.; #mole fraction of air after evaporation i.e at pt.2\n", + "xa2=0; #mole fraction of toluene at point 2\n", + "xbm=(xb2-xb1)/(math.log(xb2/xb1));\n", + "#t/(zt-zt0) = (xbm*cal*(zt+zo))/(2*c*(xa1-xa2)*t);\n", + "Dab=(xbm*cal*(zt**2-zo**2))/(2*ca*t*(xa1-xa2));\n", + "\n", + "# Result\n", + "print \"\\n the diffusivity of the mixture in stefan tube of toluene in air is :%f*10**-5 m**2/s\"%(Dab/10**-5)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the diffusivity of the mixture in stefan tube of toluene in air is :0.804587*10**-5 m**2/s\n" + ] + } + ], + "prompt_number": 57 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.22" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of ccl4\n", + "# variable declaration \n", + "#variation in liquid level with respect to time is given below\n", + "%pylab inline\n", + "t=[26,185,456,1336,1958,2810,3829,4822,6385]\n", + "# let Zt-Zo= x;\n", + "x=[.25,1.29,2.32,4.39,5.47,6.70,7.38,9.03,10.48]\n", + "i=0; \n", + "y = [0,0,0,0,0,0,0,0,0] #looping starts\n", + "\n", + "# Calculation \n", + "while(i<9):\n", + " y[i]=t[i]/x[i]; #for calculating the t/Zt-Zo value\n", + " i=i+1;\n", + "from matplotlib.pyplot import *\n", + "plot(x,y,\"o-\");\n", + "show()\n", + "#xtitle(\" Fig.2.2 Example 22 \",\"X--(zi-zo),cm --->\",\"Y-- vs (t/(zi-zo))min/cm ---->\");\n", + "slope=51.4385*60 *10**4; #slope of the curve in 1/sec*m**2\n", + "#slope = Cal *(xblm)/(2*Dab*C*(xa1-xa2))\n", + "d=1540.; #density in kg/m**3\n", + "Ml=154.; #molecular weight of toluene\n", + "Cal=d/Ml ; #conc. at length at disxtance l in mol/m**3\n", + "\n", + "T=(321.); #temperature in kelvin\n", + "pt=1.; #total pressure in atm\n", + "R=82.06; #universal gas constant\n", + "C=pt/(R*T) *10**3; #total conc. in kg mol/m**3\n", + "\n", + "pa=(282./760); #vapour pressure of toluene \n", + "xa1=pa/pt; #mole fraction of toluene at pt1 i.e before evaporation\n", + "xb1=1.-xa1; #mole fraction of air before evaporation i.e at pt1 \n", + "xb2=1.; #mole fraction of air after evaporation i.e at pt.2\n", + "xa2=0.; #mole fraction of toluene at point 2\n", + "xblm=(xb2-xb1)/(math.log(xb2/xb1)); #log mean temp. difference\n", + "Dab = Cal *(xblm)/(2*slope*C*(xa1-xa2)); #diffusivity coefficient\n", + "\n", + "# Result\n", + "print \"\\n the diffusivity of the mixture by winklemann method of toluene in air is :%f*10**-6 m**2/s\"%(Dab/10**-6)\n", + "#end" + ], + "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: ['rate', 'draw_if_interactive']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x20a87d0>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the diffusivity of the mixture by winklemann method of toluene in air is :9.202857*10**-6 m**2/s\n" + ] + } + ], + "prompt_number": 58 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.23" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of transfer of nitrogen and hydrogen\n", + "# variable declaration \n", + "#it is the case of equimolar conter diffusion as the tube is perfectly sealed to two bulbs at the end and the pressure throughout is constant\n", + "d=0.001;\n", + "area=3.14*(d/2)**2; #area of the bulb\n", + "T=298.; #temperature in kelvin \n", + "p=1.013*10**5; #total pressure of both the bulbs\n", + "R=8314.; #universal gas constant\n", + "\n", + "# Calculation \n", + "c=p/(R*T); #total concentration\n", + "Dab=.784*10**-4; #diffusion coefficient in m**2/s\n", + "xa1=0.8; #molefraction of nitrogen gas at the 1 end\n", + "xa2=0.25; #molefraction of nitrogen gas at the 2nd end\n", + "z=.15; #distance between the bulbs\n", + "\n", + " #rate=area*Na;\n", + "rate=area*Dab*c*(xa1-xa2)/z; #rate of transfer of hydrogen and hydrogen\n", + "\n", + "# Result\n", + "print \"\\n the rate of transfer from 1 to 2 of nitrogen and 2 to 1of hydrogen is :%f *10**-11kmol/s\"%(rate/10.0**-11)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the rate of transfer from 1 to 2 of nitrogen and 2 to 1of hydrogen is :0.922657 *10**-11kmol/s\n" + ] + } + ], + "prompt_number": 59 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.24" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of methanol in carbon tetrachloride\n", + "# variable declaration \n", + "#using wilke and chang empirical correlation\n", + "#Dab=(117.3*10**-18)*(phi*Mb)**0.5*T/(u*va**0.6);\n", + "\n", + "T=288; #temperature in kelvin\n", + "Mb=32; #molecular weight of methanol\n", + "phi=1.9; #association factor for solvent\n", + "\n", + "# Calculation \n", + "va=(14.8+(4*24.6))*10**-3 #solute(CCl4) volume at normal BP in m**3/kmol\n", + "u=.6*10**-3; #viscosity of solution in kg/m*s\n", + "Dab=(117.3*10**-18)*(phi*Mb)**0.5*T/(u*va**0.6); #diffusion coefficient in m**2/s\n", + "\n", + "# Result\n", + "print \"\\ndiffusivity of methanol in carbon tetrachloride is :%f*10**-9 m**2/s\"%(Dab/10.0**-9)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "diffusivity of methanol in carbon tetrachloride is :1.622494*10**-9 m**2/s\n" + ] + } + ], + "prompt_number": 60 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.25" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of methanol in water\n", + "\n", + "#using wilke and chang empirical correlation\n", + "#Dab=(117.3*10**-18)*(phi*Mb)**0.5*T/(u*va**0.6);\n", + "# variable declaration \n", + "T=288.0; #temperature in kelvin\n", + "Mb=18.0; #molecular weight of methanol\n", + "phi=2.26; #association factor for solvent\n", + "\n", + "# Calculation \n", + "va=(2*14.8+(6*3.7)+7.4)*10**-3 #solute(water) volume at normal BP in m**3/kmol\n", + "u=1*10**-3; #viscosity of solution in kg/m*s\n", + "Dab=(117.3*10**-18)*(phi*Mb)**0.5*T/(u*va**0.6); #diffusion coefficient in m**2/s\n", + "\n", + "# Result\n", + "print \"\\ndiffusivity of methanol in water is :%f*10**-9 m**2/s\"%(Dab/10**-9)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "diffusivity of methanol in water is :1.174865*10**-9 m**2/s\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 2.26" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of passage of hydrogen\n", + "# variable declaration \n", + "u=20.*10**-6; #viscosity in Ns/m**2\n", + "pt=2666.; #total pressure in N/m**2\n", + "pa1=pt; #pressure at 1\n", + "pa2=0; #pressure at 2\n", + "mw=32.; #molecular weight of oxygen\n", + "R=8314.; #universal law constant\n", + "T=373.; #temp. in kelvin\n", + "gc=1.; \n", + "\n", + "# Calculation \n", + "l=(3.2*u/pt)*((R*T)/(2*3.14*gc*mw))**0.5;#mean free path\n", + "d=.2*10**-6; #pore diameter\n", + "s=d/l; #value of dia/l\n", + " #hence knudsen diffusion occurs\n", + "Na=0.093*20*273/(760*373*22414*10**-1); #diffusion coefficient in kmol/m**2*s\n", + "Dka=(d/3)*((8*gc*R*T)/(3.14*mw))**0.5;\n", + "l1=Dka*(pa1-pa2)/(R*T*Na); #length of the plate\n", + "\n", + "# Result\n", + "print \"\\n the length of the plate is :%f m \"%l1\n", + "\n", + "\n", + " #for diffusion with hydrogen\n", + "u=8.5*10**-6; #viscosity in Ns/m**2\n", + "pt=1333; #total pressure in N/m**2\n", + "pa1=pt; #pressure at 1\n", + "pa2=0; #pressure at 2\n", + "mw=2; #molecular weight of oxygen\n", + "R=8314; #universal law constant\n", + "T=298; #temp. in kelvin\n", + "gc=1; \n", + "l=(3.2*u/pt)*((R*T)/(2*3.14*gc*mw))**0.5;#mean free path\n", + "d=.2*10**-6; #pore diameter\n", + "s=d/l; #value of dia/l\n", + " #hence knudsen diffusion occurs\n", + "Dka=(d/3)*((8*gc*R*T)/(3.14*mw))**0.5;\n", + "Na=Dka*(pa1-pa2)/(R*T*l1); #diffusion coefficient in kmol/m**2*s\n", + "print \"\\n the diffusion coefficient is :%f *10**-4 kmol/m**2*s\"%(Na/10.0**-6)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the length of the plate is :0.035635 m \n", + "\n", + " the diffusion coefficient is :1.788175 *10**-4 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 61 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Elements_Of_Mass_Transfer_Part_1/ch3.ipynb b/Elements_Of_Mass_Transfer_Part_1/ch3.ipynb new file mode 100644 index 00000000..ab9df3da --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/ch3.ipynb @@ -0,0 +1,616 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3 : Mass transfer coefficient and interphase mass transfer" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.1" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of sublimation\n", + "\n", + "# Variable Declaration \n", + "v=6.; #velocity in m/s\n", + "l=6.; #length in m\n", + "pa1=10.; #pressure at 1 in atm\n", + "pa2=0; #pressure at 2 in atm\n", + "t=373.; # temperature in kelvin\n", + "p=1.; #pressure of naphthalene in atm at 373kelvin\n", + "D=5.15*10**-6; #diffusivity of naphthalene in C02 in m**2/s\n", + "d=0.946; #density of air in kg/m**3\n", + "u=.021*10**-3; #viscosity of air in Newton*s/m**2\n", + "ID=0.075; #diameter in m\n", + "\n", + "# Calculation\n", + "nre=(ID*v*d)/(u); #calc. of reynolds no.\n", + "cf=2*0.023*(nre)**(-0.2); #friction factor\n", + "nsc=(u)/(d*D); #calc of schmidt no.\n", + "kc=(cf*v)/(2*(nsc)**(2./3));\n", + "na=(kc*10**5*(pa1/760-0))/(8314*t); #difussion flux in kmol/m**2*s\n", + "sub=na*2*3.14*(ID/2)*l; #rate of sublimation\n", + "\n", + "# Result\n", + "print \"\\nrate of sublimation :%f *10**-6 kmol/s\\n\"%(sub/10**-6);\n", + "#End" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "rate of sublimation :4.298312 *10**-6 kmol/s\n", + "\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.2" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# rate of sublimation of solid naphthalene\n", + "\n", + "# Variable Declaration \n", + "v=0.30; #velocity of parallelair in m/s\n", + "t=300; #temperature of air in kelvin\n", + "p=10.0**5/760; #pressure of air in pascal\n", + "Dab=5.9*10**-4; #diffusivity of naphthalene in in air in m**2/s \n", + "pa1=0.2*10**5/760; #pressure of air at 1 in pascal\n", + "pa2=0; #pressure of air at 2 in pascal\n", + "d=1.15; #density of air in kg/m**3\n", + "u=0.0185*10**-3; #viscosity of air in Newton*s/m**2\n", + "D=1.; #length in m\n", + "a=1.; #area of plate in m**2\n", + "\n", + "# Calculation \n", + "Nsc=u/(d*Dab); #schmidt no. calculation\n", + "Nre=(D*v*d)/u; #reynolds no. calculation\n", + " #flow is turbulent \n", + "f=0.072*(Nre)**-.25; #friction factor using \"chilton colburn\" analogy\n", + "k_c=(f*v)/(2*(Nsc)**.667); #mass transfer coefficient\n", + "NA=k_c*(pa1-pa2)/(8314*300); #mass flux calc.\n", + "sub=NA*a; #rate of sublimation in kmol/m**2*s\n", + "\n", + "# Result\n", + "print \"\\nrate of sublimation :%f *10**-7 kmol/s\\n\"%(sub/10**-7)\n", + "#End" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "rate of sublimation :1.077674 *10**-7 kmol/s\n", + "\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.3 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#rate of absorption and mass transfer coefficient\n", + "# Variable Declaration \n", + "\n", + "# a is CO2 and b is water\n", + "p=2.; #total pressure at 1 in atm \n", + "pa1=0.2*10**5; #pressure of CO2 at pt 1 in atm\n", + "pa2=0; #pressure of CO2 at pt 2 is 0 since air is pure\n", + "ya1=0.1; #mole fraction of CO2 at 1 is 0.2/2\n", + "ya2=0; #mole fraction of CO2 at 2 is 0 since air is pure\n", + "yb1=0.9; #mole fraction of water at 1 is (1-0.1)\n", + "yb2=1.0; #mole fraction of water at 2 is 1.0 since total pressure has to be constant.\n", + "k_y1=6.78*10**-5; #mass transfer coefficient in kmol/m**2*s*molefraction\n", + "import math\n", + "\n", + "# Calculation \n", + "yb_ln=(yb2-yb1)/(math.log(yb2/yb1)); #log mean is represented by yb_ln\n", + "\n", + "k_y=k_y1/yb_ln; \n", + "\n", + "# Result\n", + "print \"\\nvalue of mass transfer coefficient k_y is:%f *10**-5 kmol/m**2*s*(molefractin)\"%(k_y/10.0**-5)\n", + "k_g=k_y/p; #mass ttransfer coefficient in lmol/m**2*s*atm\n", + "print \"\\nvalue mass transfer coefficient k_g is:%f *10**-5 kmol/m**2*s*(atm)\"%(k_g/10**-5)\n", + "\n", + "NA=k_y*(ya1-ya2); #mass flux in kmol/m**2*s\n", + "print \"\\nvalue of rate of mass transfer :%f *10**-6 kmol/m**2*s\"%(NA/10.0**-6)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "value of mass transfer coefficient k_y is:7.143443 *10**-5 kmol/m**2*s*(molefractin)\n", + "\n", + "value mass transfer coefficient k_g is:3.571721 *10**-5 kmol/m**2*s*(atm)\n", + "\n", + "value of rate of mass transfer :7.143443 *10**-6 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.4" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# mass transfer coefficient and film thickness\n", + "# Variable Declaration \n", + "NA=7.5*10**-7; #mass flux in gmol/cm**2*s\n", + "Dab=1.7*10**-5; #diffusivity if SO2 in water in cm**2/s\n", + "c=1./18.02; #concentration is density/molecular weight in gmol/cm**2*s\n", + "#SO2 is absorbed from air into water\n", + "\n", + "xa1=0.0025; #liquid phase mole fraction at 1\n", + "xa2=0.0003; #liquid phase mole fraction at 2\n", + " #NA=kc(Ca1-Ca2)=Dab*(Ca1-Ca2)/d\n", + "\n", + "# Calculation \n", + "k_c=NA/(c*(xa1-xa2)); #k_c=Dab/d=NA/c(xa1-xa2)\n", + "\n", + "# Result \n", + "print \"\\nmass transfer coefficient k_c is:%f cm/s\"%k_c\n", + "\n", + "d=Dab/k_c;\n", + "print \"\\nfilm thickness d is :%f cm\"%d\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "mass transfer coefficient k_c is:0.006143 cm/s\n", + "\n", + "film thickness d is :0.002767 cm\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.5 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# value of liquid and gas film coefficient\n", + "# Variable Declaration \n", + "Kg=2.72*10**-4; #overall gas phase mass transfer coefficient in kmol/m**2*S*atm\n", + "r_gas=0.85*(1/Kg); #given that gas phase resisitance is 0.85 times overall resistance\n", + "kg=1.0/r_gas; \n", + "m=9.35*10**-3; #henry's law constant in atm*m**3/kmol\n", + "kl=m/(1./Kg-1/kg); #liquid phase mass transfer coefficient in m/s\n", + "print \"\\nthe value of liquid film coefficient kl : %f*10**-5 m/s\"%(kl/10**-5)\n", + "print \"\\nthe value of gas film coefficient kg : %f*10**-5 m/s\"%(kg/10**-5);\n", + "p=1.; #overall pressure in atm\n", + "\n", + " #NA=Kg(pag-pa*)=kg(pag-pai)=kl(Cai-Cal)\n", + "# Calculation \n", + "Yag=0.1; #molefraction of ammonia\n", + "Cal=6.42*10**-2; #liquid phase concentration \n", + "Pag=Yag*p; #pressure of ammonia\n", + " #Pai and Cai indicates interfacial pressure and conc.\n", + " #Pal and Cal indicates bulk pressure and conc.\n", + "\n", + " #Pai=m*C_ai;\n", + " #NA=kg(pag-pai)=kl(Cai-Cal)\n", + " \n", + "#Cai=poly([0],'Cai'); #calc. of conc. in gas phase\n", + "x = 1.6588481 #x=roots((Pag-m*Cai)*(kg/kl)-(Cai-Cal));\n", + "\n", + "# Result \n", + "print \"\\nthe value of interphase conc.cai :%f kmol/m**3\"%x\n", + "Pai=m*x;\n", + "print \"\\nthe value of interphase pressure pai is:%f atm\"%Pai\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the value of liquid film coefficient kl : 1.695467*10**-5 m/s\n", + "\n", + "the value of gas film coefficient kg : 32.000000*10**-5 m/s\n", + "\n", + "the value of interphase conc.cai :1.658848 kmol/m**3\n", + "\n", + "the value of interphase pressure pai is:0.015510 atm\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.6 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# concentration of ammonia and interfacial partial pressure\n", + "# Variable Declaration \n", + "#kg/kl=0.9=t \n", + "#Pai=0.3672*Cai so; \n", + "m=0.3672;\n", + "t=.9;\n", + " #Pai and Cai indicates interfacial pressure and conc.\n", + " #Pal and Cal indicates bulk pressure and conc.\n", + "Yag=0.15; #molefraction of ammonia\n", + "Cal=0.147; #liquid phase concentration in kmol/m**3\n", + "p=1; #overall pressure\n", + "\n", + "# Calculation \n", + "Pag=Yag*p; #pressure of ammonia\n", + "\n", + " #Pai=m*C_ai;\n", + " #kg/kl=(Cai-Cal)/(Pag-Pai);\n", + " \n", + "#Cai=poly([0],'Cai'); #calc. of conc. in gas phase\n", + "x = 0.211954 #x=roots((Pag-m*Cai)*(t)-(Cai-Cal));\n", + "\n", + "# Result\n", + "print \"\\nthe value of conc. of ammonia cai is :%f kmol/m**3\"%x\n", + "Pai=m*x;\n", + "print \"\\nthe value of interphase pressure Pai is :%f atm\"%Pai" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the value of conc. of ammonia cai is :0.211954 kmol/m**3\n", + "\n", + "the value of interphase pressure Pai is :0.077830 atm\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.7" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# diffusivity of gas overall transfer cofficient\n", + "# Variable Declaration \n", + "D=.1;\n", + "l=3; # l is length of bubble in cm\n", + "a=3.14*D*l; # area in cm**2\n", + "Ca_o=0.0001; #pure conc. of gas in g*mol/cc*atm\n", + "Ca=0;\n", + "NA=.482*10**-5; # molar rate of absorption in g*moles/s\n", + " #Pa_o and Ca_o indicates pure pressure and conc.\n", + "# Calculation \n", + "kl=NA/(a*(Ca_o-Ca)); #mass transfer coefficient acc. to higbie's penetration theory\n", + "Q=4; #volumetric flow rate in cc/s\n", + "A=3.14*.1*.1/4; #area of flow\n", + "v=Q/A; #velocity of flow in cm/s\n", + "\n", + "#timt t=bubble length/linear velocity;\n", + "t=l/v;\n", + "DAB=(kl**2)*3.14*t/4; #diffusivity in cm**2/s\n", + "D_new=0.09; #revised diameter reduced to.09\n", + "a_new=3.14*l*D_new; #revised area\n", + "A_new=3.14*0.09*0.09/4; #revised flow area\n", + "v_new=Q/A_new; #revised velocity\n", + "\n", + "# Result \n", + "print \"\\nthe value of diffusivity of gas DAB is :%f cm/s\"%(DAB/10**-5)\n", + "\n", + "t_new=l/v_new; #revised time\n", + "kl_new=2*(DAB/(3.14*0.0047))**0.5; #revised mass transfer coefficient \n", + "NA_new=kl_new*a_new*(Ca_o-Ca); #revised molar rate absorption in g*moles/s\n", + "print \"\\nthe value of NA_new is :%f*10**-6 kmol/m**3\"%(NA_new/10**-6)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the value of diffusivity of gas DAB is :1.210021 cm/s\n", + "\n", + "the value of NA_new is :4.855188*10**-6 kmol/m**3\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# overall gas phase mass transfer flux\n", + "# Variable Declaration \n", + "Kg=7.36*10**-10;\n", + "p=1.013*10**5;\n", + "Ky=Kg*p;\n", + "#resistance in gas phase is 0.45 of total resistance & .55 in liquid phase\n", + "#(resistance in gas phase)r_gas=1/ky and (resistance in liq phase)r_liq=m'/kx\n", + "r_gas=0.45*(1./Ky);\n", + "ky=1./r_gas;\n", + "r_liq=0.55*(1./Ky);\n", + "print \"film based liq phase mass transfer coeff.ky is :%f \"%ky\n", + "#from equilibrium relantionship indicates linear behaviour thus the slope of equilibrium curve is 86.45\n", + "# Calculation\n", + "m1=86.45;\n", + "kx=m1/r_liq;\n", + "yag=.1;\n", + "xal=(.4/64)/((99.6/18)+(.4/64));\n", + "print \"\\n film based gas phase mass transfer coeff.ky is :%f \"%kx\n", + "#slope of the line gives -kx/ky=-70.61\n", + "m2=m1; # since equilibrium line a straigth line m'=m''\n", + "Kx=1/(1/kx+(1/(m2*ky))); #overall liquid phase mass transfer coefficient\n", + "print \"\\n overall liq phase mass transfer coefficient Kx is :%f \"%Kx\n", + "# equillibrium relation is given under\n", + "p = [0.2,0.3,0.5,0.7];\n", + "a = [29,46,83,119];\n", + "i=0;\n", + "x = [0,0,0,0]\n", + "y = [0,0,0,0]\n", + " #looping for calcullating mole fraction\n", + "while (i<4):\n", + " x[i]= (p[i]/64.)/(p[i]/64.+100/18);\n", + " y[i]= a[i]/760.; #mole fraction plotted on y-axis\n", + " i=i+1; \n", + " #mole fraction plotted on x-axis\n", + "%pylab inline\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Result\n", + "plot(x,y);\n", + "title(\"Fig.3.17,Example 8\");\n", + "xlabel(\"X-- Concentration of SO2 in liquid phase, X(10**4)(molefraction)\");\n", + "ylabel(\"Y-- Concentration of SO2 in gas phase, Y(molefraction)\");\n", + "show()\n", + " #from the graph we get these values\n", + "yao=.083; #corresponding to the value of xao=0.001128\n", + "xao=.00132; #corresponding to the value of yag=.1\n", + "yai=.0925; #corresponding to the perpendicular dropped from the pt(.001128,0.1) \n", + "xai=.00123;\n", + " \n", + " # flux based on overall coefficient\n", + "NAo_gas=Ky*(yag-yao);\n", + "NAo_liq=Kx*(xao-xal);\n", + "print \"overall gas phase mass transfer flux -NAo_gas is :%f*10**-6 kmol/m**2*s \"%(NAo_gas/10**-6)\n", + "print \"overall liq phase mass transfer flux -NAo_liq is :%f*10**-6 kmol/m**2*s \"%(NAo_liq/10**-6);\n", + "\n", + " # flux based on film coefficient \n", + "NAf_gas=ky*(yag-yai);\n", + "NAf_liq=kx*(xai-xal);\n", + "print \"film based gas phase mass transfer flux-NAf_gas is :%f *10**-6 kmol/m**2*s\"%(NAf_gas/10**-6);\n", + "print \"film based liq phase mass transfer flux-NAf_liq is :%f *10**-6 kmol/m**2*s\"%(NAf_liq/10**-6);\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "film based liq phase mass transfer coeff.ky is :0.000166 \n", + "\n", + " film based gas phase mass transfer coeff.ky is :0.011719 \n", + "\n", + " overall liq phase mass transfer coefficient Kx is :0.006445 \n", + "Populating the interactive namespace from numpy and matplotlib" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "WARNING: pylab import has clobbered these variables: ['f']\n", + "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n6NEAAD8/P2RmZiI9PR1NmjSBh4cHAOF2nKOjIx4+fFje98cYY0zDlHY3PnbsGC5fvgxdXV0AwIcf\nfggPDw8sX75c6cnT0tJgaWkpf2xhYYGYmBil+zx48ACNGzeWb0tJSUF8fLxWzKjMGGNMCVLC1dWV\nnj17Jn/87NkzcnV1VXYYEREdOnSIxo8fL3+8e/dumjJlSrF9+vTpQ1FRUfLHXbp0oUuXLskfS6VS\n8vb2pl9++aXE+QHwF3/xF3/xVwW+1EnpFcvnn38OLy8vdOrUCUSE06dPY8WKFcoOAwCYm5sjNTVV\n/jg1NRUWFhZl7vPgwQOYm5sDAAoKChAQEIARI0ZgwIABJc5P3COMMca0jkpzhT18+BAXLlyARCJB\n69at0aRJE5VOXlhYCHt7e5w8eRLNmjVD69atsW/fvmIrUIaFhWHDhg0ICwtDdHQ0ZsyYgejoaBAR\nRo8ejQYNGmDt2rUVf4eMMcY0SmFhCQ8Ph1QqxZAhQ4ptP3ToEOrWrYtu3bqp9ALHjx/HjBkzIJPJ\nMG7cOHz++efYtGkTAGDixIkAIO85VqdOHezYsQNeXl6IiopChw4d4ObmJp9CZvny5ejRo0eF3yxj\njDENUHSPrE2bNpSenl5i+5MnT8jPz69S7sMdP36c7O3tydbWllasWFHqPlOnTiVbW1tyc3OjuLg4\npcc+f/6cunbtSnZ2dtStWzfKyMiQP3flyhV69913ydnZmVxdXSkvL0/rcubm5lJgYCC5urqSo6Mj\nLV++XKWM6sp54MABcnJyIh0dnWJtX0REy5YtI1tbW7K3t6fff/9da3JevHhRvv2PP/4gb29vcnV1\nJW9vbzp16pTW5Hz750lEdO/ePapTpw598803WptTmz5HinJW9HOkjoyzZ88mBwcHcnNzo4EDB1Jm\nZqb8OW36DCnKWZHPkMLC4uXlpfAgFxcXpSdWprCwkGxsbOju3buUn59P7u7ulJCQUGyfY8eOUc+e\nPYmIKDo6Wl7Qyjp2zpw5tHLlSiIiWrFiBc2dO5eIiAoKCsjNzY2uXr1KREQvXrwgmUymdTl37NhB\ngYGBRESUk5NDVlZWdO/ePdFy3rhxg27evEn+/v7FPrjXr18nd3d3ys/Pp7t375KNjY2oP09FOePj\n4+nRo0dERPT333+Tubm50oxi5HwtICCA/ud//kflwqLpnNr2OVKUsyKfI3Vl/OOPP+Q/o7lz58o/\n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\n", + "text": [ + "<matplotlib.figure.Figure at 0x2c409d0>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "overall gas phase mass transfer flux -NAo_gas is :1.267466*10**-6 kmol/m**2*s \n", + "overall liq phase mass transfer flux -NAo_liq is :1.235953*10**-6 kmol/m**2*s \n", + "film based gas phase mass transfer flux-NAf_gas is :1.242613 *10**-6 kmol/m**2*s\n", + "film based liq phase mass transfer flux-NAf_liq is :1.192479 *10**-6 kmol/m**2*s\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 3.9" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# concentration of acid at outlet\n", + "# Variable Declaration \n", + "Cas=1.521*10**-7;\n", + "v=1525; #velocity in m/s\n", + "D=0.0516; #diffusivity in cm**2/s\n", + "d=1.25*10**-3; #density of air in g/cm**3\n", + "u=1.786*10**-4; #viscosity of air in n*s/m**2\n", + "Dia=2.54; #diameter in cm\n", + "\n", + "# Calculation \n", + "nre=(Dia*v*d)/(u); #calc. of reynolds no.\n", + "cf=2*0.036*(nre)**(-0.25); #friction factor\n", + "nsc=(u)/(d*D); #calc of schmidt no.\n", + "kc=(cf*v)/(2*(nsc)**(2./3)); #cf/2=kc/uo*(sc)**2/3\n", + "\n", + "#consider an elelmental section of dx at a distance of x from the point of entry of air.\n", + "#let the conc. be c of diffusing component and c+dc at the point of leaving. mass balance across this elelmental gives\n", + " #rate of mass transfer=(cross sectional area)*(air velocity)*dc\n", + " # =(3.14*d**2/4)*v*dc -----1 eqn\n", + " \n", + "#flux for mass transfer from the surface=kc*(Cas-C)\n", + "# rate of mass transfer=(flux)*mass transfer\n", + "# =kc*(Cas-C)*3.14*dx*D------2 eqn\n", + "# solving ----1 & -----2 we get\n", + "# \n", + "# (3.14*d**2/4)*v*dc=kc*(Cas-C)*3.14*dx*d;\n", + "# dc/(Cas-C)=(kc*3.14*d*v)/(3.14*d**2/4)*dx\n", + "# solving this we get\n", + "# ln[(Cas-C)/(Cas-C_in)]=(kc*4*x)/(d*v)\n", + "import math\n", + "x=183; #upper limit of x\n", + "C_in=0; #C=C_in=0;\n", + "t=(kc*4*x)/(Dia*v); #variable to take out the exponential\n", + "z=math.e**t;\n", + "C_final=Cas-(z*(Cas-C_in)); #value of c_final in g*mol/cc;\n", + "\n", + "# Result\n", + "print \"\\t conc. of acid at outlet :%f *10**-8 g*mol/cc\\n\"%(abs(C_final/10**-8))\n", + "rate=(3.14*Dia**2/4)*v*(C_final-C_in);\n", + "print \"\\trate of mass transfer :%f *10**-4 g*mol/s\\n\"%(abs(rate/10**-4));\n", + "#End" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\t conc. of acid at outlet :7.709387 *10**-8 g*mol/cc\n", + "\n", + "\trate of mass transfer :5.954246 *10**-4 g*mol/s\n", + "\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Elements_Of_Mass_Transfer_Part_1/ch5.ipynb b/Elements_Of_Mass_Transfer_Part_1/ch5.ipynb new file mode 100644 index 00000000..8e575f33 --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/ch5.ipynb @@ -0,0 +1,998 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5 : Humidification" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.1 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# properties through humidity chart\n", + "\n", + "# Variable Declaration \n", + "#dry bulb temperature=50 and wet bulb temperature=35 \n", + "Tg=50.; #dry bulb temperature=50\n", + "To=0; #refrence temperature in degree celcius \n", + "Mb=28.84; #average molecular weight of air\n", + "Ma=18.; #average molecular weight of water\n", + "\n", + "#part(i)\n", + "ybar=.0483 #0.003 kg of water vapour/kg of dry air\n", + "print \"\\n the humidity(from chart) is \\t\\t:%f percent\"%ybar\n", + "\n", + "#part(ii)\n", + "humper=35.; #humidity percentage\n", + "print \"\\n the percentage humidity is(from chart) :%f percent\"%humper\n", + "\n", + "# Calculation and Result\n", + "#part(iii)\n", + "pt=1.013*10**5; #total pressure in pascal\n", + "molhum=0.0483; #molal humidity =pa/(pt-pa)\n", + "pa=molhum*pt/(1+molhum);\n", + "#the vopour pressure of water(steam tables)at 50degree = .1234*10**5 N/m**2\n", + "relhum=(pa/(.1234*10**5))*100; #percentage relative humidity =partial pressure/vapour pressure\n", + "print \"\\n the percentage relative humidity is \\t percent:%f \"%relhum\n", + "\n", + "#part(iv)\n", + "dewpoint=31.5; #dew point temperature in degree celcius\n", + "print \"\\n the dew point temperature \\t\\t :%f degree celcius\"%dewpoint\n", + "\n", + "#part(v)\n", + "Ca=1.005;\n", + "Cb=1.884;\n", + "ybar=.03; #saturation temperature inkg water vapour/kg dry air\n", + "Cs=Ca+Cb*ybar; #humid heat in kj/kg dry air degree celcius\n", + "print \"\\n we get humid heat as \\t\\t\\t :%f kj/kg dry air degree celcius \"%Cs\n", + "\n", + "#part(vi)\n", + "d=2502; #latent heat in kj/kg\n", + "H=Cs*(Tg-0)+ybar*d; #enthalpy for refrence temperature of 0 degree\n", + "print \"\\n we get H as \\t\\t\\t\\t :%f kj/kg\"%H\n", + "Hsat=274.; #enthalpy of sturated air\n", + "Hdry=50.; #enthalpy of dry air in kj/kg\n", + "Hwet=Hdry+(Hsat-Hdry)*0.35; #enthalpy of wet air in kj/kg\n", + "print \"\\n we get enthalpy of wet air as \\t:%f kj/kg\"%Hwet\n", + "\n", + "#part(vii)\n", + "VH=8315*((1./Mb)+(ybar/Ma))*((Tg+273.)/pt); #humid volume in m**3mixture/kg of dry air\n", + "print \"\\n we get VH as (a)\\t\\t\\t :%f m**3/kg of dry air\"%VH\n", + "spvol=1.055; #specific volume of saturated air in m**3*kg\n", + "vdry=0.91; #specific volume of dry air in m**3/kg\n", + "Vh=vdry+(spvol-vdry)*.35 #by interpolation we get Vh in m**3/kg of dry air \n", + "print \"\\n by interpolation we get specific volume Vh as(b) :%f m**3/kg of dry air\"%Vh\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the humidity(from chart) is \t\t:0.048300 percent\n", + "\n", + " the percentage humidity is(from chart) :35.000000 percent\n", + "\n", + " the percentage relative humidity is \t percent:37.822988 \n", + "\n", + " the dew point temperature \t\t :31.500000 degree celcius\n", + "\n", + " we get humid heat as \t\t\t :1.061520 kj/kg dry air degree celcius \n", + "\n", + " we get H as \t\t\t\t :128.136000 kj/kg\n", + "\n", + " we get enthalpy of wet air as \t:128.400000 kj/kg\n", + "\n", + " we get VH as (a)\t\t\t :0.963494 m**3/kg of dry air\n", + "\n", + " by interpolation we get specific volume Vh as(b) :0.960750 m**3/kg of dry air\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.2 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# properties if DBT is 25 and WBT is 22\n", + "\n", + "# Variable Declaration \n", + "\n", + "#dry bulb temperature=25 and wet bulb temperature=22\n", + "Tg=25.; #dry bulb temperature=50\n", + "To=0; #refrence temperature in degree celcius \n", + "Mb=28.84; #average molecular weight of air\n", + "Ma=18.; #average molecular weight of water\n", + "\n", + "\n", + "# Calculation and Result\n", + "#part(i)\n", + "hum=.0145 #0.0145 kg of water/kg of dry air\n", + "print \"\\n the saturation humidity(from chart) is :%f percent\"%hum\n", + "\n", + "#part(ii)\n", + "humper=57.; #humidity percentage\n", + "print \"\\n the percentage humidity is \\t\\t:%f percent\"%humper\n", + "\n", + "#part(iii)\n", + "pt=1.; #total pressure in atm\n", + "sathum=0.0255; #molal humidity =pa/(pt-pa)\n", + "pa1=sathum*pt*(28.84/18)/(1+(sathum*(28.84/18)));\n", + "#the vopour pressure of water(steam tables)at 25 = .0393*10**5 N/m**2\n", + "pt=1; #total pressure in atm\n", + "molhum=0.0145; #molal humidity =pa/(pt-pa)\n", + "pa2=molhum*pt*(28.84/18)/(1+(molhum*pt*(28.84/18)));\n", + "#the vopour pressure of water(steam tables)at 25 = .0393*10**5 N/m**2\n", + "relhum=(pa2/pa1)*100; #percentage relative humidity =partial pressure/vapour pressure\n", + "print \"\\n the percentage relative humidity is \\t :%f \"%relhum\n", + "\n", + "#part(iv)\n", + "dewpoint=19.5; #dew point temperature in degree celcius\n", + "print \"\\n the dew point temperature \\t :%f degree celcius\"%dewpoint\n", + "\n", + "#part(v)\n", + "Ca=1005.;\n", + "Cb=1884.;\n", + "ybar=.0145; # humidity inkg water /kg dry air\n", + "Cs=Ca+Cb*ybar; #humid heat in j/kg dry air degree celcius\n", + "d=2502300.; #latent heat in j/kg\n", + "H=Cs*(Tg-0)+ybar*d; #enthalpy for refrence temperature of 0 degree\n", + "print \"\\n we get Humid heat H as \\t :%f j/kg\"%H\n", + "#the actual answer is 62091.3 bt in book it is given 65188.25(calculation mistake in book)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the saturation humidity(from chart) is :0.014500 percent\n", + "\n", + " the percentage humidity is \t\t:57.000000 percent\n", + "\n", + " the percentage relative humidity is \t :57.842165 \n", + "\n", + " the dew point temperature \t :19.500000 degree celcius\n", + "\n", + " we get Humid heat H as \t :62091.300000 j/kg\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.3" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# properties of nitrogen oxygen vapour mixture\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "pt=800.; #total pressure in mmHg\n", + "pa=190.; #vapour pressure of acetone at 25 degree \n", + "ys_bar=pa*(58./28)/(pt-pa) #\n", + "#percentage saturation = y_bar/ys_bar *100\n", + "s=80; #percent saturation\n", + "\n", + "# Calculation and Result\n", + "y_bar=ys_bar*s/100.; #absolute humidity\n", + "print \"\\n the absolute humidity is \\t :%f kg acetone/kmol N2 \"%y_bar\n", + "\n", + "#part(ii)\n", + "#y_bar=pa*(58/28)/(pt-pa) \n", + "pa1=pt*y_bar*(28./58)/(1+(y_bar*(28./58)));\n", + "print \"\\n the partial pressure of acetone is:%f mmHg\"%pa1\n", + "\n", + "#part(iii)\n", + "y=pa1/(pt-pa1); #absolute molal humidity\n", + "print \"\\n absolute molal humidity \\t:%f kmol acetone/kmol N2\"%y\n", + "\n", + "#part(iv)\n", + "#volume of .249kmol acetone vapour at NTP =.249*22.14\n", + "#p1v1/T1 =p2v2/T2\n", + "p2=800.; #final pressure of acetone and nitrogen at 25 degree\n", + "p1=760.; #initial pressure of acetone and nitrogen at 25 degree\n", + "T2=298.; #final temperature of acetone and nitrogenat 25 degree\n", + "T1=273.; #initial temperature of acetone and nitrogen at 25 degree\n", + "vA1=5.581; #initial volume of acetone at 25 degree\n", + "vN1=22.414; #initial volume of nitrogen at 25 degree \n", + "vA2=T2*vA1*p1/(T1*p2); #final volume of acetone at 25 degree\n", + "vN2=T2*vN1*p1/(T1*p2); #final volume of nitrogen at 25 degree\n", + "vtotal=vA2+vN2; #total volume of the mixture\n", + "vper=vA2*100/vtotal; #percentage volume of acetone\n", + "print \"\\n the percentage volume of acetone is :%f m**3\"%vper\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the absolute humidity is \t :0.516159 kg acetone/kmol N2 \n", + "\n", + " the partial pressure of acetone is:159.580052 mmHg\n", + "\n", + " absolute molal humidity \t:0.249180 kmol acetone/kmol N2\n", + "\n", + " the percentage volume of acetone is :19.935703 m**3\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.4 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# properties at a temperature of 60 degree celcius\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "pa=13.3; #pressure in kpa\n", + "pa2=20.6; #vapour pressure at 60 degree\n", + "pt=106.6 #total pressure in kpa\n", + "y=pa/(pt-pa); #absolute molal humidity\n", + "\n", + "# Calculation and Result\n", + "y_bar=y*(18/28.84); #relative humidity\n", + "print \"\\n absolute humidity of mixture :%f kg water-vapour/kg dry air\"%y_bar\n", + "\n", + "\n", + "#part(ii)\n", + "mf=pa/pt; #mole fraction\n", + "print \"\\n the mole fraction is :%f\"%mf\n", + "\n", + "#part(iii)\n", + "vf=mf; #volume fraction\n", + "print \"\\n the volume fraction is :%f\"%vf\n", + "\n", + "#part(iv)\n", + "Ma=18.; #molecular weight\n", + "Mb=28.84; #molecular weight\n", + "Tg=60.; #temperature of mixture\n", + "rh=(pa/pa2)*100.; #relative humidity in pecentage \n", + "print \"\\n we get relative humidity as as :%f percent\"%rh\n", + "\n", + "#part(v)\n", + "VH=8315.*((1./Mb)+(y_bar/Ma))*((Tg+273)/pt)*10**-3; #humid volume in m**3mixture/kg of dry air\n", + "x=y_bar/VH; #g water/m**3 mixture \n", + "print \"\\n we get x i.e. gwater/m**3 mixture as :%f \"%(x*1000)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " absolute humidity of mixture :0.088971 kg water-vapour/kg dry air\n", + "\n", + " the mole fraction is :0.124765\n", + "\n", + " the volume fraction is :0.124765\n", + "\n", + " we get relative humidity as as :64.563107 percent\n", + "\n", + " we get x i.e. gwater/m**3 mixture as :86.460483 \n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.5 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# properties if DBT is 30 and WBT is 25\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "y_bar=.0183; #kg water vapour/kg dry air\n", + "print \"\\n we get humidity as(from chart) :%f kg of water/kg dry air\"%y_bar\n", + "print \"\\n we get saturation humidity as(from chart) :%d percent\"%67\n", + "Ma=18.; #molecular weight\n", + "Mb=28.84; #molecular weight\n", + "Tg=30.; \n", + "pa = 13.3\n", + "pa2 = 20.6 #temperature of mixture\n", + "rh=(pa/pa2)*100; #relative humidity in pecentage \n", + "pt=1.013*10**5; #total pressure in pascal\n", + "\n", + "# Calculation and Result\n", + "VH=8315*((1./Mb)+(y_bar/Ma))*((Tg+273)/pt); #humid volume in m**3mixture/kg of dry air\n", + "print \"\\n we get humid volume as \\t:%f m**3/kg dry air\"%VH\n", + "\n", + "#part(ii)\n", + "Ca=1005.;\n", + "Cb=1884.;\n", + "Cs=Ca+Cb*y_bar; #humid heat in j/kg dry air degree celcius\n", + "print \"\\n we get humid heat as \\t\\t :%f j/kg dry air degree celcius \"%Cs\n", + "\n", + "#part(iii)\n", + "d=2502300.; #latent heat in j/kg\n", + "H=Cs*(Tg-0)+y_bar*d; #enthalpy for refrence temperature of 0 degree\n", + "print \"\\n we get Enthalpy H as \\t\\t:%f j/kg dry air\"%H\n", + "\n", + "#part(iv)\n", + "dewpoint=23.5; #dew point temperature in degree celcius\n", + "print \"\\n the dew point temperature \\t :%f degree celcius\"%dewpoint\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " we get humidity as(from chart) :0.018300 kg of water/kg dry air\n", + "\n", + " we get saturation humidity as(from chart) :67 percent\n", + "\n", + " we get humid volume as \t:0.887669 m**3/kg dry air\n", + "\n", + " we get humid heat as \t\t :1039.477200 j/kg dry air degree celcius \n", + "\n", + " we get Enthalpy H as \t\t:76976.406000 j/kg dry air\n", + "\n", + " the dew point temperature \t :23.500000 degree celcius\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.6 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# properties when dry bulb temperature is 55\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "y=.048; #humidity kmol water vapour/kmol dry air\n", + "y_bar=y*(18/28.84); #(from chart) absolute humidity\n", + "print \"we get absolute humidity as :%f kg of water/kg dry air\"%(y_bar)\n", + "print \"we get percentage humidity as(from chart) :%f percent\"%(25.5);\n", + "\n", + "# Calculation and Result\n", + "y_bar=y*(18/28.84); #relative humidity\n", + "Ma=18.; #molecular weight\n", + "Mb=28.84; #molecular weight\n", + "Tg=55.; #temperature of mixture\n", + "pt=1.013*10**5; #total pressure in pascal\n", + "VH=8315*((1./Mb)+(y_bar/Ma))*((Tg+273)/pt); #humid volume in m**3mixture/kg of dry air\n", + "print \"\\n we get VH as \\t :%f m**3/kg dry air\"%VH\n", + "\n", + "#part(ii)\n", + "Ca=1005.;\n", + "Cb=1884.;\n", + "Cs=Ca+Cb*y_bar; #humid heat in j/kg dry air degree celcius\n", + "print \"\\n we get humid heat as \\t :%f j/kg dry air degree celcius \"%Cs\n", + "\n", + "#part(iii)\n", + "d=2502300.; #latent heat in j/kg\n", + "H=Cs*(Tg-0)+y_bar*d; #enthalpy for refrence temperature of 0 degree\n", + "print \"\\n we get H as \\t :%f j/kg dry air\"%H\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "we get absolute humidity as :0.029958 kg of water/kg dry air\n", + "we get percentage humidity as(from chart) :25.500000 percent\n", + "\n", + " we get VH as \t :0.978346 m**3/kg dry air\n", + "\n", + " we get humid heat as \t :1061.441609 j/kg dry air degree celcius \n", + "\n", + " we get H as \t :133344.170596 j/kg dry air\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.7 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of final temperature\n", + "\n", + "# Variable Declaration \n", + "\n", + "#given o.03 kg of water vapour/kg of dry air is contacted with water at an adiabatic temperature and humidified and cooled to 70 percent saturtion\n", + " \n", + "#from pyschometric chart\n", + "ft=46; #final temperature in degree celcius\n", + "# Calculation and Result\n", + "print \"\\n final temperature is (from chart):%f degree celcius\"%ft\n", + "y_bar=.0475; # humidity of air\n", + "print \"\\n the humidity of air(from chart) :%f kg water vapour /kg dry air\"%y_bar\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " final temperature is (from chart):46.000000 degree celcius\n", + "\n", + " the humidity of air(from chart) :0.047500 kg water vapour /kg dry air\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.8" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of molal humidity\n", + "\n", + "# Variable Declaration \n", + "\n", + "pa1=4.24 #data: vapour pressure of water at 30degree = 4.24 kpa\n", + "pa2=1.70 # vapour pressure of water at 30degree = 1.70 kpa\n", + "\n", + "#part(i)\n", + "pt=100.; #total pressure\n", + "\n", + "# Calculation \n", + "ys_bar=pa1/(pt-pa1); #kg water vapour/kg dry air\n", + "rh=.8; #relative humidity\n", + "pa3=rh*pa1; #partial pressure\n", + "y_bar=pa3*(18/28.84)/(pt-pa3); #molal humidity\n", + "print \"\\n the molal humidity:%f kg/kg dry air\"%y_bar\n", + "\n", + "#part(ii)\n", + "#under these conditions the air will be saturated at 15 degree as some water is condensed\n", + "pa=1.7; \n", + "pt=200.;\n", + "ys=pa/(pt-pa);\n", + "ys_bar=ys*(18/28.84);\n", + "\n", + "# Result\n", + "print \"\\n the molal humidity if pressure doubled and temp. is 15 :%f kg/kg dry air\"%ys_bar\n", + "\n", + "#part(iii) \n", + "Ma=18.; #molecular weight\n", + "Mb=28.84; #molecular weight\n", + "Tg=30.; #temperature of mixture\n", + "rh=(pa/pa2)*100; #relative humidity in pecentage \n", + "pt=10**5; #total pressure in pascal\n", + "VH=8315*((1./Mb)+(y_bar/Ma))*((Tg+273)/pt); #humid volume in m**3mixture/kg of dry air\n", + "print \"\\n we get humid volume VH as \\t :%f m**3/kg of dry air\"%VH\n", + "w=100/VH; #100 m**3 of original air \n", + "wo= w*y_bar; #water present in original air\n", + "wf= w*ys_bar; #water present finally\n", + "wc=wo-wf; #water condensed from 100m**3 of original sample\n", + "print \"\\n the weight water condensed from 100m**3 of original sample:%f kg\"%wc\n", + "\n", + "#part(iv)\n", + "Tg=15.; #temperature of mixture \n", + "pt=2*10**5; #total pressure in pascal\n", + "VH=8315*((1./Mb)+(ys_bar/Ma))*((Tg+273)/pt); #humid volume in m**3mixture/kg of dry air\n", + "vf=VH*110.6; #final volume of mixture\n", + "print \"\\n we get VH final volume of mixture as \\t :%f m**3\"%vf\n", + "\n", + "#end\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the molal humidity:0.021914 kg/kg dry air\n", + "\n", + " the molal humidity if pressure doubled and temp. is 15 :0.005351 kg/kg dry air\n", + "\n", + " we get humid volume VH as \t :0.904267 m**3/kg of dry air\n", + "\n", + " the weight water condensed from 100m**3 of original sample:1.831684 kg\n", + "\n", + " we get VH final volume of mixture as \t :46.311825 m**3\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.9" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of relative humidity and humid volume\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "y_bar=.03; # humidity inkg water /kg dry air\n", + "pt=760.; #total pressure in pascal\n", + "pa2=118.; #final pressure\n", + "\n", + "# Calculation and Result\n", + "y=y_bar/(18/28.84); #humidity kmol water vapour/kmol dry air\n", + "pa=(y*pt)/(y+1); #partial pressure\n", + "rh=pa/pa2; #relative humidity\n", + "sh=pa2/(pt-pa2); #saturated humidity\n", + "ph=(y/sh)*100; #percentage humidity\n", + "print \"\\n percentage humidity is :%f\"%ph\n", + "\n", + "#/part(ii)\n", + "Ma=18.; #molecular weight\n", + "Mb=28.84; #molecular weight\n", + "Tg=55.; #temperature of mixture\n", + "pt=1.013*10**5; #total pressure in pascal\n", + "VH=8315*((1./Mb)+(y_bar/Ma))*((Tg+273)/pt); #humid volume in m**3mixture/kg of dry air\n", + "print \"\\n we get VH humid volume as :%f m**3/kg dry air\"%VH\n", + "\n", + "\n", + "#part(iii)\n", + "Ca=1005.;\n", + "Cb=1884.;\n", + "Cs=Ca+Cb*y_bar; #humid heat in j/kg dry air degree celcius\n", + "print \"\\n we get humid heat as \\t :%f j/kg dry air degree celcius \"%Cs\n", + "d=2502300; #latent heat in j/kg\n", + "H=Cs*(Tg-0)+y_bar*d; #enthalpy for refrence temperature of 0 degree\n", + "print \"\\n we get H enthalpy as \\t :%f j/kg\"%H\n", + "\n", + "#part(iv)\n", + "v=100.; #volume of air\n", + "mass=v/VH; #mass of dry air\n", + "Tg=110.; #temperature of mixture\n", + "d=2502300.; #latent heat in j\n", + "H_final=Cs*(Tg-0)+y_bar*d; #enthalpy for refrence temperature of 0 degree\n", + "H_added=(H_final-H)*102.25; #HEAT added in kj \n", + "print \"\\n we get heat added as \\t :%f kj\"%(H_added/1000)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " percentage humidity is :26.151525\n", + "\n", + " we get VH humid volume as :0.978409 m**3/kg dry air\n", + "\n", + " we get humid heat as \t :1061.520000 j/kg dry air degree celcius \n", + "\n", + " we get H enthalpy as \t :133452.600000 j/kg\n", + "\n", + " we get heat added as \t :5969.723100 kj\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.10" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of film coefficient and make up water\n", + "\n", + "# Variable Declaration \n", + "\n", + "%pylab inline\n", + "L=2000.; #flow rate of water to be cooled in kg/min\n", + "T1=50.; #temperature of inlet water\n", + "T2=30.; #temp. of outlet water\n", + "H1=.016; #humidity of incoming air\n", + "cp=4.18; #specific heat of water\n", + "cpair=1.005; #specific heat capcity of air\n", + "cpwater=1.884; #specific heat capcity of water\n", + "tg=20.; #temperature in degree\n", + "to=0;\n", + "ybar=0.016; #saturated humidity at 20 degree\n", + "d=2502.; #latent heat\n", + "Ky_a=2500.; #value of masstransfer coefficient in kg/hr*m**3*dybar\n", + "\n", + "# Calculation \n", + "E=cpair*(tg-to)+(cpwater*(tg-to)+d)*ybar; #enthalpy\n", + "#similarly for other temperatures\n", + "T=[20,30,40,50,55] #differnt temperature for different enthalpy calculation\n", + "i=0;\n", + "E= [0,0,0,0,0]\n", + "while(i<5): #looping for different enthalpy calculation of operating line\n", + " E[i]=cpair*(T[i]-to)+(cpwater*(T[i]-to)+d)*ybar;\n", + " print \"\\n the enhalpy at :%f is :%f\"%(T[i],E[i]);\n", + " i=i+1;\n", + "\n", + "ES=[60.735,101.79,166.49,278.72,354.92] #enthalpy of eqll condition\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Result\n", + "plot(T,E);\n", + "plot(T,ES);\n", + "title(\"Fig.5.10(b),Temperature-Enthalpy plot\");\n", + "xlabel(\"X-- Temperature, degree celcius\");\n", + "ylabel(\"Y-- Enthalpy ,kj/kg\");\n", + "legend(\"operating line\",\"Enthalpy at saturated cond\")\n", + "show()\n", + "#locate (30,71.09) the operating conditions at the bottom of the tower and draw the tangent to the curve\n", + "Hg1=71.09; #point on the oper. line(incoming air)\n", + "Hg2=253.; #point after drawing the tangent\n", + "slope=(Hg2-Hg1)/(T1-T2); #we gt slope of the tangent\n", + " #slope = (L*Cl/G)_min\n", + "Cl=4.18;\n", + "G_min=L*60*Cl/slope; #tangent gives minimum value of the gas flow rate\n", + "G_actual=G_min*1.3; #since actual flow rate is 1.3 times the minimum\n", + "slope2=L*Cl*60/G_actual; #slope of operating line\n", + "Hg2_actual=slope2*(T1-T2)+Hg1; #actual humidityat pt 2\n", + "Ggas=10000.; #minimum gas rate in kg/hr*m**2\n", + "Area1=G_actual/Ggas; #maximum area of the tower(based on gas)\n", + "Gliq=12000.; #minimum liquid rate in kg/hr*m**2\n", + "Area2=60*L/Gliq; #maximum area of the tower(based on liquid)\n", + "print \"\\n \\n the maximum area of the tower(based on gas) is :%f m**2\"%Area1\n", + "print \"\\n the maximum area of the tower(based on liquid) is :%f m**2\"%Area2\n", + "dia=(Area1*4/3.14)**0.5; #diameter of the tower in m\n", + "\n", + "#let us assume the resistance to mass transfer lies basically in gas phase. hence the,interfacial conditions and the eqlb cond. are same.vertical line drawn between oper. and equl. line we get conditions of gas and equl. values are tabulated below as follows\n", + " \n", + " \n", + "#table\n", + "T=[20,30,40,50,55] #differnt temperature for different enthalpy calculation\n", + "#enthaly \n", + "H_bar=[101.79,133.0,166.49,210.0,278.72] #H_bar i.e. at equl.\n", + "Hg=[71.09,103.00,140.00,173.00,211.09] #Hg i.e. of operating line\n", + "i=0;\n", + "y = [0,0,0,0,0]\n", + "while(i<5): #looping for different enthalpy calculation of operating line\n", + " y[i]=1./(H_bar[i]-Hg[i]);\n", + " print \"\\n the enhalpy at :%f is :%f\"%(T[i],y[i]);\n", + " i=i+1;\n", + "\n", + "plot(Hg,y,\"o-\");\n", + "\n", + "#area under this curve gives Ntog =4.26\n", + "Ntog=4.26; #no. of transfer unit\n", + "Gs=10000.; #gas flow rate\n", + "Htog=Gs/Ky_a; # height of transfer unit\n", + "height=Ntog*Htog; #height of the tower\n", + "print \"\\n \\nthe tower height is :%f m\"%height\n", + "\n", + "\n", + "#make up water is based onevaporation loss(E),blow down loss(B),windage loss(W) M = E + B + W\n", + "W=.2/100 *L*60; #windage loss(W)\n", + "B=0; #blow down loss neglected\n", + "E=G_actual*(.064-.016); #assuming air leaves fully saturated\n", + "M = E + B + W; #make up water is based onevaporation loss(E),blow down loss(B),windage loss(W)\n", + "print \"\\n make up water is based onevaporation loss(E),blow down loss(B),windage loss(W) is :%f kg /hr\"%M\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + "\n", + " the enhalpy at :20.000000 is :60.734880\n", + "\n", + " the enhalpy at :30.000000 is :71.086320\n", + "\n", + " the enhalpy at :40.000000 is :81.437760\n", + "\n", + " the enhalpy at :50.000000 is :91.789200\n", + "\n", + " the enhalpy at :55.000000 is :96.964920\n" + ] + }, + { + "output_type": "stream", + "stream": "stderr", + "text": [ + "/usr/lib/pymodules/python2.7/matplotlib/legend.py:336: UserWarning: Unrecognized location \"Enthalpy at saturated cond\". Falling back on \"best\"; valid locations are\n", + "\tright\n", + "\tcenter left\n", + "\tupper right\n", + "\tlower right\n", + "\tbest\n", + "\tcenter\n", + "\tlower left\n", + "\tcenter right\n", + "\tupper left\n", + "\tupper center\n", + "\tlower center\n", + "\n", + " % (loc, '\\n\\t'.join(self.codes.iterkeys())))\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nH5Tvu9xFN1PzSj1qaC+eEEIahloeOahZZEII4V1dt50aSsxCCCFETfFWHEQiEXr37g0HBwc4OTkB\nALKzs+Hu7g4rKyt4eHggNzeXr3hKIxaL+Y7wXig/f9Q5O0D51Q1vxUEgEEAsFiMuLg7R0dEAgA0b\nNsDd3R2JiYlwc3PDhg0b+IqnNOr+A6P8/FHn7ADlVze8Niu92/4VERGBwMBAAEBgYCCOHj3KRyxC\nCGn2eD1yGDZsGBwdHbF161YAQFZWFszMzAAAZmZmyMrK4iseIYQ0b4wn6enpjDHGnj9/zuzs7Nif\nf/7JjIyM5N5jbGxcaT4A9Ed/9Ed/9FePv7rg7TqH9u3fDmlhYmKCsWPHIjo6GmZmZsjMzES7du2Q\nkZEBU9PKI6Qy6sZKCCFKx0uzUlFREfLz8wEAhYWFiIqKgq2tLby8vBAWFgYACAsLg7e3Nx/xCCGk\n2ePlIrikpCSMHTsWACCRSDBx4kSsWLEC2dnZ8PX1RUpKCkQiEfbv3w8jI6PGjkcIIaSepwwaRUpK\nCnN1dWXW1tbMxsaGbdq0iTHG2KtXr9iwYcNY9+7dmbu7O8vJyeE5aWWKsq9evZqZm5sze3t7Zm9v\nz06dOsVz0qoVFxczJycnZmdnx3r27MmWL1/OGFOPdc+Y4vzqsv7LSSQSZm9vz0aPHs0YU5/1X+7d\n/Oq0/jt37sxsbW2Zvb0969evH2NMfdZ/Vdnruu5VeviMzMxMZGZmwt7eHgUFBejbty+OHj2K7du3\no23btli6dCm+/fZb5OTkqNw1EYqy79+/H0KhEIsWLeI7Yo2Kioqgq6sLiUSCAQMGYOPGjYiIiFD5\ndV+uqvznz59Xm/UPAD/++CNiY2ORn5+PiIgILF26VG3WP1A5/5o1a9Rm/VtaWiI2NhatW7fmpqnL\n+q8qe13XvUoPn9GuXTvY29sDAPT19dGzZ0+kpaWpxfUQirID6nNSXVdXFwBQWloKqVQKY2NjtVj3\n5arKD6jP+n/27BlOnjyJ6dOnc5nVaf1XlZ8xpjbrH6j8W1Gn9V/Veq7Lulfp4lDR06dPERcXB2dn\nZ7W7HqI8u4uLCwBg8+bNsLOzw7Rp01R6iBCZTAZ7e3uYmZlhyJAhsLGxUat1X1V+QH3W/+eff47v\nv/8eGhr/999UndZ/VfkFAoHarH91vharquxAHX/7Smv0akD5+fmsT58+7MiRI4wxVqvrIVRFfn4+\n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\n", + "text": [ + "<matplotlib.figure.Figure at 0x266c510>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " \n", + " the maximum area of the tower(based on gas) is :7.169260 m**2\n", + "\n", + " the maximum area of the tower(based on liquid) is :10.000000 m**2\n", + "\n", + " the enhalpy at :20.000000 is :0.032573\n", + "\n", + " the enhalpy at :30.000000 is :0.033333\n", + "\n", + " the enhalpy at :40.000000 is :0.037750\n", + "\n", + " the enhalpy at :50.000000 is :0.027027\n", + "\n", + " the enhalpy at :55.000000 is :0.014786\n", + "\n", + " \n", + "the tower height is :17.040000 m\n", + "\n", + " make up water is based onevaporation loss(E),blow down loss(B),windage loss(W) is :3681.244571 kg /hr\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n3TidToYNG9aofVZWFi6XixEjRjBixAiKiopaeRgiIsGvXz9riurixVZyCEY+k4LX62XOnDkUFRWx\ne/du1qxZw549exq1KSwsZN++fZSXl7Ny5UoyMjLsn82aNavJE77D4eD++++nrKyMsrIybr75Zj8d\njohIcLvqKuuKIT3dqmUINj6TQmlpKVFRUURERBASEkJqair5+fmN2hQUFJCWlgZAYmIitbW1HDx4\nEIAbbriBvn37NrlvDSCLSFd1ag3DqlXbSEn5CUlJWaSk/ISNG7cFNDafdQrV1dWEh4fbz10uFzt2\n7Dhnm+rqagYMGODzjZcvX05eXh4JCQk8/fTThIaGtiR+EZEOye2GTZu2kZHxMsePL7a379+/EICJ\nE8cEJC6fScHhcDRrJ6d/6z/X6zIyMnjssccAePTRR5k/fz6rVq1qsm1WVpb9OCkpiaSkpGbFJCIS\n7D74YHOjhACwf/9ili9/tNlJobi4mOLiYr/F5DMphIWF4fF47OcejweXy+WzTVVVFWFhYT7ftH//\n/vbje+65h0k+7np9alIQEelMjh1r+hRcV9e92fs4/cvyokWLWhWTzzGFhIQEysvLqayspL6+nrVr\n1+I+bck/t9tNXl4eACUlJYSGhuJ0On2+6YEDB+zH69evP2N2kohIV9Cz54kmt/fq5W3nSL7mMyn0\n6NGDFStWkJKSQmxsLLfffjuDBw8mJyeHnJwcACZMmMBVV11FVFQUs2fP5tlnn7VfP2PGDEaPHs3e\nvXsJDw9n9erVADz00EMMHz6cuLg4XnvtNZ555pk2PEQRkeCUmTmeyMiFjbZFRj7C3LnJAYpIy1yI\niATUxo3bWL58C3V13enVy8vcucmtGmTW2kciImLT2kciIuI3SgoiImJTUhAREZuSgoiI2JQURETE\npqQgIiI2JQUREbEpKYiIiE1JQUREbEoKIiJiU1IQERGbkoKIiNiUFERExKakICIiNiUFERGxKSmI\niIhNSUFERGxKCiIiYlNSEBERm5KCiIjYlBRERMSmpCAiIjYlBRERsSkpiIiITUlBRERsSgoiImJT\nUhAREds5k0JRURExMTFER0ezZMmSJttkZmYSHR1NXFwcZWVl9va7774bp9PJsGHDGrU/dOgQycnJ\nDBo0iPHjx1NbW9vKwwic4uLiQIfQLIrTvxSnfynO4OEzKXi9XubMmUNRURG7d+9mzZo17Nmzp1Gb\n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\n3JueAAAAAElFTkSuQmCC\n", + "text": [ + "<matplotlib.figure.Figure at 0x3115a50>" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.11" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the make up water needed and the velocity of air\n", + "\n", + "# Variable Declaration \n", + "\n", + "#air leaves at 19 degree at fully saturated condition\n", + "\n", + "T1=30.; #temperature at the inlet in degree celcius\n", + "T2=17.; #temperature at the exit in degree celcius\n", + "f=100000.; #flow rate of water in kg/hr\n", + "hi=.004; #humidity of incoming air in kg/kg of dry air\n", + "hl=.015; #humidity of leaving air in kg/kg of dry air\n", + "Hi=18.11; #enthalpy of incoming air in kg/kg of dry air\n", + "Hl=57.16; #enthalpy of leaving air in kg/kg of dry air\n", + "#w=mdry*(hl-hi) = mdry*0.011; -----equn 1st \n", + "#mass of water evaporated\n", + "\n", + "#making energy balance: total heat in = total heat out\n", + "#heat in entering water + heat in entering air = heat in leaving water + heat in leaving air\n", + "#100000*1*(30-0) + mdry*Hi = (100000-w)*1*(17-0) + mdry*Hl ----eqn 2nd\n", + "\n", + "#substituting eqn 1st in 2nd we get;\n", + "a=14.4; #cross sectional area of the tower in m**2\n", + "\n", + "# Calculation \n", + "mdry=(T1*f-T2*f)/(Hl-Hi-T2*.011); #mass of dry air\n", + "velocity=mdry/a; #air velocity in kg/m**2* hr\n", + "x=mdry*.011; #make up water needed in kg/hr\n", + "\n", + "# Result\n", + "print \"\\n the make up water needed is :%f kg /hr\"%x\n", + "print \"\\n the velocity of air is as :%f kg/hr\"%velocity\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the make up water needed is :367.959241 kg /hr\n", + "\n", + " the velocity of air is as :2322.975009 kg/hr\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 5.12 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the length of the chamber\n", + "import math\n", + "#horizontal spray with recirculated water . air is cooled and humidified to 34 and leaves at 90percent saturation\n", + "\n", + "# Variable Declaration \n", + "\n", + "T1=65; #dry bulb temperature at the inlet in degree celcius\n", + "f=3.5; #flow rate of air in m**3/s\n", + "hi=1.017; #humidity of incoming air in kg/kg of dry air\n", + "hl=.03; #humidity of leaving air in kg/kg of dry air\n", + "k=1.12; #mass transfer coefficient in kg/m**3*s\n", + "y1=.017; #molefraction at recieving end\n", + "y2=.03; #molefraction at leaving end\n", + "\n", + "#substituting eqn 1st in 2nd we get;\n", + "a=2; #cross sectional area of the tower in m**2\n", + "d=1.113; #density o fair in kg/m**3\n", + "\n", + "# Calculation \n", + "m=(f*d) #mass flow rate of air\n", + "gs=m/hi; #air velocity in kg/m**2* hr\n", + "ys_bar=.032;\n", + "#for recirculation humidifier\n", + "# Result\n", + "z=math.log((ys_bar-y1)/(ys_bar-y2))*gs/k; #length of the chamber required\n", + "print \"\\n the length of the chamber required is :%f m\"%z\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the length of the chamber required is :6.890939 m\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Elements_Of_Mass_Transfer_Part_1/ch6.ipynb b/Elements_Of_Mass_Transfer_Part_1/ch6.ipynb new file mode 100644 index 00000000..ab63d6e7 --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/ch6.ipynb @@ -0,0 +1,1312 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6 : Drying" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.1 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation of the solid temp\n", + "\n", + "# Variable Declaration \n", + "#air leaves the pre-heater of the dryer at 325K\n", + "\n", + "H1=.005; #humidity of incoming air per kg of dry air\n", + "T1=25.; #wet bulb temperature\n", + "#moisture is removed along constant wet bulb temp. till 60per R.H is reached\n", + "# from the chart ,humidity of ai rleaving first shelf =.016 kg water /kg dry air.\n", + "\n", + "#dry bulb temp. of exit air is at 27 degree aand is at humidity of .016 kg water/kg dry air.the air is again heated to 52 degree dry bulb temp. in 2nd heater .\n", + "\n", + "#so air leaves heater at 52 degree and humidity of .016 kg water/kg dry air. when it leaves the 2nd shelf the correspondin dry bulb temp. is 34 degree and humidity is .023 kg water/kg dry air. the air enters the 3rd shelf after preheating to 52 degree . \n", + " \n", + "#similarly fro 3rd shelf , exit air has a humidity of .028 kg water/kg dry air and adry bulb temp. is 39 degree. the air is leaving the 4rth shelf has a humidity of .016 kg water/kg dry air and adry bulb temp. of 42 degree(the figure is only indicative and doed not correspond toactual one)\n", + "\n", + "print \"\\n the solid temp. correspond to wbt and they are 23, 27,32 and 34 degree respectively\"\n", + "\n", + "#part(ii)\n", + "Ybar=.032; #kg water/kg dry air#final moist air condotions \n", + "T2=42.; #dry bulb temperature\n", + "Mair=28.84; #molecular weight of air \n", + "Mwater=18; #molecular weight of water\n", + "pt=1.013*10**5; #total pressure in pascal\n", + "Vh=8315*((1/Mair)+(Ybar/Mwater))*((T2+273)/pt);\n", + "r=300; #flow rate of moist air leaving the dryer\n", + "a=r*60/Vh; #amount of dry air leaving /hr\n", + "w=a*(Ybar-0.005); # water removed /hr\n", + "\n", + "# Result\n", + "print \"\\n the water removed /hr is :%fkg /hr\"%w\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the solid temp. correspond to wbt and they are 23, 27,32 and 34 degree respectively\n", + "\n", + " the water removed /hr is :515.648113kg /hr\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.2 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying\n", + "# Variable Declaration \n", + "\n", + "%pylab inline\n", + "#table X*100,(kgmoisture/kg dry solid) N*100 (kg moisture evaporated /hr*m**2)\n", + " \n", + "# 35 30\n", + "# 25 30\n", + "# 20 30\n", + "# 18 26.6\n", + "# 16 23.9\n", + "# 14 20.8\n", + "# 12 18\n", + "# 10 15\n", + "# 9 9.7\n", + "# 8 7\n", + "# 7 4.3\n", + "# 6.4 2.511111\n", + "\n", + "\n", + "Ls=262.5; #mass of bone dry solid ais the drying surface\n", + "A=262.5/8; #both upper surafce and lower surface are exposed\n", + "Nc=0.3; #in kg/m**2*hr\n", + "x2=.06; #moisture content on wet basis finally after drying\n", + "x1=.25; #moisture content on wet basis finally after drying\n", + "Xcr=0.20; #crtical moisture content\n", + "X1=x1/(1-x1); #moisture content on dry basis intially\n", + "X2=x2/(1-x2); #moisture content on dry basis finally after drying\n", + "Xbar=0.025; #equillibrium moisture \n", + "\n", + "# Calculation \n", + "t1=Ls/(A*Nc) *(X1-Xcr); #so for constant rate period \n", + "\n", + "#for falling rate period we find time graphically\n", + "p = [.20 ,.18, .16, .14, .12, .10, .09, .08, .07, .064];\n", + "a = [3.3, 5.56, 6.25, 7.14, 8.32, 10.00, 11.11, 12.5, 14.29, 15.625];\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Result\n", + "plot(p,a);\n", + "title(\"Fig.6.18 Example2 1/N vs X for fallling rate period\");\n", + "xlabel(\"X-- Moisture content, X(kg/kg)\");\n", + "ylabel(\"Y-- 1/N, hr,m**2/kg\");\n", + "\n", + "Area=1.116; #area under the curve\n", + "t2=Area *Ls/A; #falling rate period we find time graphically\n", + "ttotal=t1+t2; #total time for drying\n", + "print \"\\n the total time for drying the wet slab on wet basis is :%f min\"%ttotal\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n", + "\n", + " the total time for drying the wet slab on wet basis is :12.483556 min\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "<matplotlib.figure.Figure at 0x29ae2d0>" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.3.a " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# plots of drying rate curve\n", + "\n", + "#part(i)\n", + "#table wt of wet slab,kg -- 5.0 4.0 3.6 3.5 3.4 3.06 2.85\n", + "# drying rate,kg/m**2s-- 5.0 5.0 4.5 4.0 3.5 2.00 1.00\n", + "# X,Dry basis -- 1.0 0.6 .44 0.4 .36 .224 0.14\n", + "# equillibrium relation is given under\n", + "\n", + "# Variable Declaration \n", + "p = [1.0,0.6,.44,0.4,.36,.224, 0.14];\n", + "a = [5.0,5.0, 4.5, 4.0, 3.5, 2.00, 1.00];\n", + "\n", + "i=0; #looping for calc. of 1/N \n", + "t = [0,0,0,0,0,0,0]\n", + "\n", + "# Calculation \n", + "while(i<7): #looping begins\n", + " t[i]=1./(a[i]);\n", + " i=i+1;\n", + "\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Result\n", + "plot(p,a);\n", + "title(\"Fig.6.19(a) Example3 Drying Rate curve\");\n", + "xlabel(\"X-- Moisture content, X(kg/kg) ---->\");\n", + "ylabel(\"Y-- Drying Rate, N(kg/hr.m**2 ---->\");\n", + "#xset('window',1);\n", + "plot(p,t,\"o-\");\n", + "title(\"Fig.6.19(b) Example3 1/N vs X\");\n", + "xlabel(\"X-- Moisture content, X(kg/kg) --->\");\n", + "ylabel(\"Y-- 1/N, hr,m**2/kg --->\");\n", + "show()\n", + "#from X=0.6 to 0.44 ,falling rate is non linear and from X=.44 to .14 falling rate is linear\n", + "\n", + "print \"\\n from the graph we get critical moisture content as 0.6 kg moisture/kg dry solid\"\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\nAElFTkSuQmCC\n", + "text": [ + "<matplotlib.figure.Figure at 0x34ed890>" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " from the graph we get critical moisture content as 0.6 kg moisture/kg dry solid\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.3.b" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# total time for drying\n", + "\n", + "# Variable Declaration \n", + "#part(ii)\n", + "w1=5.; #wet of wet solid\n", + "c1=.5/(1-.5); #moisture content per kg wet solid\n", + "w2=5.*0.5; #moisture for 5kg wet solid\n", + "w3=w1-w2; #weight of dry solid\n", + "xbar=0.05; #equillibrium moisture content\n", + "Xbar=xbar/(1-xbar); #equillibrium moisture content\n", + "Ls=2.5; #mass of bone dry solid ais the drying surface\n", + "A=5.; #both upper surafce and lower surface are exposed\n", + "Nc=0.6; #in kg/m**2*hr\n", + "#from X=0.6 to 0.44 ,falling rate is non linear and from X=.44 to .14 falling rate is linear\n", + "X2=.15/(1-.15);\n", + "Xcr=.6; #kg moisture per kg dry solid\n", + "#so we can find time fro drying from 0.6 to .44 graphically and then for X=.44 to .1765\n", + "X1=1.; #moisture content on dry basis intially\n", + "\n", + "# Calculation \n", + "t1=Ls/(A*Nc) *(X1-Xcr); #time taken for constant drying rate(fromX=1 to .6) \n", + "X1=.44; #moisture content on dry basis\n", + "import math\n", + "t2=(Ls/(A*Nc))*((Xcr-Xbar)*math.log((X1-Xbar)/(X2-Xbar)));\n", + "t3=0.0336*Ls/Nc; #fro graph we get from X=.6 to .44\n", + "ttotal=t1+t2+t3; #total time for drying the wet slab\n", + "\n", + "# Result\n", + "print \"\\n the total time for drying the wet slab to 15 percent moisture on wet basis is :%f min\"%(ttotal*60)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the total time for drying the wet slab to 15 percent moisture on wet basis is :59.610778 min\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.4" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the sheets\n", + "\n", + "#table X-- .30 .20 .18 .15 .14 .11 .07 .05\n", + "# N-- 1.22 1.22 1.14 .90 .80 .56 .22 .05\n", + "#let Ls/A=p\n", + "# Variable Declaration \n", + "p=48.; #mass of bone dry solid ais the drying surface\n", + "v=1.5*1.5*.5; #volume of material\n", + "Nc=1.22; #in kg/m**2*hr\n", + "Xcr=0.2; #crtical moisture content\n", + "X1=0.25; #moisture content on dry basis intially\n", + "X2=0.08; #moisture content on dry basis finally after drying\n", + "Xbar=0.025; #equillibrium moisture \n", + "\n", + "#tbar=(Ls/(A*Nc))*((Xcr-Xbar)*log((Xcr-Xbar)/(X2-Xbar)));\n", + "# Calculation \n", + "t1=p/(Nc) * (X1-Xcr); #time taken for constant drying rate period \n", + "#table X-- .18 .15 .14 .11 .07 .05\n", + "# 1/N-- .8772 1.11 1.25 1.7857 4.545 20\n", + "\n", + "# equillibrium relation is given under\n", + "p = [.18,.15,.14,.11,.07,.05];\n", + "a = [.8772,1.11,1.25,1.7857,4.545,20];\n", + "from matplotlib.pyplot import *\n", + "\n", + "# Result\n", + "plot(p,a);\n", + "title(\"Fig.6.20 Example4 1/N vs X for fallling rate period\");\n", + "xlabel(\"X-- Moisture content, X(kg/kg) ---->\");\n", + "ylabel(\"Y-- 1/N, hr,m**2/kg ---->\");\n", + "\n", + "a=14*.025*1; #area under the curve\n", + "t2=a*48; #time taken for varying drying period\n", + "ttotal=t1+t2; #total time taken \n", + "print \"\\n total time for drying the material from 25 to 8 percent moisture under same drying conditions is :%f hr\"%(ttotal)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " total time for drying the material from 25 to 8 percent moisture under same drying conditions is :18.767213 hr\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEXCAYAAABCjVgAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XdYFOfaBvB7KYr0oiAKgqKI9EXsDUVEj2IUjRETezTR\nmERzNBpLUGM3fhr1mGI4amzRBIwdW0QNCWJDY4uJCgKigtIFac/3xx5GFljasjssPL/r8pLdmZ33\nnm3PzjvzzkiIiMAYY4wB0BI7AGOMsbqDiwJjjDEBFwXGGGMCLgqMMcYEXBQYY4wJuCgwxhgTNNii\nYGRkhNjYWLFj1DsRERGwtbUVO4ZGOXDgAGxtbWFkZITr168rvbynT5+id+/eMDY2xpw5cyqdX0tL\nCw8ePAAATJgwAYsWLQJQ9rV0dXXF+fPnlc5XHynz3JR8/uuCel8U7O3toa+vDyMjIxgZGcHY2BhP\nnjxBZmYm7O3ta7TMly9fYvr06WjWrBlMTU3Rp0+fcufLy8vD5MmTYW9vD2NjY0ilUoSHh8vNc+bM\nGTg5OcHAwAD9+vXDo0ePFLbr4+ODJk2aCOtiZGSEN954o0brUNf4+vpCS0sLRUVFCudZtGgR3Nzc\noKuriyVLlpQ7z3vvvYetW7di+/bt0NLSwtq1a+Wm29jYqPSL7fDhw7C2tkZqaqpw38GDB2FjY4PM\nzMxyHzN79mxs2bIFmZmZ8PDwUDrDd999B0tLS2RkZJRZ/8pIJBJIJJJyp928eRO9e/dWOl9tsLe3\nx6+//ip2DEFdem6UVe+LgkQiwZEjR5CZmYnMzExkZGSgefPmSi1z6tSpSEtLw927d5GamooNGzaU\nO19BQQFatWqF8+fPIyMjA8uWLcOoUaMQFxcHAEhJScGIESOwfPlypKamwtvbG2+99VaF6/Kf//xH\nWJfMzEwcPHhQqXWpC3bv3o2CggKFX0bF2rVrh7Vr12Lw4MEK5w0PD8fgwYMBAObm5lizZg2ysrKE\n6ZW1oayAgAD069cPs2bNAgCkpaVh+vTp+Oabb2BkZFRmfiLCo0eP4OzsXKP2yiuicXFx6NChQ42W\nV5xJTIWFhZXOI5FIRM8JyD7j9Q7Vc/b29nTmzJky90skErp//z4REaWkpNCQIUPI2NiYOnXqRAsW\nLKCePXuWu7w7d+6QsbExZWZm1iiPu7s7hYWFERHRt99+Sz169BCmZWdnU5MmTeivv/4q97E+Pj4U\nEhJS7rRVq1ZRly5dqKCggIiItmzZQi4uLvTq1SsiIho5ciQ1b96cTExMqHfv3nTr1i3hsePHj6dp\n06bRoEGDyNDQkHr27ElJSUn00UcfkampKTk5OdG1a9eE+e3s7GjlypXk7OxMZmZmNHHiRMrNzSUi\norNnz5KNjY0wb2JiIgUGBlKzZs2odevWtHHjRrncaWlp5OjoSFFRUSSRSKiwsLDS5/Cdd96hxYsX\nl7n/+vXr5O7uTkRE27Zto549e9LQoUNpyZIlwjw2NjZ07ty5Mo+Nioqi5s2bU1FRkXBfWFiYsLyL\nFy9Sx44dydjYmKysrOiTTz5RmC8lJYUsLS3pxIkTNGHCBBozZky58+Xm5pKBgQFJJBIyMDCgtm3b\nEhHR7du3qU+fPmRqakouLi506NAh4THjx4+n999/nwYNGkQGBgZl3tvjx48nXV1datSoERkaGtKZ\nM2fo4sWL1LVrVzI1NSVra2uaMWMG5eXlCY8p+VmYMGECLVy4kIjKvpZ2dnZCe8HBwfTmm2/SuHHj\nyMjIiFxcXOjy5cvCvFeuXCFPT08yMjKiN998k0aNGiUst7Rt27ZR9+7dadasWWRhYUGLFi2i+/fv\nU9++fcnCwoKaNm1Kb7/9NqWlpRGR7PXX0tKiJk2akKGhIa1du5aIiP744w/q1q0bmZqakoeHB0VE\nRCh8jSp6DxMRHT58mDw8PMjU1JS6d+9ON27ckHvs6tWryc3NjfT09KigoIDs7Ozo9OnTwuv68ccf\nU4sWLahFixY0c+ZM4XNIRLRmzRqytramli1bUkhIiNzzXxc0iKJQ/GKVVPKFeOuttygoKIhycnLo\n9u3bZGtrS7169Sp3eTt27CA3NzeaNWsWNW3alNzc3Cg0NLRKWZ48eUJ6enrCl/5HH31E06dPl5un\nouX5+PjQ999/X+60oqIi6t27Ny1evJju3btHZmZmFBMTI0zftm0bZWVlUV5eHs2cOZM8PT2FaePH\nj6emTZvS1atXKTc3l/r160d2dna0c+dOKioqooULF1Lfvn2F+e3s7MjNzY0SEhLoxYsX1KNHj3K/\nSAoLC8nLy4u++OILys/PpwcPHlCbNm3oxIkTwrKmT59OGzZsoIcPHypdFFauXEnz588X1rdnz54U\nExNDZmZmlJqaSkSKiwIRkYODA506dUq4PXLkSFq9ejUREXXt2pV27dpFRLLiHRUVVWHGvXv3koWF\n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\nAAAAAElFTkSuQmCC\n", + "text": [ + "<matplotlib.figure.Figure at 0x34fa550>" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.5.a" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Calculation and plot of drying rates\n", + "\n", + "#table 6.5.1\n", + "#S.NO. Time (Hr) weight of wet material(kg)\n", + "# 0.0 5.314\n", + "# 0.4 5.238\n", + "# 0.8 5.162\n", + "# 1.0 5.124\n", + "# 1.4 5.048\n", + "# 1.8 4.972\n", + "# 2.2 4.895\n", + "# 2.6 4.819\n", + "# 3.0 4.743\n", + "# 3.4 4.667\n", + "# 4.2 4.524\n", + "# 4.6 4.468\n", + "# 5.0 4.426\n", + "# 6.0 4.340\n", + "# infinite 4.120\n", + "\n", + "# Variable Declaration \n", + "w=[5.314,5.238,5.162,5.124,5.048,4.972,4.895,4.819,4.743,4.667,4.524,4.468,4.426,4.340,4.120]\n", + "t=[0.0,0.4,0.8,1.0,1.4,1.8,2.2,2.6,3.0,3.4,4.2,4.6,5.0,6.0]\n", + "#part(i)\n", + "x=4.120; #weight of the dried material\n", + "print \"\\n moisture content (dry basis) \"\n", + "i=0; \n", + "p = [] #looping starts\n", + "\n", + "# Calculation \n", + "while(i<15): #calculation of moisture content\n", + " p.append((w[i]-x)/x);\n", + " print \"\\n :%f\"%p[i]\n", + " i=i+1;\n", + "\n", + "print \"Drying rate kg/hr*m**2\"\n", + "i=1;\n", + "a = []\n", + "for i in range(15):\n", + " a.append(0)\n", + " \n", + "while(i<14):\n", + " a[i] =((p[i-1]-p[i])*4.12/(t[i]-t[i-1]))\n", + " print \" %f \"%a[i]\n", + " i=i+1;\n", + "from matplotlib.pyplot import *\n", + "a[0]=.19;\n", + "a[14]=0;\n", + "\n", + "# Result\n", + "print \"\\n\\n from the above data it is clear that critical moisture content Xcr=0.11\"\n", + "plot(p,a);\n", + "title(\"Fig.6.19(a) Example3 Drying Rate curve\");\n", + "xlabel(\"X-- Moisture content, X(kg/kg) ---->\");\n", + "ylabel(\"Y-- Drying Rate, N(kg/hr.m**2 ---->\");\n", + "show()\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " moisture content (dry basis) \n", + "\n", + " :0.289806\n", + "\n", + " :0.271359\n", + "\n", + " :0.252913\n", + "\n", + " :0.243689\n", + "\n", + " :0.225243\n", + "\n", + " :0.206796\n", + "\n", + " :0.188107\n", + "\n", + " :0.169660\n", + "\n", + " :0.151214\n", + "\n", + " :0.132767\n", + "\n", + " :0.098058\n", + "\n", + " :0.084466\n", + "\n", + " :0.074272\n", + "\n", + " :0.053398\n", + "\n", + " :0.000000\n", + "Drying rate kg/hr*m**2\n", + "\n", + "\n", + " from the above data it is clear that critical moisture content Xcr=0.11\n" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEXCAYAAABVr8jJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8TNf/P/DXZBFLJosIlU1ESAhZNPYtShqxpJXSolUq\nv1Cqy0dVaaio5YPy7SLVqlqKUlVL0IiUT0ObIi2pKGJNiEhIiWxCtvP7I5/cj5FMZkYyk5nJ6/l4\neDBz7zn3fWbGvOfcc+65MiGEABERkQZM6jsAIiIyPEweRESkMSYPIiLSGJMHERFpjMmDiIg0xuRB\nREQaY/LQM3K5HGlpafUdhkoHDx7EyJEj1do3KioKs2fP1nJE2hcZGYnx48fXdxhPzFA+W2QYmDzq\niaurK5o2bQq5XA65XA4rKytkZWUhPz8frq6uT1Tn/fv3MW3aNNjb28PGxgYDBgxQum9UVBT8/f3R\nuHFjvPbaa1W2f/PNN2jfvj3kcjmCg4ORmZmpsD0iIgJz5sxRK67w8HB89913yM7OVrqPiYkJLC0t\npddDLpdjxYoVatWvKzKZTO19Z82aBRcXF1hZWcHJyQkzZsxAaWmpWmU3btwIU1NT6XVwc3PDpEmT\ncOnSpScNHQBq9dmqSWRkJMzNzSGXy2FjY4OePXvi119/Vbu8iYkJrl69WudxkXYxedQTmUyG/fv3\nIz8/H/n5+cjLy8NTTz1VqzonT56Me/fuISUlBTk5Ofj000+V7uvo6Ih58+Zh0qRJVbbFx8cjIiIC\ne/fuxd27d9G2bVuMHTtW2v7HH38gLy8P3bt3VysuCwsLBAcHY9OmTTXul5ycLL0e+fn5mDlzplr1\n64om19OGhYXh3LlzyMvLQ2JiIuLi4vDNN9+oXb5Pnz7S5+LQoUNo0qQJnn76aZw9e7ba/dVNTNog\nk8kwduxY5Ofn486dOxg8eDBGjRqlUR31fa1yfb5+horJQ888+ivszp07GDFiBKytrdG9e3fMnTsX\n/fr1q7ZcSkoK9u3bh6+//hp2dnaQyWTw8/NTepyRI0fiueeeg52dXZVt+/fvx+jRo9GxY0eYm5tj\n3rx5OHr0KFJTUwEABw4cQEBAgEKZt99+Gy4uLrC2toa/vz9+++03he0BAQH46aefNHkpJMOGDVNI\nJGPGjEFYWBgA4MqVK3jmmWfQokUL2Nvb45VXXkFubq60r6urK1asWAFvb2/I5XKEhYXh1q1bCA4O\nhrW1NQIDA3Hv3j0AQFpaGkxMTLB27Vo4OjrCwcEBK1euVBrX8ePH0bt3b9ja2sLX1xdHjhyRtnl4\neMDS0hJAxRejiYkJWrdurXabK79MZTIZ3Nzc8MUXX2DAgAGIjIxUiHX9+vVo06YNBg0ahOHDhyMq\nKkqhHm9vb0RHRwNQ/GxNnDgRb7zxBoYPHw4rKyv07NlT4dd/XFwcPDw8YGNjgzfeeAMDBgzAunXr\nlMZaGa+pqSnGjRuH7Oxs/PPPPwCAxMRE9OrVC7a2tnBwcMCbb76JkpISAED//v0BAD4+PpDL5dix\nYweAis+gr68vbG1t0adPH5w5c0bpa3X27FkEBgbCzs4OTz31FJYuXSq1cd68edJ+8fHxcHZ2lh67\nurpi+fLl8Pb2hqWlJZYvX47Ro0cr1P3222/j7bffBgDk5uYiLCwMDg4OcHJywrx581BeXq40LmPH\n5FGPVP3aeuONNyCXy3Hr1i18++232LRpk9JTJ4mJiWjTpg0+/PBD2Nvbw9vbG7t27XqiGGQymcLz\nlf9B/v77bwDAmTNn4OHhoVCme/fuOH36NHJycjBu3DiMHj0axcXF0nZPT0+cPn1a41gAYP369di8\neTN++eUXfPfdd/jzzz/x+eefS9sjIiKQmZmJ8+fPIz09XfqCrWzLrl27cPjwYVy4cAH79+9HcHAw\nli5ditu3b6O8vFyhLqDiS+by5cuIi4vDsmXLcPjw4SoxZWRkYPjw4fjwww+Rk5ODFStW4IUXXpC+\nMAFg6dKlkMvlcHZ2xvDhw/Hcc8/V2H5VQkNDq5wOOnr0KFJSUnDw4EFMmDABW7ZskbadPn0aN2/e\nxLBhw6qtb/v27YiMjEROTg7c3d0REREBAPjnn38wevRoLFu2DHfv3oWHhweOHTum1mm74uJibNq0\nCe3atUOLFi0AAGZmZvjss89w584dHDt2DIcPH8bq1aul+IH/9TpHjx6NpKQkhIWFYe3atbh79y6m\nTJmCkJAQhc9Tpfz8fAwePBhDhw5FZmYmLl++jEGDBgGoeO9Vxfz999/jwIEDyM3NxZgxYxATE4OC\nggIAQFlZGXbs2IGXX34ZQEUyatSoEa5cuYKkpCSNe5NGR1C9aNOmjbC0tBQ2NjbCxsZGjBw5Uggh\nhEwmE1euXBGlpaXC3NxcXLx4USozd+5c0bdv32rrW7x4sZDJZGLBggWipKREHDlyRFhaWorz58/X\nGMfcuXPFxIkTFZ47dOiQsLe3F8nJyeL+/fti8uTJwsTERHz//fdCCCECAwPFmjVraqzX1tZWJCcn\nS48vXrwoTE1Nle4vk8mElZWV9HrY2NiIuLg4afvOnTuFk5OTaNGihUhISFBaz+7du4Wfn5/02NXV\nVWzdulV6/MILL4hp06ZJj1etWiWef/55IYQQqampQiaTiQsXLkjbZ82aJcLCwoQQQsyfP1+88sor\nQgghli5dKsaPH69w7KCgIPHtt99WienUqVPCxcVF7Ny5U2ncj9qwYUO17/OBAweEubm5QqypqanS\n9qKiImFraysuX74shBDi3XffFW+88Ya0vfKzJYQQEydOFOHh4dK2mJgY4enpKYQQ4ttvvxW9e/dW\nOLazs7NYt25dtfHOnz9fNGrUSNjY2AhTU1NhZ2en8Ll93CeffCJ93h+PSwghXn/9dTFv3jyFMh4e\nHuLIkSNV6tq6davo2rVrtceZOHGimDt3rvT4l19+EU5OTtJjV1dXsWHDBoUyffv2FZs2bRJCCBEX\nFyfatWsnhBAiKytLWFhYiKKiIoVjDxw4UGk7jR17HvVEJpMhOjoaOTk5yMnJqdJLyM7ORmlpqUI3\n28nJSWl9TZo0gbm5OebOnQszMzP0798fAwcORFxcXI1xiGp+7Q8aNAiRkZF44YUX0LZtW7Rt2xZy\nuVw6vq2tLfLy8hTKrFixAp06dYKNjQ1sbW2Rm5ur8Cs8Pz8f1tbWNcaSlJQkvR45OTkIDAyUtg0f\nPhxlZWXw9PRE7969pedv3bqFMWPGwMnJCdbW1hg/fjzu3LmjUG+rVq0UXqdHHzdu3Fj6pVnp0dfc\nxcUFN2/erBLrtWvXsGPHDtja2kp/EhISkJWVVWVfPz8/TJs2DZs3b66x/apkZGSgefPmSmNt3Lgx\nXnzxRWzevBlCCHz//fc1zg57/HWpfB1u3rxZ5bNW02cPAF566SXk5OTg1q1b6Ny5M1atWiVtu3jx\nIoYPH47WrVvD2toaERERVd6jR127dg0rV65UeG1v3LhRZdIGAKSnp8PNza3G2Gry6OsHAOPGjcO2\nbdsAAFu3bpV6HdeuXUNJSQlat24txfT666/XOAnE2DF56Cl7e3uYmZkhPT1deu7Rfz/O29sbQNVk\noKrbrmz7tGnTcPHiRWRlZSE0NBSlpaXo3LmzdKyLFy9K+/7666/4+OOPsWPHDty7dw85OTmwtrZW\niOX8+fPw9fWtMZaaREREoFOnTsjMzMT3338vPf/BBx/A1NQUf//9N3Jzc7F582aV56GrS5iPun79\nusK/HR0dq+zj4uKC8ePHKyS7/Px8zJo1q9o6S0pK0KxZsxqPq8ru3bulMYJKj79/EyZMwHfffYdD\nhw6hadOm6NGjh8bHcXBwwI0bN6THQgiFx4979DSnnZ0dvv76a3z99dfSGNnUqVPRqVMnXL58Gbm5\nuVi8eHGN75GLiwsiIiIUXtuCggK89NJL1e6rbKZWs2bNcP/+felxdYn98ddv1KhRiI+PR0ZGBvbs\n2YNx48YBqEgyFhYWuHPnjhRTbm5ujWMxxo7JQ0+ZmpoiNDQUkZGRKCoqQkpKCjZv3qz0y37AgAFw\ncXHBv//9b5SWliIhIQHx8fEICgqqdv+ysjI8ePAApaWlKCsrw8OHD1FWVgYAePjwIf7++28IIXD9\n+nVMnjwZ77zzjtRzGDp0qMLgcH5+PszMzNCiRQsUFxfjo48+qtIzOXLkCIKDg2tss7Iv9aNHj2Lj\nxo3YvHkzNm7ciDfffFPqDRQUFKBZs2awsrJCRkYGPv744xqPoY5FixahqKgIZ8+excaNG6v90nrl\nlVewb98+xMXFSa9l5ZeOEAJr1qzBvXv3IIRAYmIiVq9ejdDQUI1jKSsrQ2pqKt58800cPXoU8+fP\nr3H/Xr16QSaTYebMmXj11VeV7ldTAh06dCjOnDmD6OholJaW4osvvqj2i1dZXR06dMCIESOwfPly\nABXvkVwuR9OmTZGSkoIvv/xSYf9WrVrhypUr0uPw8HB89dVXSExMhBAChYWF+Omnn6r0EIGKHmlm\nZiY+++wzPHz4EPn5+UhMTAQA+Pr6IiYmBjk5OcjKyqpx9mEle3t7BAQEYOLEiXBzc5PG9lq3bo1n\nn30WM2bMQH5+PsrLy3HlyhVpzKYhYvLQM48mh6ioKOTm5uKpp57ChAkTMHbsWDRq1Eja3rlzZ6mL\nbWZmhujoaMTExMDGxgZTpkzB5s2b0aFDBwDAkiVLMHToUKnswoUL0bRpUyxbtgxbtmxBkyZNsHjx\nYgBAUVERXn75ZcjlcvTo0QN9+vTBwoULpbJ+fn6wtraW/pMOGTIEQ4YMQYcOHeDq6oomTZrAxcVF\n2v/Bgwc4cOAAJkyYUGPbK2fcVP6p/I86YcIEfPHFF2jdujX69u2LsLAwaYrx/PnzcerUKVhbW2PE\niBF44YUXNOptVTeoOmDAALi7u2Pw4MF47733MHjw4Cr7Ojk5ITo6GkuWLEHLli3h4uKClStXSl+k\ne/bsQbt27WBtbY2wsDAsWrRI7eQhk8lw7NgxyOVyWFtbY+DAgSgoKMAff/wBLy+vatvxqFdffRVn\nzpzBK6+8olG7Kx+3aNECO3bswKxZs9CiRQucP38e/v7+sLCwUBrv43W999572LRpE27fvo0VK1Zg\n69atsLKywuTJkzFmzBiF/SMjIzFhwgTY2trixx9/xNNPP421a9di+vTpaN68Odq3b690mrelpSV+\n/vln7Nu3D61bt0aHDh0QHx8PABg/fjx8fHzg6uqKIUOGVDmuMuPGjcPhw4elXkelTZs2obi4GJ06\ndULz5s0xevToGpOqsZMJVX140hvvv/8+bt++jQ0bNtR3KPj555+xevVq7N69W+W+UVFRuHHjhjSF\nUl+lpaXBzc0NpaWlMDEx3N9Vmzdvxtq1a+vsV3F5eTmcnZ2xdevWGi88pYZFq/9DYmNj4enpifbt\n22PZsmVVtn/33Xfw8fGBt7c3+vTpg+TkZLXLNgQXLlxAcnKydOpj/fr1ai8Jom2BgYFqJQ4AmD59\nut4nDmNx//59fPHFF5g8eXKt6omLi8O9e/fw8OFDLFmyBADQs2fPugiRjIW2pnGVlpaKdu3aidTU\nVFFcXCx8fHzEuXPnFPb5/fffxb1794QQFdMQe/TooXbZhuCPP/4Q7u7uomnTpqJt27Zi6dKl9R2S\nUUtNTRUmJiairKysvkN5IrGxsaJZs2bi+eefr3UbIiMjhZ2dnZDL5aJnz54iMTGxjqIkY6G101bH\njh3DggULEBsbCwDSL09lC+Tl5OSgS5cuuHHjhsZliYhIt7R22iojI6PKNQoZGRlK91+3bp00oKtp\nWSIi0i0zbVWsyQqkv/zyC9avX4+EhASNympyDCIi+p/annTSWs/D0dGxygVu1V2lmpycjPDwcOzd\nuxe2trYalQX+tyibMf6ZP39+vcfA9rF9Da1tDaF9dUFrycPf3x+XLl1CWloaiouLsX37doSEhCjs\nc/36dYSGhmLLli1wd3fXqCwREdUfrZ22MjMzQ1RUFIKCglBWVoawsDB07NgRa9asAQBMmTIFH330\nEXJycjB16lQAgLm5ORITE5WWJSIi/WDQFwk+vnS4sYmPj69y3wxjwvYZLmNuG2D87auL704mDyKi\nBqYuvjsNdw0GIiKqN0weRESkMSYPIiLSGJMHERFpjMmDiMjAjRsH6PrWIpxtRURk4CwtgcxMQC5X\nb3/OtiIiauDy8wEhKhKILjF5EBEZsMxMoHVrQNfrxDJ5EBEZsKysiuSha0weREQGrLLnoWtMHkRE\nBozJg4iINMbkQUREGmPyICIijWVmAk89pfvjMnkQERkw9jyIiEhj9TVVl8uTEBEZqOLiiiVJiooA\nEw26AlyehIioAcvKAlq21Cxx1BUmDyIiA1Vf4x0AkwcRkcFi8iAiIo3V1zRdQIPksXv3buTn52sz\nFiIi0oDe9zyuXLmCF198EVu2bNF2PEREpKb6mqYLqJk81q9fj1mzZmHDhg3ajoeIiNSk1z2P0tJS\n7NixA7Nnz4a1tTVOnz6ti7iIiEgFvU4eBw4cQK9evSCXy/Haa69h3bp1uoiLiIhUqM/kofIK8+ee\new4zZszAgAEDUFRUBC8vL6SkpKBRo0a6ilEpXmFORA1VWRnQpAlQUABo+nWs9SvMc3JykJubiwED\nBgAAmjRpglGjRuHw4cO1OigREdXOP/8A1taaJ466wrWtiIgM0F9/Aa++CiQna15W52tbRUZG1upg\nRERUN+pzmi6gYfKIjo7WVhxERKSB+hwsBzRMHjxFRESkHwwqeZw6dUpbcRARkQYMKnn4+/trKw4i\nItJAfS6KCPC0FRGRQTKonsewYcO0FQcREWnAoJJHjx49tBUHERGpSYj6n6qr0UWCfn5+SEpK0mY8\nGuFFgkTUEOXmAs7OQF7ek5XX+UWCRERU/+r7lBWgYfJYs2aNtuIgIiI1GVzy+Oabb7QVBxERqam+\np+kCGiaPP/74Q1txEBGRmgyu59GqVSttxUFERGoyuOQRGxurrTiIiEhN9T1NF+BsKyIig2NwPQ8i\nIqp/Rp88YmNj4enpifbt22PZsmVVtqekpKBXr15o3LgxVq5cqbDN1dUV3t7e8PPzQ/fu3bUZJhGR\nQdGH5GFW08bY2FhkZGRg0KBBcHV1lZ5fv349Jk2aVGPFZWVlmD59Og4dOgRHR0d069YNISEh6Nix\no7SPnZ0dVq1ahT179lQpL5PJEB8fj+bNm2vYJCIi41VUBNy/D9ja1m8cSnsec+bMwZIlS3DmzBkM\nGjQIn3/+ubRt1apVKitOTEyEu7s7XF1dYW5ujjFjxlS5E6G9vT38/f1hbm5ebR1ceoSISFFWVsU1\nHjJZ/cahtOexb98+JCUlwdzcHJGRkRg7diyuXr2KTz75RK2KMzIy4OzsLD12cnLCiRMn1A5MJpNh\n8ODBMDU1xZQpUxAeHl7tfo/eVz0gIAABAQFqH4OIyNA8ySmr+Ph4xMfH12kcSpNHWVmZ1COwsbHB\nvn37MHnyZIwePRrFxcUqK5bVMi0mJCSgdevWyM7ORmBgIDw9PdGvX78q+z2aPIiIjN2TTNN9/If1\nggULah2H0tNWbm5uCpnKzMwM69evh6enJ86fP6+yYkdHR6Snp0uP09PT4eTkpHZgrf/76tjb22Pk\nyJFITExUuywRkbHSh8FyoIbk8eOPP1Z7/45Fixbh+vXrKiv29/fHpUuXkJaWhuLiYmzfvh0hISHV\n7vv42Mb9+/eRn58PACgsLERcXBy6dOmi8phERMZO75NHkyZNpFV0Hx0sB6BWD8LMzAxRUVEICgpC\np06d8NJLL6Fjx45Ys2aNVG9WVhacnZ3xySefYNGiRXBxcUFBQQGysrLQr18/+Pr6okePHhg+fDie\nffbZ2rSTiMgo6MOiiICKm0GtW7cOd+/eRfPmzREWFqbLuNTCm0ERUUMzdCgwbRowfPiT16HVm0Et\nWLAAFy9exLx583DhwoU6GWAhIqLa0fvTVvPnz4e5uTni4uLQqFEjzJ8/X5dxERFRNfQledR4hXn/\n/v3Rv39/tabmEhGRdpWVAXfuAC1b1nckKta2OnfunMLfRERUf27fBuzsALMaf/brRo3JQy6X4+OP\nP0azZs10FQ8RESmhL6esAA6YExEZDH2ZpgtwwJyIyGDoU8+DA+ZERAbCYJJH5VXd9vb2iI6ORmlp\nKYCKC0xCQ0O1Hx0REUkyM4FOneo7igoqx+xfe+01nDlzBl5eXjAx+d9ZLiYPIiLdysoCBg2q7ygq\nqEweJ06cwNmzZ2u9xDoREdWOPp22UnkP827duvE6DyIiPaBPyaPGhRGBijtQhYSE4KmnnoKFhUVF\nIZkMycnJOgmwJlwYkYgaCiGAJk2AnJyKv2ujLr47VZ62CgsLw5YtW9C5c2eFMQ8iItKdnBygcePa\nJ466ojJ5tGzZUulNnIiISDf06ZQVoEby8PPzw7hx4zBixAg0atQIAKfqEhHpmsElj/v378PCwgJx\ncXEKzzN5EBHpTlaWgSWPjRs36iAMIiKqib71PJ5oBHz//v11HQcREdXAoJKHEALp6elVnv/jjz+0\nFhAREVWlTyvqAmr0PIKDg6s8x+XZiYh0y6B6HjKZDE8//TQSExN1FQ8REVVD35KHyivMPTw8cPny\nZbRp00a6oyCvMCci0i0rK+D6dcDGpvZ16eQK84MHD9bqAEREVDuFhUBJCWBtXd+R/I/K5OHq6oqy\nsjLcunVLup8HERHpTuU1Hvq0uLnK5LFq1SosWLAALVu2hKmpqfT8mTNntBoYERFV0LfxDkCN5PHp\np5/iwoULsLOz00U8RET0GH2bpguoMVXXxcUFVlZWuoiFiIiqYVA9j5UrVwIA3NzcEBAQgOHDhyss\njDhjxgzdREhE1MAZVPIoKCgAUNHzcHZ2RnFxMYqLi3UWGBERVcjMBPr3r+8oFClNHubm5ggODoaf\nn58u4yEiosfoY89D6ZiHm5sbPvvsM/j6+mLixInYvn07cnJydBkbERFB/5ZjB9S4wlwIgaSkJMTG\nxuLnn39GaWkpAgMDMWTIEHTv3l1XcVaLV5gTUUPQsiWQnFx3M67q4rtTZfJ4XG5uLn7++WccPHgQ\na9eurdXBa4vJg4iMXUkJ0LQp8OAB8MildrWik+Sxc+dOyB67rNHKygpdunRBq1atanXw2mLyICJj\nd+MG0L07cPNm3dWpk7Wt1q9fj2PHjmHgwIEAgPj4eHTt2hWpqan48MMP8eqrr9YqACIiUk4fB8sB\nNZJHSUkJzp8/L/Uybt26hfHjx+PEiRPo378/kwcRkRbpa/JQeYV5enq6wumpli1bIj09HXZ2dtJF\ng0REpB36mjxU9jwGDhyIYcOG4cUXX4QQAjt37kRAQAAKCwthUxcLyxMRkVL6OE0XUHOq7s6dO5GQ\nkAAA6NOnD1544YUqg+j1gQPmRGTsXn8d8PYGpk2ruzp1MmAeGxuLUaNGYdSoUdJzX331FV5//fVa\nHZiIiFTLzASCguo7iqpUjnksXLgQhw8flh4vX74ce/bs0WpQRERUwWDHPPbu3SutqBsbG4uUlBTs\n3btXF7ERETV4+po81LrC/Pbt2xg0aBD8/f2xfv16vRjvADjmQUTGrbwcaNwYyM8HLCzqrl6tXmFu\naWmpkCSKi4thbm4OmUwGmUyGvLy8Wh24LjB5EJExy84GPD2BO3fqtl6tDphX3s+DiIjqh75O0wVq\nGDC/evWqysJXrlyp02CIiOh/9PHe5ZWUJo85c+Zg+PDh+Prrr3Hq1ClkZmbi5s2bOHnyJNasWYNh\nw4YhIiKixspjY2Ph6emJ9u3bY9myZVW2p6SkoFevXmjcuLF021t1yxIRGTt9HSwHVAyYX758Gd9/\n/z0SEhJw7do1AECbNm3Qt29fjB07Fm5ubkorLisrg4eHBw4dOgRHR0d069YN27ZtQ8eOHaV9srOz\nce3aNezZswe2trZ499131S4LcMyDiIzb0qXA3bvA8uV1W6/WLxJ0d3fH3Llzn6jixMREuLu7w9XV\nFQAwZswYREdHKyQAe3t72Nvb46efftK4LBGRscvMBP77Nah3lCaPI0eO1Dglt7+Ku7FnZGTA2dlZ\neuzk5IQTJ06oFZQmZSMjI6V/BwQEICAgQK1jEBHpu8xMoFev2tcTHx+P+Pj42lf0CKXJ4+OPP642\neSQnJ+PGjRsoKyurseLaXAuiSdlHkwcRkTGpqzGPx39YL1iwoNZ1Kk0e+/fvV3ickJCAhQsXonXr\n1oiKilJZsaOjI9LT06XH6enpcHJyUiuo2pQlIjIW+jxVV+XyJIcOHcKiRYsAABEREQgMDFSrYn9/\nf1y6dAlpaWlwcHDA9u3bsW3btmr3fXzgRpOyRETGSp+n6tbY81i8eDFsbGywcOFC9OvXT7OKzcwQ\nFRWFoKAglJWVISwsDB07dsSaNWsAAFOmTEFWVha6deuGvLw8mJiY4LPPPsO5c+dgaWlZbVkiooYi\nPx8QApDL6zuS6imdqmtiYgInJyf4+PhULSST6cXiiJyqS0TG6uJFYOhQ4PLluq9bq1N1//Of/yg9\niL4sjEhEZKz0+QJBoIbkwSmvRET1R9+Th8qbQRERke4xeRARkcaysvR3phXA5EFEpJf0veeh8jqP\nx33wwQewtrbG//t//w92dnbaiImIqMHT9+Shcc+jW7duMDU1xTvvvKONeIiICPqfPNS6h7m+4nUe\nRGSs7OyAlBTA3r7u666L706VPY8LFy5g0KBB8PLyAlCxMGLlciVERFT3Hj6suMJcn0cGVCaP8PBw\nLFmyBI0aNQIAdOnShetMERFpUVYW0KoVYKLHU5pUhnb//n306NFDeiyTyWBubq7VoIiIGjJ9n6YL\nqJE87O3tcfmRxVV+/PFHtNbnURwiIgOn74PlgBpTdaOiojB58mRcuHABDg4OaNu2Lb777jtdxEZE\n1CAZRfIwMTHB4cOHUVBQgPLyclhZWSE1NVUXsRERNUiGkDxUnrYKDQ0FAFhaWsLKygoAMGrUKO1G\nRUTUgBlC8lDa8zh//jzOnTuH3Nxc7Nq1C0IIyGQy5OXl4cGDB7qMkYioQTHo5HHx4kXs27cPubm5\n2Ldvn/S2uBsGAAAZeUlEQVS8XC7H2rVrdRIcEVFDZAjJQ+UV5r///jt69+6tq3g0wivMicgYOToC\nx48Dzs7aqb8uvjtVJo+ioiKsW7cO586dQ1FRkXQXwfXr19fqwHWByYOIjE1ZGdCkCVBQAPz32uw6\np5PlScaPH49bt24hNjYWAQEBSE9Ph6WlZa0OSkRE1fvnH8DaWnuJo66oTB6XL1/GwoULYWlpiQkT\nJiAmJgYnTpzQRWxERA2OIYx3AGokj8o1raytrXHmzBncu3cP2dnZWg+MiKghMpTkofIiwfDwcNy9\nexeLFi1CSEgICgoKsHDhQl3ERkTU4BhK8nii+3mkp6fDWVvTADTAAXMiMjaLF1cMlv/739o7htYH\nzE+ePIkdO3bg7NmzACqSxuTJk9GnT59aHZSIiKpnCCvqAjUkj7lz5+KVV17Brl27EBISgnfffRf9\n+/dHp06dcPHiRV3GSETUYBjKaSulYx67du1CUlISGjdujLt378LZ2Rlnz56Fq6urDsMjImpYDCV5\nKO15WFhYoHHjxgCA5s2bo3379kwcRERaZijJQ+mAubW1Nfr37y89/vXXX9GvX7+KQjIZ9u7dq5sI\na8ABcyIyJkIATZtWXCjYrJn2jqPV5Uni4+NrPPCAAQNqdeC6wORBRMbk3j3AxQXIy9Puceriu1Pp\nmEdAQECtKiYiIs0YyikrQI0rzImISDcMZZouwORBRKQ32PMgIiKNGVLyULm21YgRIxQGV2QyGays\nrNCtWzdMmTJFms5LRES1Y0jJQ2XPo23btrC0tMTkyZMRHh4OuVwOuVyOixcvIjw8XBcxEhE1CIaU\nPFT2PH7//Xf8+eef0uOQkBD4+/vjzz//hJeXl1aDIyJqSAwpeajseRQWFuLatWvS42vXrqGwsBDA\n/+71QUREtZeZaTizrVT2PFauXIl+/frBzc0NAHD16lWsXr0ahYWFmDBhgtYDJCJqKLKyDKfnodb9\nPB48eICUlBTIZDJ4eHjozSA5rzAnImNRVATY2AAPHgAymXaPpdUrzB916tQppKamorS0FKdPnwYA\nvPrqq7U6MBER/U/lBYLaThx1RWXyeOWVV3D16lX4+vrC1NRUep7Jg4io7hjSYDmgRvI4efIkzp07\nB5mhpEMiIgNkaMlD5Wyrzp07IzMzUxexEBE1WIaWPFT2PLKzs9GpUyd0794dFhYWAPTnfh5ERMbC\nkKbpAmokj8jISB2EQUTUsGVlAT171ncU6lOZPHhfDyIi7TO001ZKxzz69OkDALC0tJTWs6r8Y2Vl\npVblsbGx8PT0RPv27bFs2bJq93nrrbfQvn17+Pj4ICkpSXre1dUV3t7e8PPzQ/fu3TVpExGRwTG0\n5KG055GQkAAAKCgoeKKKy8rKMH36dBw6dAiOjo7o1q0bQkJC0LFjR2mfmJgYXL58GZcuXcKJEycw\ndepUHD9+HEDFuEp8fDyaN2/+RMcnIjIkhpY8VM62mjFjBs6ePatxxYmJiXB3d4erqyvMzc0xZswY\nREdHK+yzd+9eaYmTHj164N69e7h165a0nVePE1FDUFoK3LkDtGxZ35GoT+WYR8eOHTF58mSUlJRg\n0qRJGDt2LKytrVVWnJGRAWdnZ+mxk5MTTpw4oXKfjIwMtGrVCjKZDIMHD4apqSmmTJmidPn3Rwf0\nAwICOEZDRAbn9m3Azg4wU2vND83Fx8cjPj6+TutUGWp4eDjCw8ORkpKCjRs3okuXLujbty/Cw8Mx\ncOBApeXUvahQWe/it99+g4ODA7KzsxEYGAhPT0/069evyn6cDUZEhk7b03Qf/2G9YMGCWtep1m1o\ny8rKkJKSgvPnz8Pe3h4+Pj74v//7P7z00ktKyzg6OiI9PV16nJ6eDicnpxr3uXHjBhwdHQEADg4O\nAAB7e3uMHDkSiYmJ6reKiMiAGNJqupVUJo9//etf8PDwQExMDCIiInDy5Em8//772LdvH/766y+l\n5fz9/XHp0iWkpaWhuLgY27dvR0hIiMI+ISEh2LRpEwDg+PHjsLGxQatWrXD//n3k5+cDqLifSFxc\nHLp06VKbdhIR6S1DGywHVJy2EkLA1tYWp0+fRrNmzapsf3wMQ6FiMzNERUUhKCgIZWVlCAsLQ8eO\nHbFmzRoAwJQpUzB06FDExMTA3d0dzZo1w4YNGwAAWVlZCA0NBQCUlpbi5ZdfxrPPPvvEjSQi0meG\nmDxqvJ+HEAJdunTB33//rcuY1Mb7eRCRMZg2DejUCZg+XTfHq4vvzhpPW8lkMjz99NMcbyAi0iJD\n7HmonG11/PhxbNmyBW3atJFOXclkMiQnJ2s9OCKihsAok8fBgwd1EQcRUYNlaCvqAmokj7y8PFy4\ncAFAxQWDnTt31npQREQNhRCGOVVXafLIzc3Fc889h+vXr8PHxwdCCJw5cwYuLi6Ijo5We3FEIiJS\nLicHaNKk4o8hUTrb6s0334SFhQWWL18OE5OKcfWysjLMmTMHRUVFWLVqlU4DrQ5nWxGRoTt7Fhg1\nCjh/XnfHrIvvTqU9j0OHDiE5OVlKHABgamqKxYsX84I9IqI6YoiD5UANU3UbNWoEc3PzKs+bm5tL\nt6MlIqLaMdTkobTn8fDhQ5w6dQpCCIVFDoUQePjwoU6CIyIydoY40wqoIXk89dRTePfdd6vd1toQ\n0yQRkR7KzAT+ux6sQVGaPOp67XciIqoqKwvw96/vKDSn1pLsRESkHYY65sHkQURUj5g8iIhIYw0i\nefCWr0REdaewECgpAayt6zsSzWmUPKKjo7UVBxFRg1M5TfeRqyEMhkbJg0uBEBHVHUM9ZQVomDxO\nnTqlrTiIiBocQ1xNt5JGycPfECcjExHpKaPseQQHByM1NVXhOZ62IiKqO0aZPCZNmoSgoCAsXrwY\nJSUlAIBhw4bpLDAiImNnyMlD6f08AKCgoAAfffQRDh48iPHjx0sLJMpkMsyYMUNnQSrD+3kQkSEL\nCgLeeQcIDtbtcbV6Pw+gYvl1S0tLPHjwAPn5+Qr39iAiotox1BV1gRqSR2xsLGbMmIERI0YgKSkJ\nTZs21WVcRERGzyhPW/Xr1w9fffUVvLy8dB2T2njaiogMVUkJ0LQp8OABYGqq22PXxXen0uTx+E2g\n9BGTBxEZqhs3gO7dgZs3dX/suvjuVDqIoe+Jg4jIkBnyKSuAq+oSEdULJg8iItIYkwcREWnMkKfp\nAkweRET1gj0PIiLSmCGvqAsweRAR1Qv2PIiISGOGnjxqXBhR3/EiQSIyROXlQOPGQH4+YGGh++Nr\n9SJBIiLSjjt3ALm8fhJHXWHyICLSMUOfpgsweRAR6Zyhj3cATB5ERDpn6NN0ASYPIiKdY8+DiIg0\nxuRBREQaY/IgIiKNcbYVERFpjD0PIiLSiBBMHkREpKGCgoq/5fL6jaO2tJo8YmNj4enpifbt22PZ\nsmXV7vPWW2+hffv28PHxQVJSkkZljV18fHx9h6BVbJ/hMua2AdptX2WvQybT2iF0QmvJo6ysDNOn\nT0dsbCzOnTuHbdu24fz58wr7xMTE4PLly7h06RK+/vprTJ06Ve2yDQH/gxo2Y26fMbcN0E3yMHRa\nSx6JiYlwd3eHq6srzM3NMWbMGERHRyvss3fvXkyYMAEA0KNHD9y7dw9ZWVlqlSUiMkTGkjzMtFVx\nRkYGnJ2dpcdOTk44ceKEyn0yMjJw8+ZNlWUrjRhRx4HrkYsXgZMn6zsK7WH7DJcxtw3QbvvS0oBn\nntFO3bqkteQhU/OEXm3XlN+/38BPHKpw8eKC+g5Bq9g+w2XMbQO0276//wY+/1xr1euE1pKHo6Mj\n0tPTpcfp6elwcnKqcZ8bN27AyckJJSUlKssCtU88RET0ZLQ25uHv749Lly4hLS0NxcXF2L59O0JC\nQhT2CQkJwaZNmwAAx48fh42NDVq1aqVWWSIiqj9a63mYmZkhKioKQUFBKCsrQ1hYGDp27Ig1a9YA\nAKZMmYKhQ4ciJiYG7u7uaNasGTZs2FBjWSIi0hNCTx04cEB4eHgId3d3sXTp0mr3efPNN4W7u7vw\n9vYWp06d0qhsfatN+9q0aSO6dOkifH19Rbdu3XQVstpUte38+fOiZ8+ewsLCQqxYsUKjsvqgNu3T\n9/dOCNXt27Jli/D29hZdunQRvXv3FqdPn1a7rD6oTfuM4f3bs2eP8Pb2Fr6+vqJr167i8OHDapd9\nlF4mj9LSUtGuXTuRmpoqiouLhY+Pjzh37pzCPj/99JMIDg4WQghx/Phx0aNHD7XL1rfatE8IIVxd\nXcWdO3d0GrO61Gnb7du3xR9//CEiIiIUvlyN5b1T1j4h9Pu9E0K99v3+++/i3r17QoiKLxtj+7+n\nrH1CGMf7V1BQIP07OTlZtGvXTu2yj9LL5UmM/RqRJ23frVu3pO1CTycLqNM2e3t7+Pv7w9zcXOOy\n9a027aukr+8doF77evXqBWtrawAVn80bN26oXba+1aZ9lQz9/WvWrJn074KCArRo0ULtso/Sy+Sh\n7PoPdfap7hqRx8vWt9q0D6iYBj148GD4+/tj7dq1uglaTeq0TRtldaW2Merzewdo3r5169Zh6NCh\nT1S2PtSmfYDxvH979uxBx44dERwcjM//O2dY09dGawPmtaGra0TqS23b99tvv8HBwQHZ2dkIDAyE\np6cn+vXrV5chPjF121bXZXWltjEmJCSgdevWevneAZq175dffsH69euRkJCgcdn6Upv2Acbz/j3/\n/PN4/vnn8euvv2L8+PFISUnR+Fh62fOozTUi6pStb0/aPkdHRwCAg4MDgIrTIyNHjkRiYqIOolZP\nbV5/Y3nvatL6v+tS6ON7B6jfvuTkZISHh2Pv3r2wtbXVqGx9qk37AON5/yr169cPpaWluHv3Lpyc\nnDR7/+p8xKYOlJSUCDc3N5GamioePnyockD52LFj0qCWOmXrW23aV1hYKPLy8oQQFQNfvXv3FgcP\nHtRtA2qgyes/f/58hQFlY3nvKj3ePn1/74RQr33Xrl0T7dq1E8eOHdO4bH2rTfuM5f27fPmyKC8v\nF0IIcfLkSeHm5qZ22UfpZfIQQoiYmBjRoUMH0a5dO7FkyRIhhBBfffWV+Oqrr6R93njjDdGuXTvh\n7e0tTp48WWNZffOk7bty5Yrw8fERPj4+wsvLSy/bp6ptmZmZwsnJSVhZWQkbGxvh7Ows8vPzlZbV\nN0/aPkN474RQ3b6wsDDRvHlz4evrW2XKqjG8f8raZyzv37Jly4SXl5fw9fUVffv2FYmJiTWWVUYm\nhIEOHBARUb3RyzEPIiLSb0weRESkMSYPIiLSGJMHERFpjMmjAUtPT4ebmxtycnIAADk5OXBzc8P1\n69fVriM+Ph4mJiZYt26d9Nxff/0FExMTrFy5ssay8+fPx+HDh5Vuj46O1vt7158+fRoHDhyoVR1L\nlixRuU9ZWRn8/f3x66+/Ss89++yz2Llzp/R48ODByM/PR1paGrp06aJxHEuXLsXWrVvx2muvKdSr\nyt69e7Fw4UKNj0eGjcmjAXN2dsbUqVMxe/ZsAMDs2bMxZcoUuLi4qF2HTCZD586d8cMPP0jPbdu2\nDT4+Piqvdl2wYAEGDRqkdPvu3btx7tw5tWMBgNLSUo32r62kpCTExMTUqo5///vfKvcxNTXF6tWr\nMX36dJSWlmLbtm0wMzPDCy+8AAD4z3/+Aw8PD8jl8ieOIy4uDs8++6zG5UaMGIGdO3eipKTkiY9d\nncofNaSfmDwauH/96184fvw4Pv30U/z++++YOXOmxnW0adMGDx8+xO3btyGEwMGDBxEcHCwtr/LX\nX3+hZ8+e8PHxQWhoKO7duwcAmDhxovQLd/bs2fDy8oKPjw/ee+89HDt2DPv27cN7772Hrl274urV\nqwgICMDJ/95Y+p9//kHbtm0BABs3bkRISAgGDRqEwMBA3L9/H5MmTUKPHj3QtWtX7N27t9q4ly1b\nBm9vb/j6+mLOnDk1xhoQEIDZs2ejR48e8PDwwG+//YaSkhJ8+OGH2L59O/z8/LBjxw4UFhZWe+yN\nGzciNDQUwcHB6NChA95//32p3UVFRfDz88P48eNrfJ27d++OXr16Yf78+YiIiEBUVJS0bevWrXju\nueeqlLl69Sq6du2KkydP4v79+3jxxRfh5eWF0NBQ9OzZU3o98/LyUFxcLC2SV5n4582bh9deew3l\n5eWIiYlBx44d4e/vj7feegsjRoyQ9u3Vqxfi4uJqjF9TI0eOxHPPPYd9+/bp/EcBqUE7l6mQIYmN\njRUymUwcOnRI47Lx8fFi+PDhYtWqVSIqKkokJCSI1157TURGRkpXV3fp0kUcPXpUCCHEhx9+KN55\n5x0hhBATJ04UO3fuFP/884/w8PCQ6szNzVXYXikgIEC6WDI7O1u4uroKIYTYsGGDcHJyEjk5OUII\nIebMmSO2bNkihBAiJydHdOjQQRQWFirEHRMTI3r37i2Kioqk/WqKNSAgQMycOVMqO3jwYCGEEBs3\nbhRvvvmmVK+yY2/YsEG4ubmJvLw88eDBA9GmTRtx48YNIYQQlpaWar/ed+/eFU2bNhVz585VeN7T\n01NaKjw1NVV07txZpKSkCD8/P5GcnCyEEOLjjz8Wr7/+uhBCiL///luYmZlJr+fOnTvF/Pnzpdf9\nxx9/FDNnzhRTp04VQghRVFQknJ2dRVpamhBCiLFjx4oRI0ZIx1+/fr2YNWuW2u1QV3x8vHj11VdF\n+/btxQcffCAuX75c58egJ8OeB+HAgQNwcHDAmTNnNC4r/tu7GD16NH744Qds27YNY8eOlbbn5eUh\nNzdXWjxuwoQJOHr0qEIdNjY2aNy4McLCwrB79240adKkSv2qBAYGwsbGBkDF6ZelS5fCz88PAwcO\nxMOHDxXW7AGAw4cPY9KkSWjcuLEUQ25ubo2xhoaGAgC6du2KtLQ0Kb5HY6zu2NevX4dMJsOgQYMg\nl8thYWGBTp064dq1a2q17VFHjhyBjY1Nlffq5s2baN68ufT49u3beP7557F161Zp/CMhIQFjxowB\nAHh5ecHb21vav7K3WNmmhQsXIi8vD6tXrwYApKSkwM3NDW3atAEAjB07VqHdDg4O0mtSlwYMGIBv\nv/1W6iF5enpi9+7ddX4c0hyTRwP3119/4dChQzh27Bg++eQTZGVl4caNG/Dz84Ofnx/WrFmD1atX\nw8/PD127dkVWVla19bRq1QqNGjXCoUOHpHGM6sY8Hk8GQgiYmpoiMTERo0aNwv79+zFkyBBp+6N1\nmJmZoby8HADw4MEDhXoevUcBAOzatQtJSUlISkpCWloaPDw8VMaiaruFhQWAivGHmk6jPH5sT09P\nhfLq1FGdwsJCvP/++/jll19w+/btGgfqbWxs0KZNG4UB9uraVCkxMRHdu3cHUPGad+vWDSdPnpTG\nHR5/Lx+vp7y8vNr3e8iQIfDz88PkyZORmJgofa727duHuXPnSp+r8vJy+Pr6ws/PD5GRkVL5oqIi\nbN26FaGhofj555/x+eefY/DgwcpfJNIZvVySnXRDCIGpU6fis88+g7OzM9577z3MnDkTW7ZsQVJS\nksK+06ZNU1nfRx99hOzsbJiYmEi/yK2srGBra4vffvsNffv2xebNmxEQEKBQrrCwEIWFhQgODkbv\n3r3Rrl07AIBcLkdeXp60n6urK/7880/4+/vjxx9/VBpHUFAQPv/8c6xatQpAxaC2n5+fwj6BgYH4\n6KOP8PLLL6NJkybIycmBra2tylgfZ2Vlhfz8fJXHrilRmZubo7S0FGZmFf8dBw0ahC1btkgruFb6\n6KOP8NJLL6FDhw5YvXo1xowZg2eeeQYWFhZwcHDAnTt3YGdnBwBo1KgRdu3ahaCgIFhaWmLs2LHo\n06cPfvjhBwQEBODcuXNS7+Xs2bPw9PRU+PIfMmQIgoKCMGzYMMTFxaFDhw64evUqrl27hjZt2mD7\n9u0KsWVmZkq9kkfFxsYqPH70czVixAgsWrRIevzXX38p7Dtr1iz8+OOPGD58OFasWAEfHx+lryHp\nHnseDdjatWvh6uoq9RSmTZuG8+fPV/m1WhOZTCZ96fTq1QshISFVnv/222/x3nvvwcfHB8nJyfjw\nww8Vyufn52PEiBHw8fFBv3798MknnwAAxowZg48//hhPP/00UlNTMXPmTHz55Zfo2rUr7ty5I9X/\n6LGAikHekpISeHt7o3Pnzpg/f36VuIOCghASEgJ/f3/4+flJ04privXxdgPAwIEDce7cOWnAXNmx\nH4/xUZMnT4a3tzfGjx8PIQSuXLmicAoKqPiCj46ORkREBADA19cXQUFBWL58OQCgb9+++PPPPxXi\na9q0Kfbv349PPvkE+/fvx7Rp05CdnQ0vLy/MmzcPXl5esLKywoEDB6RTVo+WHzVqFMLDwxESEgKZ\nTIbVq1djyJAh8Pf3h5WVlXS3PaCi59K/f/9q2/ekBg4ciJSUFHz++edMHHqICyMS6ZGzZ89iw4YN\nWLFihUbl4uPjsX37dnz55ZdK9ykvL0dJSQksLCxw5coVPPvss0hJScGwYcOwefNmtGrVqsZjFBYW\nSqcH33jjDXTo0AFvv/02ysvL0bVrV/z5559S74mMH5MHkZEYPHgwdu/erfRaj/z8fDzzzDMoKSmB\nEALLly9HUFCQ2vV/+umn+Pbbb1FcXIyuXbti7dq1aNy4Mfbu3Yvk5GTMnTu3rppCBoDJg4iINMYx\nDyIi0hiTBxERaYzJg4iINMbkQUREGmPyICIijTF5EBGRxv4/HZ7dGt96UjsAAAAASUVORK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x34fa790>" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.5.b " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# amount of air required\n", + "\n", + "# Variable Declaration \n", + "#part(ii)\n", + "w1=4.934; #weight after two hours\n", + "w0=5.314; #initial weight \n", + "w2=w0-w1; # water evaporated in 2 hrs\n", + "H1=.01; #humidty of incoming air\n", + "H2=.03; #humidity of leaving air\n", + "yout=.03;\n", + "yin=.01;\n", + "\n", + "# Calculation \n", + "Gs=w2/(yout- yin); #water carried away\n", + "\n", + " # Result\n", + "print \"\\n the amount of air required in 2hours is :%f kg\"%Gs\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the amount of air required in 2hours is :19.000000 kg\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.5.c " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# actual time of the falling peroid\n", + "\n", + "# Variable Declaration \n", + "#part(iii)\n", + "#let us choose the consistency of 11 and 13 readings\n", + "Xbar=0; #equillibrium moisture content\n", + "Ls=4.12; #mass of bone dry solid ais the drying surface\n", + "A=1.; #both upper surafce and lower surface are exposed\n", + "Nc=0.19; #in kg/m**2*hr\n", + "X1=.098; #moisture content on dry basis intially\n", + "Xcr=.11; #kg moisture per kg dry solid\n", + "X2=0.074; #moisture content on dry basis finally\n", + "# Calculation \n", + "import math\n", + "tfall=(Ls/(A*Nc))*((Xcr-Xbar)*math.log((X1-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n from this data we get time as :%f hour\"%tfall\n", + "print \"\\n the actual time is 0.8 hours\"\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " from this data we get time as :0.670026 hour\n", + "\n", + " the actual time is 0.8 hours\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.6" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time saved in drying\n", + "\n", + "#wooden cloth is dried from 100 to 10 and then th efinal moisture content is changed to 16 percent from 10;\n", + "# Variable Declaration \n", + "Xcr=0.55; #crtical moisture content\n", + "X1=1; #moisture content on dry basis intially\n", + "X2=.1; #moisture content on dry basis finally after drying\n", + "Xbar=.06; #equillibrium moisture \n", + "#since eqn 1 is tobe divided by eqn 2 so let the value of Ls/A*Nc be = 1 as it will be cancelled \n", + "p=1; #let Ls/A*Nc be =p\n", + "#p=poly([0],'p'); #calc. of time 1\n", + "tbar=1; #since the eqns are independent of tbar\n", + "\n", + "# Calculation \n", + "import math\n", + "t1=0.5960514 #roots(tbar- p*((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)))); #------eqn1\n", + "X2bar=.16; \n", + "#p=poly([0],'p'); #calc. of time 2\n", + "t2=0.8138516 #roots(tbar- p*((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2bar-Xbar))));#------eqn2\n", + "\n", + "#let t1/t2 be = k\n", + "k=t1/t2;\n", + "ans=1./k-1; #reduction in time for drying \n", + "\n", + "# Result\n", + "print \"\\n the reduction in time for drying is :%f percent\"%(ans*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the reduction in time for drying is :36.540506 percent\n" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.7 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the sheets from 30 to 6 percent\n", + "\n", + "#assume rate of drying in the falling rate period is directly prporional to the free moisture content\n", + "\n", + "#Ls/ A*Nc is unknown;\n", + "# Variable Declaration \n", + "Xcr=0.14; #crtical moisture content\n", + "X1=.3/(1-.3); #moisture content on dry basis intially\n", + "X2=0.1/(1-0.1); #moisture content on dry basis finally after drying\n", + "Xbar=.04; #equillibrium moisture \n", + "tbar=5; #time needed to dry from 30 to 6 percent on bone dry basis\n", + "\n", + "#let Ls / A*Nc be = p\n", + "#p=poly([0],'p'); #calc. of Ls / A*Nc be = p value\n", + "# Calculation and Result\n", + "x= 15.495992 #roots(tbar-p * ((X1-Xcr)+(Xcr-Xbar)*log((Xcr-Xbar)/(X2-Xbar))));\n", + "print \"\\n the value of Ls/ A*Nc is :%f\"%x\n", + "import math\n", + "#new X1 AND X2 are now given as follows\n", + "X1=0.3/(1-.3); #new moisture content on dry basis intially\n", + "X2=0.064; #new moisture content on dry basis finally after drying\n", + "tbar=x * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "print \"\\n the time for drying the sheets from 30 to 6 percent moisture under same drying conditions is :%f hr\"%tbar\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the value of Ls/ A*Nc is :15.495992\n", + "\n", + " the time for drying the sheets from 30 to 6 percent moisture under same drying conditions is :6.683159 hr\n" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.8.a" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the material\n", + "# Variable Declaration \n", + "Ls=1000.; #mass of bone dry solid ais the drying surface\n", + "A=55.; #both upper surafce and lower surface are exposed\n", + "v=.75; #velocity of air\n", + "Nc=.3*10**-3; #in kg/m**2*s\n", + "x2=.2; #moisture content on wet basis finally after drying\n", + "Xcr=0.125; #crtical moisture content\n", + "X1=0.15; #moisture content on dry basis intially\n", + "X2=0.025; #moisture content on dry basis finally after drying\n", + "Xbar=0.0; #equillibrium moisture \n", + "import math\n", + "\n", + " # Calculation \n", + "tbar=(Ls/(A*Nc))*((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"the time for drying the sheets from .15 to .025 kg water /kg of dyr solid moisture under same drying conditions is :%f hour\"%(tbar/3600);\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "the time for drying the sheets from .15 to .025 kg water /kg of dyr solid moisture under same drying conditions is :3.807740 hour\n" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.8.b " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time saved if air velocity is increased\n", + "\n", + "#tbar=(Ls/(A*Nc))*((Xcr-Xbar)*log((Xcr-Xbar)/(X2-Xbar)));\n", + "#part(i)\n", + "# assuming only surface evaporation and assuming air moves parellel to surface\n", + "\n", + "#Nc=G**0.71; G=V*d\n", + "#so NC = k* V**.71\n", + "# Variable Declaration \n", + "Ls=1000.; #mass of bone dry solid ais the drying surface\n", + "A=55.; #both upper surafce and lower surface are exposed\n", + "v=.75; #velocity of air\n", + "Nc=.3*10**-3; #in kg/m**2*s\n", + "x2=.2; #moisture content on wet basis finally after drying\n", + "Xcr=0.125; #crtical moisture content\n", + "X1=0.15; #moisture content on dry basis intially\n", + "X2=0.025; #moisture content on dry basis finally after drying\n", + "Xbar=0.0; #equillibrium moisture \n", + "tbar=3.8077; #time to dry material ,calculated from previous part\n", + "V1=.75; #old velocity\n", + "V2=4.; #new velocity\n", + "import math\n", + "\n", + "# Calculation \n", + "Nc2=Nc*(V2/V1)**.71; #in kg/m**2*s\n", + "t2=(Ls/(A*Nc2))*((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar))); #if air velocity is increased to 4\n", + "t=tbar-t2/3600; #time saved\n", + "\n", + "# Result\n", + "print \"\\n the time saved , if air velocity is increased to 4 m/s: %f\"%t\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time saved , if air velocity is increased to 4 m/s: 2.647593\n" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.9 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the fibreboard\n", + "\n", + "#determine the drying condition of sample 0.3*0.3 size.sheet lost weight at rate of 10**-4 kg/s until the moisture fell to 60 percent\n", + "# Variable Declaration \n", + "x1=.75; #moisture content on wet basis\n", + "xbar=0.1; #equilllibrium moisture on dry basis\n", + "xcr=0.6; #critical moisture content\n", + "Ls=0.90; #mass of bone dry solid ais the drying surface\n", + "A=0.3*0.3*2; #both upper surafce and lower surface are exposed\n", + "#A*Nc=10**-4;\n", + "x2=.2; #moisture content on wet basis finally after drying\n", + "\n", + "# Calculation \n", + "Xcr=0.6/0.4; #crtical moisture content\n", + "X1=3; #moisture content on dry basis intially\n", + "X2=0.25; #moisture content on dry basis finally after drying\n", + "Xbar=0.1/0.9; #equillibrium moisture \n", + "import math\n", + "tbar=Ls/(10**-4) * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result \n", + "print \"\\n the time for drying the sheets from 75 to 25 percent moisture under same drying conditions is :%f hr\"%(tbar/3600);\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 75 to 25 percent moisture under same drying conditions is :11.745087 hr\n" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.10 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the moist material\n", + "\n", + "#determine the drying condition of sample 0.3*0.3 size.sheet lost weight at rate of 10**-4 kg/s until the moisture fell to 60 percent\n", + "\n", + "#Ls/ A*Nc is unknown;\n", + "# Variable Declaration \n", + "Xcr=0.16; #crtical moisture content\n", + "X1=.33; #moisture content on dry basis intially\n", + "X2=0.09; #moisture content on dry basis finally after drying\n", + "Xbar=.05; #equillibrium moisture \n", + "tbar=7; #time needed to dry from 33 to 9 percent on bone dry basis\n", + "import math\n", + "#let Ls / A*Nc be = p\n", + "#p=poly([0],'p'); #calc. of Ls / A*Nc be = p value\n", + "# Calculation \n", + "x= 24.886579 #roots(tbar-p * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar))));\n", + "\n", + "#new X1 AND X2 are now given as follows\n", + "X1=0.37; #new moisture content on dry basis intially\n", + "X2=0.07; #new moisture content on dry basis finally after drying\n", + "tbar=x * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n the time for drying the sheets from 33 to 9 percent moisture under same drying conditions is :%f hr\"%tbar\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 33 to 9 percent moisture under same drying conditions is :9.892970 hr\n" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.11 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the slab from 65 to 30 percent\n", + "\n", + "# Variable Declaration \n", + "d=.22; #density of dry pulp in g/cc;\n", + "x1=.65; #moisture content on wet basis\n", + "x2=.3; #moisture content on wet basis\n", + "Ls=2.5; #mass of bone dry solid ais the drying surface in kg\n", + "A=1.5*1.5*2; #both upper surafce and lower surface are exposed\n", + "v=1.5*1.5*.5; #volume of material\n", + "Nc=1.4; #in kg/m**2*hr\n", + "Xcr=1.67; #crtical moisture content\n", + "# Calculation \n", + "X1=x1/(1-x1); #moisture content on dry basis intially\n", + "X2=x2/(1-x2); #moisture content on dry basis finally after drying\n", + "Xbar=0.0; #equillibrium moisture \n", + "import math\n", + "#initial moisture is more than Xcr, so there is constant rate drying period and only falling rate peroid is observed\n", + "tbar=(Ls/(A*Nc))*((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n the time for drying the sheets from 65 to 30 percent moisture under same drying conditions is :%f hour\"%tbar\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 65 to 30 percent moisture under same drying conditions is :0.975613 hour\n" + ] + } + ], + "prompt_number": 36 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the slab\n", + "# Variable Declaration \n", + "d=.22; #density of dry pulp in g/cc;\n", + "\n", + "Ls=1.125*10**-2*.22*10**3; #mass of bone dry solid ais the drying surface\n", + "A=1.5*1.5*2; #both upper surafce and lower surface are exposed\n", + "v=1.5*1.5*.5; #volume of material\n", + "Nc=1.4; #in kg/m**2*hr\n", + "x2=.2; #moisture content on wet basis finally after drying\n", + "Xcr=0.46; #crtical moisture content\n", + "X1=0.15; #moisture content on dry basis intially\n", + "X2=0.085; #moisture content on dry basis finally after drying\n", + "Xbar=0.025; #equillibrium moisture \n", + "import math\n", + "#tbar=(Ls/(A*Nc))*((Xcr-Xbar)*log((Xcr-Xbar)/(X2-Xbar)));\n", + "# but initial moisture is more than Xcr, so there is constant rate drying period and only falling rate peroid is observed\n", + "\n", + "# Calculation \n", + "tbar=(Ls/(A*Nc))*((Xcr-Xbar)*math.log((X1-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n the time for drying the sheets from 15 to 8.5 percent moisture under same drying conditions is :%f min\"%(tbar*60)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 15 to 8.5 percent moisture under same drying conditions is :7.525805 min\n" + ] + } + ], + "prompt_number": 37 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.13" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the filter cake\n", + "#Ls/ A*Nc is unknown;\n", + "\n", + "# Variable Declaration \n", + "import math\n", + "Xcr=0.14; #crtical moisture content\n", + "x1=0.3; #moisture content on wet basis\n", + "x2=0.1; #moisture content on wet basis\n", + "X1=x1/(1-x1); #moisture content on dry basis intially\n", + "X2=x2/(1-x2); #moisture content on dry basis finally after drying\n", + "Xbar=0.04; #equillibrium moisture \n", + "tbar=5; #time needed to dry from 30 to 10 percent on bone dry basis\n", + "\n", + " #let Ls / A*Nc be = p\n", + "#p=poly([0],'p'); #calc. of Ls / A*Nc be = p value\n", + "x= 15.495992 #roots(tbar-p * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar))));\n", + "\n", + "#new X1 AND X2 are now given as follows\n", + "# Calculation \n", + "x1=.3; #new moisture content on wet basis\n", + "x2=0.06; #new moisture content on wet basis\n", + "X1=x1/(1-x1); #new moisture content on dry basis intially\n", + "X2=x2/(1-x2); #new moisture content on dry basis finally after drying\n", + "tbar=x * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n the time for drying the sheets from 30 to 10 percent moisture under same drying conditions is :%f hr\"%tbar\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 30 to 10 percent moisture under same drying conditions is :6.694188 hr\n" + ] + } + ], + "prompt_number": 38 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.14" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the sheets\n", + "# Variable Declaration \n", + "d=450.; #density of dry pulp in kg/m**3;\n", + "thickness=0.05; #thickness in m**2\n", + "Ls=d*thickness; #mass of bone dry solid ais the drying surface\n", + "A=1.; #area in m**2\n", + "v=1*5*10**-2; #volume of material\n", + "Nc=4.8; #in kg/m**2*hr\n", + "xcr=.2;\n", + "xbar=0.02;\n", + "x1=.45; #new moisture content on wet basis\n", + "x2=0.05; #new moisture content on wet basis\n", + "\n", + "# Calculation \n", + "X1=x1/(1-x1); #new moisture content on dry basis intially\n", + "X2=x2/(1-x2); #new moisture content on dry basis finally after drying\n", + "Xbar=xbar/(1-xbar); #crtical moisture content\n", + "Xcr=xcr/(1-xcr); #equillibrium moisture \n", + "import math\n", + "#tbar=(Ls/(A*Nc))*((Xcr-Xbar)*log((Xcr-Xbar)/(X2-Xbar)));\n", + "# but initial moisture is more than Xcr, so there is constant rate drying period and only falling rate peroid is observed\n", + "tbar=Ls/(A*Nc) * ((X1-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(X2-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n the time for drying the sheets from 45 to 5 percent moisture under same drying conditions is :%f min\"%tbar\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 45 to 5 percent moisture under same drying conditions is :4.776612 min\n" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.15" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# heater load per unit mass of dry air\n", + "\n", + "# Variable Declaration \n", + "t1=20.; #ambient air temperature \n", + "t2=70.; #exhaust air temperature \n", + "r1=150.; #evaporation of water \n", + "r2=.25; #outlet solid moisture content\n", + "t3=15.; #inlet solid temperature\n", + "t4=65.; #outlet solid temperature\n", + "p=5.; #power demand in KW\n", + "h=18.; #heat loss in kj\n", + "\n", + "h1=1.; #mean specific heat of dry air in kj/kg*K\n", + "h2=1.25; #mean specific heat of dry material in kj/kg*K\n", + "h3=4.18; #mean specific heat of moisture in kj/kg*K\n", + "e=2626.; #enthalpy of saturated water vapour in kj/kg\n", + "\n", + "# Calculation \n", + " #basis is 1hr\n", + "a1=r1*h3*(t4-t3); #heat required for heating 150 kg of water from 15 to 65\n", + "a2=r1*e; #heat required for 150 kg water evaporation\n", + "a3=2000*h1*(t2-t1); #heat required for heating air from 20 to 70 \n", + "a4=r2*h3*(t4-t3); #heat required for heating moisture from 15 to 65\n", + "a5=120*h2*(t4-t3); #heat required for heating dry solid from 15 to 65\n", + "hlost=h*3600; #heat lost in kj\n", + "total=(a2+a3+a4+a5+hlost)/3600.; #total heat lost \n", + "\n", + "# Result\n", + "print \"\\n :%f kW of heat required for 2000kg/hr of dry air\"%total\n", + "ans1=a2+a1; #heat needed for evaporation \n", + "print \"\\n heat needed fro evaporation is :%f\"%(ans1/3600)\n", + "ans2=(ans1/3600.)/total; #fraction of this heat needed for evaporation\n", + "print \"\\n fraction of this heat needed for evaporation:%f\"%(ans2)\n", + " \n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " :157.292292 kW of heat required for 2000kg/hr of dry air\n", + "\n", + " heat needed fro evaporation is :118.125000\n", + "\n", + " fraction of this heat needed for evaporation:0.750990\n" + ] + } + ], + "prompt_number": 40 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.16" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# surface area of the roller\n", + "# Variable Declaration \n", + "m1=.12; #initial moisture content\n", + "dT=85.; #product of 85 degree is used in design purpose\n", + "U=1700.; #overall heat transfer coefficient\n", + "m2=.4; #final moisture content\n", + "r=20.; #production rate\n", + " #4 kg of moisture is present in 100 kg product\n", + "# Calculation \n", + "t=4*20./100; # moisture content in 20 kg moisture\n", + "w=20-t; #dry solid weight\n", + "i=w*m1/(1-m1); #initial moisture content \n", + "j=i-t #water evaporated\n", + "ds=2296.1; #latent heat for vaporisation at 85 degree in kj/kg\n", + "h=j*ds; #heat required (assuming th esolid mix. enters at 85)\n", + "#U*A*dT = j*ds\n", + "A=h/(U*dT); #surface area of the roller required to produce aproduction rate of 20 kg product per hour\n", + "\n", + "# Result \n", + "print \"\\n surface area of the roller required to produce aproduction rate of 20 kg product per hour:%f m**2\"%(A/3.600);\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " surface area of the roller required to produce aproduction rate of 20 kg product per hour:0.008025 m**2\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 6.17" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# time for drying the sheets\n", + "\n", + "#moisture content reduces from 25 to 2\n", + "\n", + "# Variable Declaration \n", + "r=7.5*10**-5; #constant drying rate in kg/s\n", + "A1=.3*.3**2; # area of the sppecimen\n", + "Nc=r/A1; #drying rate\n", + "# Calculation \n", + "Xcr=.15/0.85; #.15 is the critical moisture content\n", + "Xo=.25/.75; #.25 is the initial moisture content\n", + "Xfinal=.02/0.98; #.02 is the final moisture content\n", + "Xbar=0; #equillibrium moisture content\n", + "A=1.2*.6*2; #area of the new solid\n", + "Ls=28.8; #bone dry weight of new solid\n", + "v1=.3*.3*.006; #volume of the old solid;\n", + "v2=.6*1.2*.012; #volume of the new solid\n", + "w2=1.8; #weight of the old solid\n", + "w3=864*10**-5*1.8*10**-5/54; #weight of the bone dry solid\n", + "\n", + " #Nc is prporional to =(t-ts) = (G)**0.71---- whrere G is the mass flow rate\n", + "v1=3.; #old velocity\n", + "Tg=52.; #old dry bulb temperature\n", + "Tw=21.; #wet bulb temperature\n", + "H=.002; #humidity \n", + "SH=0.015; #saturated humidity \n", + "vnew=5. #new velocity\n", + "Tgnew=66.; #new DBT\n", + "Twnew=24.; #new WBT\n", + "Hnew=.004; #new humidity\n", + "SH=.020; #new satuurated humidity\n", + "import math \n", + "#hence drying rate of air under new condition\n", + "Nc=4.167*10**-4*((vnew/v1)*(273+Tg)/(273+Tgnew))**0.71 * ((.019-H)/(.015-H));#drying rate of air under new condition in kg/m**2*s \n", + "DT=Ls/(A*Nc) * ((Xo-Xcr)+(Xcr-Xbar)*math.log((Xcr-Xbar)/(Xfinal-Xbar)));\n", + "\n", + "# Result\n", + "print \"\\n the time for drying the sheets from 25 to 2 percent moisture under same drying conditions is :%f hours\"%(DT/3600)\n", + "\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the time for drying the sheets from 25 to 2 percent moisture under same drying conditions is :3.929236 hours\n" + ] + } + ], + "prompt_number": 42 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Elements_Of_Mass_Transfer_Part_1/ch7.ipynb b/Elements_Of_Mass_Transfer_Part_1/ch7.ipynb new file mode 100644 index 00000000..0c7c641e --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/ch7.ipynb @@ -0,0 +1,738 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7 : Crystallisation" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.1 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# total weight of the solution\n", + "\n", + "#let x be the weight of water in the quantity of solution needed\n", + "# Variable Declaration \n", + "c=.498; #solute content afetr crystallisation\n", + "W1=111.; #molecular weight of CaCl2\n", + "W2=219.; #molecular weight of CaCl2.6H2O\n", + "\n", + "# Calculation \n", + "M1=(108./W2)*100; #water present in 100kg of CaCl2.6H2O\n", + "M2=(W1/W2)*100; #CaCl2 present in 100kg of CaCl2.6H20\n", + "#t=M2+c*x; #total weight entering the solubility\n", + "#x+49.3; total water solubility used\n", + "#s*(x+49.3)/100 #total Cacl2 after solubility\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t= 32.112871 #roots((M2+c*x)-(x+49.3)*.819); \n", + "\n", + "# Result\n", + "print \"\\nthe weight of water in the quantity of solution needed :%f kg\"%t\n", + "\n", + "h=(c)*t; #weight of CaCl2 corresponding to weight water\n", + "tw=t+h; # total weight of the solution\n", + "print \"\\nthe total weight of the solution is :%f kg\"%tw\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the weight of water in the quantity of solution needed :32.112871 kg\n", + "\n", + "the total weight of the solution is :48.105081 kg\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.2 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# percentage saturation and yield\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "w1=1000.; #weight of solution to be cooled\n", + "s1=104.1; #solubility at 50 degree per 100 kg of water\n", + "s2=78.0; #solubility at 10 degree per 100 kg of water\n", + "a2=45.; #percentage of sodium nitrate in the solution per 100kg of solution \n", + "\n", + "# Calculation \n", + "x1=s1/(100+s1)*100; #percentage of saturated solution at 50 degree\n", + "tw=(a2/(100-a2))/(x1/(100-x1)); #the percentage saturation\n", + "print \"\\nthe percentage saturation is :%f percent\"%(tw*100)\n", + "\n", + "#part(ii)\n", + "#let x be the weight of NaNO3 crystal formed after crystallisation\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t=21.000000 #roots((w1*a2/100)-(x+(w1-x)*s2/(100+s2)));\n", + "\n", + "# Result\n", + "print \"\\n the weight of NaNO3 crystal formed after crystallisation :%f kg\"%t\n", + "\n", + "#part(iii)\n", + "y=t/(a2*w1/100); #yield = weight of NaNO3 crystal formed/weight of NaNO3\n", + "print \"\\n the percentage yield is:%f percent\"%(y*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the percentage saturation is :78.595756 percent\n", + "\n", + " the weight of NaNO3 crystal formed after crystallisation :21.000000 kg\n", + "\n", + " the percentage yield is:4.666667 percent\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.3" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# temperature to which solution should be cooled\n", + "\n", + "# Variable Declaration \n", + "\n", + "s1=19.75; #solubility at 70 degree per 100 gm of water\n", + "s2=16.5; #solubility at 50 degree per 100 gm of water\n", + "s3=12.97; #solubility at 30 degree per 100 gm of water\n", + "s4=9.22; #solubility at 10 degree per 100 gm of water\n", + "s5=7.34; #solubility at 0 degree per 100 gm of water\n", + "\n", + "# Calculation \n", + " #basis is 1000kg of saturated solution\n", + "w1=1000.*(s1/(s1+100)); #weight of K2SO4 in the original solution\n", + "w2=1000.-w1; #weight of water in kg\n", + "w3=w1*.5; #weight of K2SO4 in the solution\n", + "wp=w3/(w3+w2); #weight percent of K2SO4 in the solution after crystallistion\n", + "\n", + "# Result\n", + "print \"\\n for the corresponding temperature to :%f percent of K2SO4 is 15 degree (by linear interpolation between 10 to 30 degree) \"%(wp*100)\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " for the corresponding temperature to :8.987486 percent of K2SO4 is 15 degree (by linear interpolation between 10 to 30 degree) \n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.4 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# percentage saturation and yield\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "a1=146.; #solubility at 70 degree\n", + "a2=121.; #solubility at 10 degree\n", + "t1=58.; # percentage of solute content\n", + "t2=40.66;\n", + "\n", + "# Calculation and Result\n", + "x1=a1/(100+a1) *100; #percentage of saturated solution at 50 degree\n", + "tw=(t1/42.)/(x1/t2); #the percentage saturation\n", + "print \"\\nthe percentage saturation is :%f percent\"%(tw*100)\n", + "\n", + "#part(ii)\n", + "p1=2000*.58; #weight of solute in 200kg of solution 2000*.58\n", + "#let x be the weight of crystal formed after crystallisation\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t=231.743929 #roots((1160)-(x+(1055.02-.547*x))); \n", + "print \"\\n the weight of NaNO3 crystal formed after crystallisation :%f kg\"%t\n", + "\n", + "#part(iii)\n", + "y=t/p1; #yield = weight of NaNO3 crystal formed/weight of NaNO3\n", + "print \"\\n the percentage yield is:%f percent\"%(y*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the percentage saturation is :94.608102 percent\n", + "\n", + " the weight of NaNO3 crystal formed after crystallisation :231.743929 kg\n", + "\n", + " the percentage yield is:19.977925 percent\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.5" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# the weight of Na2SO4 hydrate crystal\n", + "\n", + "# Variable Declaration \n", + "\n", + "p1=.3; #percentage of the solute in the solution\n", + "w1=1000.; #weight of the solution taken\n", + "w2=142.; #molecular weight of Na2SO4.\n", + "\n", + "# Calculation \n", + "M1=(w2/(180+w2)); #solute (Na2SO4) present in the Na2CO3.10H2O solution\n", + "s1=40.8; #solubility of Na2SO4 at 30 degree per 100 gm of water\n", + "s2=9.0; #solubility of Na2SO4 at 10 degree per 100 gm of water\n", + "#percent weight of solute in Na2SO4.10H2O= 144/322\n", + "#let x be the weight of crystal formed \n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t= 576.477290 #roots((w1*40.8/140.8)-(.442*x+(w1-x)*(s2/(100+s2)))); \n", + "\n", + "# Result\n", + "print \"\\n the weight of crystal formed after crystallisation :%f kg\"%t\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the weight of crystal formed after crystallisation :576.477290 kg\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.6 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# percentage yield of Na2CO3 hydrated crysta\n", + "\n", + "# Variable Declaration \n", + "\n", + "s1=12.5; #solubility of Na2CO3 at 10 degree per 100 gm of water\n", + "p1=.3; #percentage of the solute in the solution\n", + "w1=2000.; #weight of the solution taken\n", + "w2=106.; #molecular weight of Na2CO3.\n", + "\n", + "# Calculation \n", + "M1=(w2/(180+w2)); #solute (Na2CO3) present in the Na2CO3.10H2O solution\n", + "#let x be the quantity of Na2CO3.10H2O crystal formed\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t= 1455.688623 #roots(w1*p1-M1*x-(w1-x)*(s1/(100+s1))); \n", + "\n", + "# Result\n", + "print \"\\n the weight of quantity of Na2CO3.10H2O :%f kg\"%t\n", + "#in the book the ans is wrong, they have calculated 2000*0.3-2000*12.5/112.5 as =x(miscalculation)\n", + "\n", + "p=(286./106)*w1*p1; #weight of Na2CO3.10H2O crystal present in the original solution\n", + "y=t/p; #percentage yield \n", + "print \"\\n percentage yield :%f percent\"%(y*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the weight of quantity of Na2CO3.10H2O :1455.688623 kg\n", + "\n", + " percentage yield :89.920160 percent\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.7 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# percentage yield of K2CO3 hydrated crystal\n", + "\n", + "# Variable Declaration \n", + "\n", + "s1=139.8; #solubility at 80 degree per 100 gm of water\n", + "s2=110.5; #solubility at 20 degree per 100 gm of water\n", + "w2=174.2; #molecular weight of K2CO3.10H2O\n", + "\n", + "# Calculation \n", + "M1=(138/w2)*100; #water present in 100kg of K2CO3.10H2O\n", + "#let x be the quantity of Na2CO3.10H2O\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t=108.634036 #roots(500*(139.8/239.8)-.7921*x-(500-x)*110.5/210.5); \n", + "\n", + "# Result\n", + "print \"\\n the weight of quantity of K2CO3.10H2O formed :%f kg\"%t\n", + "\n", + "p=(174./138)*500*(139.8/239.8); #weight of crystal present in the original solution\n", + "y=t/p; #percentage yield \n", + "print \"\\n percentage yield :%f percent\"%(y*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the weight of quantity of K2CO3.10H2O formed :108.634036 kg\n", + "\n", + " percentage yield :29.557504 percent\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.8 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# percentage yield FeSO4 hydrate crystal\n", + "\n", + "# Variable Declaration \n", + "\n", + "s1=20.51; #solubility at 10 degree per 100 gm of water\n", + "w2=277.85; #molecular weight of FeSO4.7H2O\n", + "\n", + "# Calculation and Result\n", + "#let x be the quantity of Na2CO3.10H2O\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t= 549.684973 #roots(900*.4-.5465*x-(900-x)*20.5/120.5); \n", + "print \"\\n the weight of quantity of FeSO4.7H2O formed :%f kg\"%t\n", + "\n", + "p=(277.85/151.85)*900*(0.4); #weight of crystal present in the original solution\n", + "y=t/p; #percentage yield \n", + "print \"\\n percentage yield :%f percent\"%(y*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the weight of quantity of FeSO4.7H2O formed :549.684973 kg\n", + "\n", + " percentage yield :83.447967 percent\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.9" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# percentage saturation and weight of Cesium chloride crystal\n", + "\n", + "# Variable Declaration \n", + "\n", + "#part(i)\n", + "a1=229.7; #solubility at 60 degree\n", + "a2=174.7; #solubility at 60 degree\n", + "t1=68; # percentage of sodium nitrate\n", + "t2=30.34;\n", + "\n", + "# Calculation and Result\n", + "x1=a1/329.7 *100; #percentage of saturated solution at 50 degree\n", + "tw=(t1/32.)/(x1/t2); #the percentage saturation\n", + "print \"\\nthe percentage saturation is :%f percent\"%(tw*100)\n", + "\n", + "#part(ii)\n", + "#let x be the weight of Cesium chloride crystal formed after crystallisation\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t=120.960000 #roots(1000*.68-(x+(1000-x)*174.7/274.7)); \n", + "print \"\\n the weight of CaCl2 crystal formed after crystallisation :%f kg\"%t\n", + "\n", + "#part(iii)\n", + "y=t/680.; #yield = weight of CaCl2 crystal formed/weight of CaCl2\n", + "print \"\\n the percentage yield of Cesium chloride is:%f percent\"%(y*100)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "the percentage saturation is :92.540632 percent\n", + "\n", + " the weight of CaCl2 crystal formed after crystallisation :120.960000 kg\n", + "\n", + " the percentage yield of Cesium chloride is:17.788235 percent\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.10" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# weight of Na2CO3hydrate needed to dissolve Na2CO3\n", + "\n", + "# Variable Declaration \n", + "\n", + "s1=38.8; #solubility at 30 degree per 100 gm of water\n", + "s2=12.5; #solubility at 10 degree per 100 gm of water\n", + "w2=296; #molecular weight of Na2CO3.10H2O\n", + "per=116./w2 *100; #percentage solute in Na2CO3.10H2O\n", + "\n", + "#let x be the quantity of Na2CO3.10H2O\n", + "w=200.; #original solotion weight\n", + "\n", + "# Calculation \n", + "m1=w*(s2/(s2+100)); #weight of Na2CO3.10H2O needed to dissolve Na2CO3 present in the original solotion \n", + "w3=w-m1; #weight of water \n", + "#w4=m1+per/100; weight of Na2CO3 after dissolution\n", + "x1=s1/(s1+100); #weight fraction of solute after dissolution \n", + "\n", + "# Result\n", + "print \"\\n the weight of quantity of Na2CO3.10H2O formed :%f kg\"%w3\n", + "\n", + "#for the total solution after dissolution\n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t= 300.485784 #roots((m1+per*x/100)-((m1+per*x/100)+(w3+.609*x))*x1); \n", + "print \"\\nweight of Na2CO3.10H2O needed to dissolve Na2CO3 present in the original solution %f kg\"%t\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the weight of quantity of Na2CO3.10H2O formed :177.777778 kg\n", + "\n", + "weight of Na2CO3.10H2O needed to dissolve Na2CO3 present in the original solution 300.485784 kg\n" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.11" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# weight of Na2CO3 hydrated formed\n", + "\n", + "# Variable Declaration \n", + "\n", + "s1=35.; #percentage of solution\n", + "x1=6000.; #weight of Na2CO3 solution\n", + "s2=21.5; #solubility at 20 degree per 100 gm of water\n", + "w2=296.; #molecular weight of Na2CO3.10H2O\n", + "\n", + "# Calculation \n", + "per=116./w2 *100; #percentage solute in Na2CO3.10H2O\n", + "w1=s1*x1; #weight of solute\n", + "w3=x1*0.04; #weight of solution lost by vaporisation\n", + "#let x be the quantity of Na2CO3.10H2O formed \n", + "#making material balance \n", + "#x=poly([0],'x'); #calc. x the weight of crystal\n", + "t= 5049.122335 #roots(2100-(.391*x)-(6000-240-x)*(21.5/121.5)); \n", + "\n", + "# Result\n", + "print \"\\n the weight of Na2CO3.10H2O crystal formed after crystallisation :%f kg\"%t\n", + "\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the weight of Na2CO3.10H2O crystal formed after crystallisation :5049.122335 kg\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.12" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# feed rate of FeSO4 hydrated crystal produced per hour\n", + "\n", + "# Variable Declaration \n", + "\n", + "C=1000.; #crystal formed in kg\n", + "hf=26.002; #enthalpy of the feed at 80 degree in cal/g\n", + "hl=-1.33; #enthalpy of the saturated sol at 30 degree in cal/g\n", + "hc=-50.56; #enthalpy of crystal\n", + "xf=40./(100+40);\n", + "xm=30./(100+30);\n", + "xc=151.84/277.85; #151.84 is the weight of FeSO4\n", + " #component balance\n", + "# F*xf = M*xm + C*xc ------eqn 1st\n", + "# F = M + 10000 + V ------eqn 2nd\n", + "# F*Hf = V*Hv + M*Hm +C*Hc-----eqn 3rd\n", + "Hf=26.002; #enthalpy of the feed at 80 degree in cal/g\n", + "Hv=612.; #\n", + "Hm=-1.33; #enthalpy of the saturated sol at 30 degree in cal/g\n", + "Hc=-50.56; #enthalpy of crystal leaving the crystalliser\n", + "from numpy import matrix\n", + "from numpy import linalg\n", + "#solving these we gt \n", + "\n", + "# Calculation \n", + "a=matrix([[1,-1,-1],[.286,-.231,0],[26.002,1.33,-612]])\n", + "b=matrix([[10000],[5470],[-505600]])\n", + "x=linalg.inv(a)*b; #solving out the values using matrices \n", + "t1=x[0]; #3 solution of the eqn\n", + "t2=x[1];\n", + "t3=x[2];\n", + "\n", + "# Result\n", + "print \"\\n the feed rate F= : %f kg/hr \\n value of M= : %f kg/hr\\n value of V=: %f kg/hr\"%(t1,t2,t3)\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " the feed rate F= : 45556.688340 kg/hr \n", + " value of M= : 32723.865218 kg/hr\n", + " value of V=: 2832.823122 kg/hr\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "Example 7.13 " + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# cooling water requirement\n", + "\n", + "# Variable Declaration \n", + "\n", + "import math\n", + "C=800.; #crystal formed in kg/hr\n", + "t2=49.; #temp. of the entering fed\n", + "t1=27.; #temp. of the product\n", + "t3=21.; #temp. of the leaving cooling water\n", + "t4=15.; #temp. of the enetring cooling water\n", + "U=175.; #overall heat transfer coefficient\n", + "F=140*151.85/277.85; #feed concentration \n", + "xf=F/240; #concentration in feed solution\n", + "P=74*151.85/277.85; #product concentration \n", + "xm=P/174; #concentration of FeSO4 in product solution\n", + "xc=151.85/277.85; #\n", + " #mass balance F = M+C ----eqn 1st\n", + " #sloute balance F*xf = M*xm + C*xc ----eqn 2nd\n", + "\n", + "# Calculation \n", + "#solving these we get\n", + "F=800*.3141/0.0866; #feed conc.\n", + "M=F-C; #product concentration \n", + " #making energy balance\n", + " #heat to be removed by cooling water =heat to be removed from solution + heat of crystallization\n", + "cp=.7; #specific heat capacity\n", + "dt=(t2-t1); #change in temp.\n", + "dh=15.8; #heat of crystallization\n", + "Q=F*cp*dt+dh*C; #heat to be removed by cooling water\n", + "cp=1; #specific heat capacity of water\n", + "dt=(t3-t4); #change in temp.\n", + "mw=Q/(cp*dt); #cooling water needed\n", + "\n", + "# Result \n", + "print \"\\n cooling water requiement is :%f kg/hr\"%mw\n", + " #Q=U*A*(dtlm)\n", + "dtlm=((t2-t3)-(t1-t4))/(math.log((t2-t3)/(t1-t4)));#log mean temp. difference\n", + "A=Q/(U*dtlm); #area of the crystallizer section\n", + "l=A/1.3;\n", + "print \"\\n length of crystallliser sections needed is :%f m\"%l\n", + "\n", + "#end" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + " cooling water requiement is :9554.149346 kg/hr\n", + "\n", + " length of crystallliser sections needed is :13.343753 m\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Elements_Of_Mass_Transfer_Part_1/screenshots/dry-time.png b/Elements_Of_Mass_Transfer_Part_1/screenshots/dry-time.png Binary files differnew file mode 100644 index 00000000..3235d6e8 --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/screenshots/dry-time.png diff --git a/Elements_Of_Mass_Transfer_Part_1/screenshots/enthalpy.png b/Elements_Of_Mass_Transfer_Part_1/screenshots/enthalpy.png Binary files differnew file mode 100644 index 00000000..2f5099d0 --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/screenshots/enthalpy.png diff --git a/Elements_Of_Mass_Transfer_Part_1/screenshots/tower.png b/Elements_Of_Mass_Transfer_Part_1/screenshots/tower.png Binary files differnew file mode 100644 index 00000000..630464a7 --- /dev/null +++ b/Elements_Of_Mass_Transfer_Part_1/screenshots/tower.png |