# 3: X-Ray Diffraction¶

## Example number 1, Page number 3.9¶

In [2]:
#importing modules
import math
from __future__ import division

#Variable declaration
d=1.181;       #lattice spacing(angstrom)
lamda=1.540;    #wavelength of X-rays(angstrom)

#Calculation
n=2*d*math.sin(theta)/lamda;       #maximum order of diffraction

#Result
print "maximum order of diffraction is",round(n,2)

maximum order of diffraction is 1.53


## Example number 2, Page number 3.9¶

In [4]:
#importing modules
import math
from __future__ import division

#Variable declaration
n=1;     #order
lamda=0.58;                 #wavelength(angstrom)
h=2;
k=0;
l=0;

#Calculation
d=n*lamda/(2*math.sin(theta));       #lattice parameter(angstrom)
a=d*math.sqrt(h**2+k**2+l**2);       #cube edge of unit cell(angstrom)

#Result
print "cube edge of unit cell is",round(a,3),"angstrom"
print "answer given in the book varies due to rounding off errors"

cube edge of unit cell is 3.514 angstrom
answer given in the book varies due to rounding off errors


## Example number 3, Page number 3.10¶

In [7]:
#importing modules
import math
from __future__ import division

#Variable declaration
lamda=0.842;   #wavelength of X-rays(angstrom)
n1=1;                  #order
n3=3;                  #order

#Calculation
theta3=math.asin(n3*lamda*math.sin(theta)/(n1*lamda))*180/math.pi;    #glancing angle for 3rd order(degrees)
theta3d=int(theta3);                             #glancing angle for 3rd order(degrees)
theta3m=(theta3-theta3d)*60;                     #glancing angle for 3rd order(minutes)

#Result
print "glancing angle for 3rd order is",theta3d,"degrees",int(theta3m),"minutes"
print "answer for minutes given in the book is wrong"

glancing angle for 3rd order is 26 degrees 35 minutes
answer for minutes given in the book is wrong


## Example number 4, Page number 3.10¶

In [11]:
#importing modules
import math
from __future__ import division

#Variable declaration
lamda=1.54;   #wavelength of X-rays(angstrom)
n=1;          #order
a=3.16;       #lattice parameter(angstrom)

#Calculation
d=n*lamda/(2*math.sin(theta));       #interplanar spacing(angstrom)
x=(a/d)**2;        #assume x=(h**2+k**2+l**2)

#Result
print "interplanar spacing is",round(d,2),"angstrom"
print "value of h**2+k**2+l**2 is",int(x)
print "miller indices are (110) or (011) or (101)"

interplanar spacing is 2.22 angstrom
value of h**2+k**2+l**2 is 2
miller indices are (110) or (011) or (101)


## Example number 5, Page number 3.11¶

In [12]:
#importing modules
import math
from __future__ import division

#Variable declaration
n=4;     #order
A=107.87;     #atomic weight(kg)
h=1;
k=1;
l=1;
rho=10500;              #density(kg/m**3)
H=6.625*10**-34;        #plancks constant(Js)
c=3*10**8;              #velocity of light(m/s)
e=1.6*10**-19;          #charge(coulomb)

#Calculation
a=round(((n*A/(N*rho))**(1/3))*10**10,2);   #lattice parameter(angstrom)
d=a/math.sqrt((h**2)+(k**2)+(l**2));     #lattice parameter(angstrom)
lamda=2*d*math.sin(theta);         #wavelength(angstrom)
E=H*c/(lamda*10**-10*e);                   #energy of X-rays(eV)

#Result
print "wavelength is",round(lamda,3),"angstrom"
print "energy of X-rays is",int(round(E/10**3)),"*10**3 eV"

wavelength is 1.553 angstrom
energy of X-rays is 8 *10**3 eV


## Example number 6, Page number 3.12¶

In [22]:
#importing modules
import math
from __future__ import division

#Variable declaration
h=1;
k=1;
l=1;
a=4.57;   #lattice parameter(angstrom)
lamda=1.52;         #wavelength(angstrom)

specimen distance is 7.559 cm