{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 12: X-ray Diffraction"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 1, Page number 323"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wavelength of X-rays is 0.97938 angstrom\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "d=2.82*10**-10;          #spacing(m)\n",
    "theta=10*math.pi/180;    #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "lamda=2*d*math.sin(theta)/n;    #wavelength of X-rays(m)\n",
    "\n",
    "#Result\n",
    "print \"wavelength of X-rays is\",round(lamda*10**10,5),\"angstrom\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 2, Page number 323"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wavelength of X-rays is 1.262 angstrom\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "d=3.035*10**-10;          #spacing(m)\n",
    "theta=12*math.pi/180;    #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "lamda=2*d*math.sin(theta)/n;    #wavelength of X-rays(m)\n",
    "\n",
    "#Result\n",
    "print \"wavelength of X-rays is\",round(lamda*10**10,3),\"angstrom\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 3, Page number 323"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "their wavelengths are 1.464 angstrom and 1.6525 angstrom\n",
      "answer in the book varies due to rounding off errors\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "d=2.81;          #spacing(angstrom)\n",
    "theta1=15.1*math.pi/180;    #angle of diffraction(radian)\n",
    "theta2=17.1*math.pi/180;    #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "lamda1=2*d*math.sin(theta1)/n;    #wavelength(angstrom)\n",
    "lamda2=2*d*math.sin(theta2)/n;    #wavelength(angstrom)\n",
    "\n",
    "#Result\n",
    "print \"their wavelengths are\",round(lamda1,3),\"angstrom and\",round(lamda2,4),\"angstrom\"\n",
    "print \"answer in the book varies due to rounding off errors\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 4, Page number 324"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "spacing is 4.035 angstrom\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "lamda=1.54;          #wavelength of X-rays(angstrom)\n",
    "theta=11*math.pi/180;    #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "d=lamda/(2*math.sin(theta));       #spacing(angstrom)\n",
    "\n",
    "#Result\n",
    "print \"spacing is\",round(d,3),\"angstrom\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 5, Page number 324"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wavelength of line A is 1.593 angstrom\n",
      "answer given in the book is wrong\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n1=1;         #order\n",
    "n2=3;         #order\n",
    "theta1=30*math.pi/180;    #angle of diffraction(radian)\n",
    "theta2=60*math.pi/180;    #angle of diffraction(radian)\n",
    "lamdaB=0.92;    #wavelength(angstrom)\n",
    "\n",
    "#Calculations\n",
    "lamdaA=n2*lamdaB*math.sin(theta1)/math.sin(theta2);    #wavelength of line A(angstrom)\n",
    "\n",
    "#Result\n",
    "print \"wavelength of line A is\",round(lamdaA,3),\"angstrom\"\n",
    "print \"answer given in the book is wrong\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 6, Page number 324"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wavelength of electrons is 0.7406 *10**-10 m\n",
      "velocity of electrons is 9.793 *10**6 m/sec\n",
      "answers given in the book are wrong\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "d=0.4086*10**-10;          #spacing(m)\n",
    "theta=65*math.pi/180;      #angle of diffraction(radian)\n",
    "m=9.1*10**-31;             #mass(kg)\n",
    "h=6.6*10**-34;             #planks constant(Js)\n",
    "\n",
    "#Calculations\n",
    "lamda=2*d*math.sin(theta)/n;    #wavelength of electrons(m)\n",
    "v=h/(m*lamda);                  #velocity of electrons(m/sec)\n",
    "\n",
    "#Result\n",
    "print \"wavelength of electrons is\",round(lamda*10**10,4),\"*10**-10 m\"\n",
    "print \"velocity of electrons is\",round(v/10**6,3),\"*10**6 m/sec\"\n",
    "print \"answers given in the book are wrong\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 7, Page number 325"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "longest wavelength is 5.64 angstrom\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "d=2.82*10**-10;          #spacing(m)\n",
    "sintheta=1;              #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "lamdamax=2*d*sintheta/n;    #longest wavelength(m)\n",
    "\n",
    "#Result\n",
    "print \"longest wavelength is\",lamdamax*10**10,\"angstrom\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 8, Page number 325"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "glancing order is 26.599 degrees\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n1=1;         #order\n",
    "n2=3;         #order\n",
    "lamda=0.842*10**-10;     #wavelength(m)\n",
    "theta1=(8+(35/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "theta3=math.asin(n2*math.sin(theta1));     #glancing order(radian)\n",
    "\n",
    "#Result\n",
    "print \"glancing order is\",round(theta3*180/math.pi,3),\"degrees\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 9, Page number 325"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "spacing in 1st case is 1.289 angstrom\n",
      "spacing in 2nd case is 1.824 angstrom\n",
      "spacing in 3rd case is 0.648 angstrom\n",
      "answers given in the book are wrong\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "n=1;         #order\n",
    "lamda=0.58;          #wavelength of X-rays(angstrom)\n",
    "theta1=6.45*math.pi/180;    #angle of diffraction(radian)\n",
    "theta2=9.15*math.pi/180;    #angle of diffraction(radian)\n",
    "theta1=13*math.pi/180;    #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "d1=lamda/(2*math.sin(theta1));       #spacing in 1st case(angstrom)\n",
    "d2=lamda/(2*math.sin(theta2));       #spacing in 2nd case(angstrom)\n",
    "d3=lamda/(2*math.sin(theta3));       #spacing in 3rd case(angstrom)\n",
    "\n",
    "#Result\"\n",
    "print \"spacing in 1st case is\",round(d1,3),\"angstrom\"\n",
    "print \"spacing in 2nd case is\",round(d2,3),\"angstrom\"\n",
    "print \"spacing in 3rd case is\",round(d3,3),\"angstrom\"\n",
    "print \"answers given in the book are wrong\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 10, Page number 326"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "seperation of adjacent atoms is 2.823 angstrom\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "M=58.5;           #molecular weight(kg/k-mole)\n",
    "N=6.02*10**26;    #avagadro number(mol/k-mole)\n",
    "rho=2.16*10**3;   #density(kg/m**3)\n",
    "\n",
    "#Calculations\n",
    "d=(M/(2*N*rho))**(1/3);      #seperation of adjacent atoms(m)\n",
    "\n",
    "#Result\n",
    "print \"seperation of adjacent atoms is\",round(d*10**10,3),\"angstrom\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 11, Page number 327"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lattice spacing is 2.7882 angstrom\n",
      "avagadro number is 6.234 *10**26 mol/k-mole\n",
      "answer in the book varies due to rounding off errors\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "M=58.454;           #molecular weight(kg/k-mole)\n",
    "n=1;                #order\n",
    "rho=2163;           #density(kg/m**3)\n",
    "lamda=1.3922*10**-10;     #wavelength(m)\n",
    "theta=(14+(27/60)+(26/3600))*math.pi/180;    #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "d=n*lamda/(2*math.sin(theta));      #lattice spacing(m)\n",
    "N=M/(2*rho*d**3);                   #avagadro number(mol/k-mole)\n",
    "\n",
    "#Result\n",
    "print \"lattice spacing is\",round(d*10**10,4),\"angstrom\"\n",
    "print \"avagadro number is\",round(N/10**26,3),\"*10**26 mol/k-mole\"\n",
    "print \"answer in the book varies due to rounding off errors\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 12, Page number 327"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "orders of reflection is 1 : 2 : 3\n",
      "spacing at first order is 2.8187 *10**-10 m\n",
      "spacing at second order is 2.7805 *10**10 m\n",
      "spacing at third order is 2.8143 *10**-10 m\n",
      "mean value of crystal lattice spacing is 2.804 *10**-10 m\n",
      "answers given in the book vary due to rounding off errors\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "lamda=0.586*10**-10;      #wavelength(m)\n",
    "theta1=(5+(58/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "theta2=(12+(10/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "theta3=(18+(12/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "a=int(10*math.sin(theta1));          \n",
    "b=int(10*math.sin(theta2));          \n",
    "c=int(10*math.sin(theta3));          \n",
    "d1=a*lamda/(2*math.sin(theta1));     #spacing at first order(m)\n",
    "d2=b*lamda/(2*math.sin(theta2));     #spacing at second order(m)\n",
    "d3=c*lamda/(2*math.sin(theta3));     #spacing at third order(m)\n",
    "d=(d1+d2+d3)/3;                      #mean value of crystal lattice spacing(m)\n",
    "\n",
    "#Result\n",
    "print \"orders of reflection is\",a,\":\",b,\":\",c\n",
    "print \"spacing at first order is\",round(d1*10**10,4),\"*10**-10 m\"\n",
    "print \"spacing at second order is\",round(d2*10**10,4),\"*10**10 m\"\n",
    "print \"spacing at third order is\",round(d3*10**10,4),\"*10**-10 m\"\n",
    "print \"mean value of crystal lattice spacing is\",round(d*10**10,3),\"*10**-10 m\"\n",
    "print \"answers given in the book vary due to rounding off errors\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 13, Page number 328"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ratio of spacing is 1 : 1 *math.sqrt(2) : 1 *math.sqrt(3)\n",
      "the crystal is simple cubic crystal\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "theta1=(5+(23/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "theta2=(7+(37/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "theta3=(9+(25/60))*math.pi/180;      #angle of diffraction(radian)\n",
    "\n",
    "#Calculations\n",
    "d1=math.sin(theta1);     #spacing at first order(m)\n",
    "d2=math.sin(theta2);     #spacing at second order(m)\n",
    "d3=math.sin(theta3);     #spacing at third order(m)\n",
    "x=d1/d1;\n",
    "y=round(d2/(d1*math.sqrt(2)));\n",
    "z=round(d3/(math.sqrt(3)*d1));\n",
    "\n",
    "#Result\n",
    "print \"ratio of spacing is\",int(x),\":\",int(y),\"*math.sqrt(2) :\",int(z),\"*math.sqrt(3)\"\n",
    "print \"the crystal is simple cubic crystal\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 14, Page number 328"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wavelength of Kalpha is 0.589 angstrom\n",
      "answer given in the book is wrong due to printing mistake\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "M=58.46;           #molecular weight(kg/k-mole)\n",
    "N=6.02*10**26;     #avagadro number(mol/k-mole)\n",
    "rho=2170;          #density(kg/m**3)\n",
    "theta=6*math.pi/180;      #angle of diffraction(radian)\n",
    "n=1;               #order\n",
    "\n",
    "#Calculations\n",
    "d=(M/(2*N*rho))**(1/3);      #seperation of adjacent atoms(m)\n",
    "lamda=2*d*math.sin(theta)/n;     #wavelength of Kalpha(m)\n",
    "\n",
    "#Result\n",
    "print \"wavelength of Kalpha is\",round(lamda*10**10,3),\"angstrom\"\n",
    "print \"answer given in the book is wrong due to printing mistake\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example number 15, Page number 329"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "spacing of crystal is 0.38 angstrom\n"
     ]
    }
   ],
   "source": [
    "#importing modules\n",
    "import math\n",
    "from __future__ import division\n",
    "\n",
    "#Variable declaration  \n",
    "e=1.6*10**-19;             #charge(coulomb)\n",
    "E=344;                     #energy(V) \n",
    "theta=60*math.pi/180;      #angle of diffraction(radian)\n",
    "n=1;                       #order\n",
    "m=9*10**-31;               #mass(kg)\n",
    "h=6.62*10**-34;            #planks constant(Js)\n",
    "\n",
    "#Calculations\n",
    "lamda=h/math.sqrt(2*m*e*E);     #wavelength(m)\n",
    "d=n*lamda/(2*math.sin(theta));  #spacing of crystal(m)\n",
    "\n",
    "#Result\n",
    "print \"spacing of crystal is\",round(d*10**10,2),\"angstrom\""
   ]
  }
 ],
 "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.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}