{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter 16: Crystal Physics"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.1, Page 820"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#Variable declaration\n",
      "p = 1; q = 2; r = 3; # Coefficients of intercepts along three axes\n",
      "\n",
      "#Calculations\n",
      "p_inv = 1./p;        # Reciprocate the first coefficient\n",
      "q_inv = 1./q;        # Reciprocate the second coefficient\n",
      "r_inv = 1./r;        # Reciprocate the third coefficient\n",
      "mul_fact = p*q*r; # Find l.c.m. of m,n and p\n",
      "m1 = p_inv*mul_fact;    # Clear the first fraction\n",
      "m2 = q_inv*mul_fact;    # Clear the second fraction\n",
      "m3 = r_inv*mul_fact;    # Clear the third fraction\n",
      "\n",
      "#Result\n",
      "print \"The required miller indices are : (%d %d %d) \"%(m1,m2,m3)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The required miller indices are : (6 3 2) \n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.2, Page 820"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#Variable declaration\n",
      "p = 2; q = 3; r = -4; # Coefficients of intercepts along three axes\n",
      "\n",
      "#Calculations\n",
      "p_inv = 1./p;        # Reciprocate the first coefficient\n",
      "q_inv = 1./q;        # Reciprocate the second coefficient\n",
      "r_inv = 1./r;        # Reciprocate the third coefficient\n",
      "mul_fact = p*q*abs(r); # Find l.c.m. of m,n and p\n",
      "m1 = p_inv*mul_fact;    # Clear the first fraction\n",
      "m2 = q_inv*mul_fact;    # Clear the second fraction\n",
      "m3 = r_inv*mul_fact;    # Clear the third fraction\n",
      "\n",
      "#Result\n",
      "print \"The miller indices of laticce plane are : (%d %d %d) \"%(m1,m2,m3)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The miller indices of laticce plane are : (12 8 -6) \n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.3, Page 821"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy\n",
      "\n",
      "#Variable declaration\n",
      "p = 3; q = 4; r = numpy.inf; # Coefficients of intercepts along three axes\n",
      "\n",
      "#Calculations\n",
      "p_inv = 1./p;        # Reciprocate the first coefficient\n",
      "q_inv = 1./q;        # Reciprocate the second coefficient\n",
      "r_inv = 1./r;        # Reciprocate the third coefficient\n",
      "mul_fact = p*q; # Find l.c.m. of m,n and p\n",
      "m1 = p_inv*mul_fact;    # Clear the first fraction\n",
      "m2 = q_inv*mul_fact;    # Clear the second fraction\n",
      "m3 = r_inv*mul_fact;    # Clear the third fraction\n",
      "\n",
      "#Result\n",
      "print \"The miller indices of the given planes are : (%d %d %d) \"%(m1,m2,m3)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The miller indices of the given planes are : (4 3 0) \n"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.4, Page 822 "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#Variable declaration\n",
      "p = 1.2;  # First coefficient of intercept along X-axis, angstrom\n",
      "a = 1.2\n",
      "b = 1.8\n",
      "c = 2.0;    # Lattice parameters along three axes, angstrom\n",
      "h = 2.\n",
      "k = 3.\n",
      "l = 1.;    # Miller indices of lattice plane\n",
      "\n",
      "#Calculations\n",
      "# As p:q:r = a/h:b/k:c/l, solving for q and r\n",
      "q = p*(b/k)/(a/h); # Second coefficient of intercept along X-axis, angstrom   \n",
      "r = p*(c/l)/(a/h); # Third coefficient of intercept along X-axis, angstrom   \n",
      "\n",
      "#Result\n",
      "print \"The lengths of the intercepts on Y and Z axes are %3.1f angstrom and %3.1f angstrom respectively\"%(q, r)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The lengths of the intercepts on Y and Z axes are 1.2 angstrom and 4.0 angstrom respectively\n"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.5, Page 822"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#Variable declaration\n",
      "M = 58.5;        # Molecular weight of NaCl, g-mole\n",
      "rho = 2.198e+03;    # Density of Nacl, kg per metre cube\n",
      "n = 4;    # No. of atoms per unit cell for an fcc lattice of NaCl crystal\n",
      "NA = 6.023e+26;    # Avogadro's No., atoms/k-mol\n",
      "\n",
      "#Calculations\n",
      "# Volume of the unit cell is given by\n",
      "# a^3 = M*n/(N*d)\n",
      "# Solving for a\n",
      "a = (n*M/(rho*NA))**(1./3);    # Lattice constant of unit cell of NaCl\n",
      "\n",
      "#Result\n",
      "print \"Lattice constant for the NaCl crystal = %4.2f angstrom\"%(a/1e-010)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Lattice constant for the NaCl crystal = 5.61 angstrom\n"
       ]
      }
     ],
     "prompt_number": 20
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.6, Page 823"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#Variable declaration\n",
      "M = 119;        # Molecular weight of KBr, g-mole\n",
      "rho = 2.7;    # Density of KBr, g per cm-cube\n",
      "n = 4;    # No. of atoms per unit cell for an fcc lattice of KBr crystal\n",
      "NA = 6.023e+23;    # Avogadro's No., atoms/mol\n",
      "\n",
      "#Calculations\n",
      "# Volume of the unit cell is given by\n",
      "# a^3 = M*n/(N*d)\n",
      "# Solving for a\n",
      "a = (n*M/(rho*NA))**(1./3);    # Lattice constant of unit cell of KBr\n",
      "\n",
      "#Result\n",
      "print \"Lattice constant for the KBr crystal = %4.2f angstrom\"%(a/1e-008)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Lattice constant for the KBr crystal = 6.64 angstrom\n"
       ]
      }
     ],
     "prompt_number": 21
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.7, Page 823"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from math import *\n",
      "\n",
      "#Variable declaration\n",
      "M = 63.5;        # Molecular weight of Cu, g-mole\n",
      "rho = 8.96;    # Density of Cu, g per cm-cube\n",
      "n = 4;    # No. of atoms per unit cell for an fcc lattice of Cu \n",
      "NA = 6.023e+23;    # Avogadro's No., atoms/mol\n",
      "\n",
      "#Calculations\n",
      "# Volume of the unit cell is given by\n",
      "# a^3 = M*n/(N*d)\n",
      "# Solving for a\n",
      "a = (n*M/(rho*NA))**(1./3);    # Lattice constant of unit cell of Cu\n",
      "d = a/sqrt(2);    # Distance between the two nearest Cu atoms, angstrom \n",
      "\n",
      "#Results\n",
      "print \"Lattice constant for the Cu crystal = %4.2f angstrom\"%(a/1e-008)\n",
      "print \"The distance between the two nearest Cu atoms = %4.2f angstrom\"%(d/1e-008)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Lattice constant for the Cu crystal = 3.61 angstrom\n",
        "The distance between the two nearest Cu atoms = 2.55 angstrom\n"
       ]
      }
     ],
     "prompt_number": 23
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.8, Page 824"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "a = 1;    # For simplicity assume lattice parameter of cubic crystal to be unity, unit\n",
      "# For (011) planes\n",
      "h = 0; k = 1; l = 1; # Miller Indices for planes in a cubic crystal\n",
      "d_011 = a/(h**2+k**2+l**2)**(1./2);  # The interplanar spacing for cubic crystals, m\n",
      "print \"The interplanar spacing between consecutive (011) planes = a/sqrt(%d)\"%(1/d_011**2)\n",
      "\n",
      "# For (101) planes\n",
      "h = 1; k = 0; l = 1; # Miller Indices for planes in a cubic crystal\n",
      "d_101 = a/(h**2+k**2+l**2)**(1./2);  # The interplanar spacing for cubic crystals, m\n",
      "print \"The interplanar spacing between consecutive (101) planes = a/sqrt(%d)\"%(1/d_101**2)\n",
      "\n",
      "# For (112) planes\n",
      "h = 1; k = 1; l = 2; # Miller Indices for planes in a cubic crystal\n",
      "d_112 = a/(h**2+k**2+l**2)**(1./2);  # The interplanar spacing for cubic crystals, m\n",
      "print \"The interplanar spacing between consecutive (112) planes = a/sqrt(%d)\"%(1/d_112**2) #incorrect answer in textbook\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The interplanar spacing between consecutive (011) planes = a/sqrt(2)\n",
        "The interplanar spacing between consecutive (101) planes = a/sqrt(2)\n",
        "The interplanar spacing between consecutive (112) planes = a/sqrt(5)\n"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.9, Page 824"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "#Variable declaration\n",
      "a = 4.2e-010;    # Lattice parameter of cubic crystal, m\n",
      "h = 3; k = 2; l = 1; # Miller Indices for planes in a cubic crystal\n",
      "\n",
      "#Calculations\n",
      "d_321 = a/(h**2+k**2+l**2)**(1./2);  # The interplanar spacing for cubic crystals, m\n",
      "\n",
      "#Result\n",
      "print \"The interplanar spacing between consecutive (321) planes = %4.2f angstrom\"%(d_321/1e-010)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The interplanar spacing between consecutive (321) planes = 1.12 angstrom\n"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.10, Page 825"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from math import *\n",
      "\n",
      "#Variable declaration\n",
      "a = 2.5\n",
      "b = 2.5\n",
      "c = 1.8;    # Lattice parameter of tetragonal crystal, angstrom\n",
      "h = 1\n",
      "k = 1\n",
      "l = 1; # Miller Indices for planes in a tetragonal crystal\n",
      "\n",
      "#Calculations\n",
      "d_hkl = 1/sqrt((h/a)**2+(k/b)**2+(l/c)**2);  # The interplanar spacing for tetragonal crystals, m\n",
      "\n",
      "#Result\n",
      "print \"The interplanar spacing between consecutive (111) planes = %4.2f angstrom\"%d_hkl\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The interplanar spacing between consecutive (111) planes = 1.26 angstrom\n"
       ]
      }
     ],
     "prompt_number": 27
    }
   ],
   "metadata": {}
  }
 ]
}