{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 18 - Ion Exchange"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 1062 Example 18.1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f64d57eabd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Slope = -0.011\n",
      "\n",
      " t(min)               Cs(kg/kg)       \n",
      "\n",
      "                       equation(i)         equation(ii)  \n",
      "\n",
      " 4.000                  0.048                      0.026        \n",
      "\n",
      " 20.000                  0.033                      0.056        \n",
      "\n",
      " 60.000                  -0.021                      0.089        \n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "from matplotlib.pyplot import plot,title,xlabel,ylabel,show\n",
    "from math import pi,exp\n",
    "\n",
    "Cse=0.132#        #in kg/kg\n",
    "Cs = [0.091, 0.097 ,0.105 ,0.113 ,0.125 ,0.128, 0.132]\n",
    "C=[];C1=[];C2=[]\n",
    "for cc in Cs:\n",
    "    C.append(cc/Cse)\n",
    "for cc in C:C1.append(1-cc)\n",
    "for cc in C:C2.append(1-cc**2)\n",
    "t = [2, 4 ,10 ,20 ,40 ,60 ,120]\n",
    "\n",
    "\n",
    "plot(t,C1,t,C2)\n",
    "title('1-(Cs/Cs* vs t(min)')\n",
    "xlabel(\"1-(Cs/Cs*)\")\n",
    "ylabel('t(min)')\n",
    "show()\n",
    "#From the plot π**2Dr/ri**2 = 0.043\n",
    "#For a pellet of twice the radius, that is r = 2ri\n",
    "Slope = -0.043/4\n",
    "print\"\\n Slope = %.3f\"%(Slope)\n",
    "\n",
    "\n",
    "\n",
    "#Thus, when the radius = 2ri\n",
    "def equation1(t):\n",
    "    x = 1-(6/(pi)**2)*exp(-Slope*t)\n",
    "    return x\n",
    "\n",
    "#CS/CS*=[1 − exp(−κDR/tri**2)]**0.5\n",
    "#κDR/ri**2 = 0.04\n",
    "#For a pellet twice the size\n",
    "\n",
    "def equation2(t):\n",
    "    \n",
    "    x1 = (1-exp(-0.01*t))**0.5\n",
    "    return x1\n",
    "\n",
    "print\"\\n t(min)               Cs(kg/kg)       \"\n",
    "print\"\\n                       equation(i)         equation(ii)  \"\n",
    "t = [4 ,20, 60]#               #t is in min\n",
    "i=0\n",
    "while i<=2:\n",
    "    print\"\\n %.3f                  %.3f                      %.3f        \"%(t[(i)],Cse*equation1(t[(i)]),Cse*equation2(t[(i)]))\n",
    "    i=i+1\n",
    "    \n",
    "    \n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Page 1072 Example 18.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " Concentration of NaNO3 is 0.024 kg/m**3\n",
      "\n",
      " p = 20 percent\n"
     ]
    }
   ],
   "source": [
    "from sympy import symbols,solve\n",
    "\n",
    "c_NaNO3 = 2.0#               #per cent by mass\n",
    "print\"\\n Concentration of NaNO3 is %.3f kg/m**3\"%((c_NaNO3/85)*(103/100))\n",
    " \n",
    "#HNO3 (Molecular weight = 63 kg/kmol)\n",
    "#Concentration = p per cent\n",
    "#Concentration = (10p/63)(1030/1000)= 0.163p kg/m3\n",
    "#In the solution: xNa+ = 0.242/(0.242 + 0.163p)\n",
    "#For univalent ion exchange\n",
    "#yNa+/(1 − yNa+ ) = KNa+H + [xNa+ /(1 − xNa+)]\n",
    "\n",
    "yNa = 0.1\n",
    "K_NaH = 2/1.3\n",
    "p = symbols('p')\n",
    "p1 = solve((0.1/0.9)*(0.163*p*(0.242+0.163*p))-1.5*(0.242*(0.242+0.163*p)))\n",
    "print\"\\n p = %d percent\"%(p1[1])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
