{
 "metadata": {
  "name": "",
  "signature": "sha256:1812f754f8541ce5ac6b5aaa71f7eac9ff30ca728d742f618ea7c5d3873d8a96"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "6: Crystallography"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.1, Page number 134"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "M = 23+35.5;        #Molecular weight of NaCl(kg/k-mole)\n",
      "d = 2.18*10**3;     #Density of rock salt(kg/m**3)\n",
      "n = 4;    #Number of atoms per unit cell for an fcc lattice of NaCl crystal\n",
      "N = 6.02*10**26;    #Avogadro's No., atoms/k-mol\n",
      "\n",
      "#Calculation\n",
      "a = (n*M/(d*N))**(1/3);     #Lattice constant of unit cell of NaCl(m)\n",
      "a = a*10**9;      ##Lattice constant of unit cell of NaCl(nm)\n",
      "a = math.ceil(a*10**3)/10**3;     #rounding off the value of a to 3 decimals\n",
      "\n",
      "#Result\n",
      "print \"Lattice parameter for the NaCl crystal is\",a, \"nm\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Lattice parameter for the NaCl crystal is 0.563 nm\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.2, Page number 134"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "\n",
      "#Variable declaration\n",
      "m = 3;\n",
      "n = 2; \n",
      "p = 1;     #Coefficients of intercepts along three axes\n",
      "\n",
      "#Calculation\n",
      "#reciprocals of the intercepts are 1/m, 1/n, 1/p i.e 1/3, 1/2, 1\n",
      "#multiplying by LCM the reciprocals become 2, 3, 6\n",
      "\n",
      "#Result\n",
      "print \"The required miller indices are : (2, 3, 6)\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The required miller indices are : (2, 3, 6)\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.3, Page number 135"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "\n",
      "#Variable declaration\n",
      "m = 2;  #Coefficient of intercept along x-axis\n",
      "#n = infinite    Coefficient of intercept along y-axis\n",
      "p = 3/2;    #Coefficient of intercept along z-axis\n",
      "\n",
      "#Calculation\n",
      "#reciprocals of the intercepts are 1/m, 1/n, 1/p i.e 1/2, 0, 2/3\n",
      "#multiplying by LCM the reciprocals become 3, 0, 4\n",
      "\n",
      "#Result\n",
      "print \"The required miller indices are : (3, 0, 4)\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The required miller indices are : (3, 0, 4)\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.4, Sketching not possible"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.5, Page number 136"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "#For (110) planes\n",
      "h1 = 1;\n",
      "k1 = 1;\n",
      "l1 = 0;    #Miller Indices for planes in a cubic crystal\n",
      "a1 = 0.43;     #Interatomic spacing(nm)\n",
      "#For (212) planes\n",
      "h2 = 2; \n",
      "k2 = 1;\n",
      "l2 = 2;    #Miller Indices for planes in a cubic crystal\n",
      "a2 = 0.43;     #Interatomic spacing(nm)\n",
      "\n",
      "#Calculation\n",
      "d1 = a1/(h1**2+k1**2+l1**2)**(1/2);  #The interplanar spacing for cubic crystals(nm)\n",
      "d1 = math.ceil(d1*10**4)/10**4;     #rounding off the value of d1 to 4 decimals\n",
      "d2 = a2/(h2**2+k2**2+l2**2)**(1/2);    #The interplanar spacing for cubic crystals(nm)\n",
      "d2 = math.ceil(d2*10**4)/10**4;     #rounding off the value of d2 to 4 decimals\n",
      "\n",
      "#Result\n",
      "print \"The interplanar spacing between consecutive (110) planes is\",d1, \"nm\";\n",
      "print \"The interplanar spacing between consecutive (212) planes is\",d2, \"nm\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The interplanar spacing between consecutive (110) planes is 0.3041 nm\n",
        "The interplanar spacing between consecutive (212) planes is 0.1434 nm\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.6, Page number 136"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "h = 2;\n",
      "k = 3;\n",
      "l = 1;      #Miller Indices for planes in a cubic crystal\n",
      "r = 0.175;    #Atomic radius of fcc lattice(nm)\n",
      "\n",
      "#Calculation\n",
      "a = 2*math.sqrt(2)*r;     #Interatomic spacing of fcc lattice(nm)\n",
      "d = a/(h**2+k**2+l**2)**(1/2);    #The interplanar spacing for cubic crystals(nm)\n",
      "d = math.ceil(d*10**4)/10**4;     #rounding off the value of d to 4 decimals\n",
      "\n",
      "#Result\n",
      "print \"The interplanar spacing between consecutive (231) planes is\",d, \"nm\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The interplanar spacing between consecutive (231) planes is 0.1323 nm\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.7, Page number 136"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "lamda = 1.44;      #Wavelength of X-rays(A)\n",
      "d = 2.8;     #Interplanar spacing of rocksalt crystal(A)\n",
      "n1 = 1;      #For 1st Order diffraction\n",
      "n2 = 2;     #For 2nd Order diffraction\n",
      "\n",
      "#Calculation\n",
      "theta1 = math.asin(n1*lamda/(2*d));    #Angle of diffraction(radians)\n",
      "theeta1 = theta1*57.2957795;       #Angle of diffraction(degrees)\n",
      "theeta1 = math.ceil(theeta1*10**2)/10**2;     #rounding off the value of theeta1 to 2 decimals\n",
      "theta2 = math.asin(n2*lamda/(2*d));     #Angle of diffraction(radians)\n",
      "theeta2 = theta2*57.2957795;       #Angle of diffraction(degrees)\n",
      "theeta2 = math.ceil(theeta2*10**2)/10**2;     #rounding off the value of theeta2 to 2 decimals\n",
      "\n",
      "#Result\n",
      "print \"The angle of diffraction for first order maxima is\",theeta1, \"degrees\"\n",
      "print \"The angle of diffraction for second order maxima is\",theeta2, \"degrees\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The angle of diffraction for first order maxima is 14.91 degrees\n",
        "The angle of diffraction for second order maxima is 30.95 degrees\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.8, Page number 136"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "a = 1;     #For convenience, assume interatomic spacing to be unity(m)\n",
      "\n",
      "#Calculation\n",
      "N = 8*(1/8) + 6*(1/2);      #total number of spheres in a unit cell\n",
      "r = a/(2*math.sqrt(2));    #The atomic radius(m)\n",
      "V_atom = N*(4/3)*math.pi*r**3;    #Volume of atoms(m**3)\n",
      "V_uc = a**3;       #Volume of unit cell(m**3)\n",
      "PV = (V_atom/V_uc)*100;      #percentage of actual volume\n",
      "PV = math.ceil(PV*10)/10;     #rounding off the value of PV to 1 decimal\n",
      "\n",
      "#Result\n",
      "print \"The percentage of actual volume occupied by the spheres in fcc structure is\",PV, \"percent\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The percentage of actual volume occupied by the spheres in fcc structure is 74.1 percent\n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.9, Page number 137"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "#For (221) planes\n",
      "h = 2; \n",
      "k = 2; \n",
      "l = 1;    #Miller Indices for planes in a cubic crystal\n",
      "a = 2.68;    #Interatomic spacing(A)\n",
      "n1 = 1;      #First Order of diffraction \n",
      "n2 = 2;    #Second order of diffraction\n",
      "theta1 = 8.5;    #Glancing angle at which Bragg's reflection occurs(degrees)\n",
      "\n",
      "#Calculation\n",
      "theta1 = theta1*0.0174532925;     #Glancing angle at which Bragg's reflection occurs(radians)\n",
      "a = a*10**-10;      #Interatomic spacing(m)\n",
      "d = a/(h**2+k**2+l**2)**(1/2);   #The interplanar spacing for cubic crystal(m)\n",
      "lamda = 2*d*math.sin(theta1)/n1;     #Bragg's Law for wavelength of X-rays(m)\n",
      "lamda_A = lamda*10**10;        #Bragg's Law for wavelength of X-rays(A)\n",
      "lamda_A = math.ceil(lamda_A*10**4)/10**4;     #rounding off the value of lamda_A to 4 decimals\n",
      "theta2 = math.asin(n2*lamda/(2*d));    #Angle at which second order Bragg reflection occurs(radians)\n",
      "theta2 = theta2*57.2957795;       #Angle at which second order Bragg reflection occurs(degrees)\n",
      "theta2 = math.ceil(theta2*10)/10;     #rounding off the value of theta2 to 1 decimal\n",
      "\n",
      "#Result\n",
      "print \"The interplanar spacing between consecutive (221) planes is\",d, \"m\"\n",
      "print \"The wavelength of X-rays is\",lamda_A, \"angstrom\"\n",
      "print \"The angle at which second order Bragg reflection occurs is\",theta2, \"degrees\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The interplanar spacing between consecutive (221) planes is 8.93333333333e-11 m\n",
        "The wavelength of X-rays is 0.2641 angstrom\n",
        "The angle at which second order Bragg reflection occurs is 17.2 degrees\n"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.10, Page number 137"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "h = 1; \n",
      "k = 1;\n",
      "l = 0;    #Miller Indices for planes in a cubic crystal\n",
      "n = 1;    #First Order of diffraction \n",
      "theta = 25;    #Glancing angle at which Bragg's reflection occurs(degrees)\n",
      "lamda = 0.7;     #Wavelength of X-rays(A)\n",
      "\n",
      "#Calculation\n",
      "theta = theta*0.0174532925;     #Glancing angle at which Bragg's reflection occurs(radians)\n",
      "d = n*lamda/(2*math.sin(theta));    #Interplanar spacing of cubic crystal(A)\n",
      "a = d*(h**2+k**2+l**2)**(1/2);      #The lattice parameter for cubic crystal(A)\n",
      "a = math.ceil(a*10**3)/10**3;     #rounding off the value of a to 3 decimals\n",
      "\n",
      "#Result\n",
      "print \"The lattice parameter for cubic crystal is\",a, \"angstrom\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The lattice parameter for cubic crystal is 1.172 angstrom\n"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.11, Page number 138"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "d = 0.31;      #Interplanar spacing(nm)\n",
      "n = 1;    #First Order of diffraction \n",
      "theta = 9.25;    #Glancing angle at which Bragg's reflection occurs(degrees)\n",
      "theta_max = 90;     #Maximum possible angle at which reflection can occur(degrees)\n",
      "theta_max = theta_max*0.0174532925;      #Maximum possible angle at which reflection can occur(radians)\n",
      "\n",
      "#Calculation\n",
      "theta = theta*0.0174532925;    #Glancing angle at which Bragg's reflection occurs(radians)\n",
      "lamda = 2*d*math.sin(theta)/n;    #Wavelength of X-rays(nm) (Bragg's Law)\n",
      "lamda = math.ceil(lamda*10**5)/10**5;     #rounding off the value of lamda to 5 decimals\n",
      "n = 2*d*math.sin(theta_max)/lamda;    #Maximum possible order of diffraction\n",
      "\n",
      "#Result\n",
      "print \"The wavelength of X-rays is\",lamda, \"nm\"\n",
      "print \"The Maximum possible order of diffraction is\",round(n)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The wavelength of X-rays is 0.09967 nm\n",
        "The Maximum possible order of diffraction is 6.0\n"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.12, Page number 138"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "#For (110) planes\n",
      "h1 = 1;\n",
      "k1 = 1;\n",
      "l1 = 0;     #Miller indices for (110) planes\n",
      "d_110 = 0.195;     #Interplanar spacing between (110) planes(nm)\n",
      "#For (210) planes\n",
      "h2 = 2;\n",
      "k2 = 1; \n",
      "l2 = 0;     #Miller indices for (110) planes\n",
      "n = 2;     #Second Order of diffraction \n",
      "lamda = 0.071;     #Wavelength of X-rays(nm)\n",
      "\n",
      "#Calculation\n",
      "a = d_110*(h1**2 + k1**2 + l1**2)**(1/2);     #Lattice parameter for bcc crystal(nm)\n",
      "d_210 = a/(h2**2 + k2**2 + l2**2)**(1/2);     #Interplanar spacing between (210) planes(nm)\n",
      "theta = math.asin(n*lamda/(2*d_210));      #Bragg reflection angle for the second order diffraction(radians)\n",
      "theeta = theta*57.2957795;      #Bragg reflection angle for the second order diffraction(degrees)\n",
      "theeta = math.ceil(theeta*10**3)/10**3;     #rounding off the value of theeta to 3 decimals\n",
      "\n",
      "#Result\n",
      "print \"Bragg reflection angle for the second order diffraction is\",theeta, \"degrees\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Bragg reflection angle for the second order diffraction is 35.149 degrees\n"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.13, Page number 138"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "d = 2182;       #Density of rock salt(kg/m**3)\n",
      "n = 4;        #Number of atoms per unit cell for an fcc lattice of NaCl crystal\n",
      "N = 6.02*10**26;    #Avogadro's number(atoms/k-mol)\n",
      "\n",
      "#Calculation\n",
      "M = 23+35.5;         #Molecular weight of NaCl(kg/k-mole)\n",
      "#V = a^3 = M*n/(N*d)\n",
      "a = (n*M/(d*N))**(1/3);      #Lattice constant of unit cell of NaCl(m)\n",
      "D = a/2;       #distance between nearest neighbours(m)\n",
      "D = D*10**9;    #distance between nearest neighbours(nm)\n",
      "D = math.ceil(D*10**4)/10**4;     #rounding off the value of D to 4 decimals\n",
      "\n",
      "#Result\n",
      "print \"The distance between nearest neighbours of NaCl structure is\",D, \"nm\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The distance between nearest neighbours of NaCl structure is 0.2814 nm\n"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example number 6.14, Page number 139"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\n",
      "#importing modules\n",
      "import math\n",
      "from __future__ import division\n",
      "\n",
      "#Variable declaration\n",
      "r1 = 1.258;     #Atomic radius of bcc structure of iron(A)\n",
      "N1 = 2;     #Number of atoms per unit cell in bcc structure\n",
      "#For fcc structure\n",
      "r2 = 1.292;     #Atomic radius of fcc structure of iron(A)\n",
      "N2 = 4;     #Number of atoms per unit cell in fcc structure\n",
      "\n",
      "#Calculation\n",
      "a1 = 4*r1/math.sqrt(3);    #Lattice parameter of bcc structure of iron(A)\n",
      "V1 = a1**3;     #Volume of bcc unit cell(A)\n",
      "V_atom_bcc = V1/N1;    #Volume occupied by one atom(A)\n",
      "a2 = 2*math.sqrt(2)*r2;     #Lattice parameter of fcc structure of iron(A)\n",
      "V2 = a2**3;     #Volume of fcc unit cell(A)\n",
      "V_atom_fcc = V2/N2;     #Volume occupied by one atom(A)\n",
      "delta_V = (V_atom_bcc-V_atom_fcc)/V_atom_bcc*100;    #Percentage change in volume due to structural change of iron\n",
      "delta_V = math.ceil(delta_V*10**3)/10**3;     #rounding off the value of delta_V to 3 decimals\n",
      "\n",
      "#Result\n",
      "print \"The percentage change in volume of iron is\",delta_V, \"percent\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The percentage change in volume of iron is 0.494 percent\n"
       ]
      }
     ],
     "prompt_number": 15
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}