3: Crystal Planes and Point Defects

Example number 3.1, Page number 45

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

#Variable declaration
a=1;
b=1/2;
c=3;      #intercepts

#Calculation
h=int(c/a);
k=int(c/b);
l=int(c/c);     #miller indices

#Result
print "miller indices are (",h,k,l,")"
miller indices are ( 3 6 1 )

Example number 3.5, Page number 48

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

#Variable declaration
a=1;
b=2;
c=3;      #intercepts

#Calculation
h=int(c/a);
k=int(b);
l=int(c*b);     #miller indices

#Result
print "miller indices are (",h,k,l,")"
miller indices are ( 3 2 6 )

Example number 3.7, Page number 48

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

#Variable declaration
a=Symbol('a');
b=Symbol('b');
X=3;
Y=4;
Z=0;       #intercepts

#Calculation
x=a/X;
y=b/Y;
z=float('inf');      #miller indices

#Result
print "miller indices are",x,y,z
miller indices are a/3 b/4 inf

Example number 3.8, Page number 49

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

#Variable declaration
a=0.25;
b=0.25;
c=0.18;
h=1;
k=1;
l=1;

#Calculation
d_hkl=1/math.sqrt((a**2/h**2)+(b**2/k**2)+(c**2/l**2));     #spacing between planes(nm)

#Result
print "spacing between planes is",round(d_hkl,3),"nm"
print "answer in the book is wrong"
spacing between planes is 2.521 nm
answer in the book is wrong

Example number 3.9, Page number 49

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

#Variable declaration
h1=1;
k1=0;
l1=0;    #miller indices of (100)
h2=1;
k2=1;
l2=0;    #miller indices of (110)
a=0.287;    #lattice constant(nm)

#Calculation
d100=a/math.sqrt(h1**2+k1**2+l1**2);    #spacing(nm)
d110=a/math.sqrt(h2**2+k2**2+l2**2);    #spacing(nm)
rho=2/(math.sqrt(2)*(d100*10**-9)**2);    #number of atoms(per mm**2)

#Result
print "number of atoms is",round(rho*10**-18,3),"*10**18 atoms/mm**2"
print "answer in the book is wrong"
number of atoms is 17.169 *10**18 atoms/mm**2
answer in the book is wrong

Example number 3.10, Page number 49

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

#Variable declaration
r=0.1278*10**-9;    #atomic radius(m)
h1=1;
k1=1;
l1=1;
h2=3;
k2=2;
l2=1;

#Calculation
a=2*math.sqrt(2)*r;
d111=a*10**10/math.sqrt(h1**2+k1**2+l1**2);    #interplanar spacing for (111)
d321=a*10**10/math.sqrt(h2**2+k2**2+l2**2);    #interplanar spacing for (321)

#Result
print "interplanar spacing for (111) is",round(d111,3),"angstrom"
print "interplanar spacing for (321) is",round(d321,3),"angstrom"
interplanar spacing for (111) is 2.087 angstrom
interplanar spacing for (321) is 0.966 angstrom

Example number 3.11, Page number 50

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

#Variable declaration
r1=1.258*10**-10;     #radius(m)
r2=1.292*10**-10;     #radius(m)

#Calculation
a_bcc=4*r1/math.sqrt(3);
v=a_bcc**3;
V1=v/2;
a_fcc=2*math.sqrt(2)*r2;
V2=a_fcc**3/4;
V=(V1-V2)*100/V1;           #percent volume change is",V,"%"

#Result
print "percent volume change is",round(V,1),"%"
percent volume change is 0.5 %

Example number 3.12, Page number 50

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

#Variable declaration
C=0.494*10**-9;      #height(m)
a=0.27*10**-9;      #distance(m)
M=65.37;      #atomic weight
N=6.02*10**26;    #avagadro number

#Calculation
V=3*math.sqrt(3)*a**2*C/2;      #volume of cell(m**3)
m=6*M/N;
rho=m/V;      #density of Zn(kg/m**3)

#Result
print "volume of cell is",round(V*10**29,3),"*10**-29 m**3"
print "density of Zn is",round(rho,1),"kg/m**3"
print "answer in the book is wrong"
volume of cell is 9.356 *10**-29 m**3
density of Zn is 6963.5 kg/m**3
answer in the book is wrong

Example number 3.13, Page number 51

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

#Variable declaration
T1=773;    #temperature(K)
T2=1273;   #temperature(K)
n=1*10**-10;    #fraction of vacancy sites

#Calculation
logx=round(T1*math.log(n)/T2,3);
x=math.exp(logx);           #fraction of vacancy sites

#Result
print "fraction of vacancy sites is",round(x*10**7,3),"*10**-7"
print "answer in the book varies due to rounding off errors"
fraction of vacancy sites is 8.466 *10**-7
answer in the book varies due to rounding off errors

Example number 3.14, Page number 51

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

#Variable declaration
Ev=68*10**3;    #enthalpy(j/mol)
R=8.314;
T1=300;    #temperature(K)
T2=800;   #temperature(K)

#Calculation
x1=-Ev/(R*T1);
x2=-Ev/(R*T2);
n=math.exp(x1)/math.exp(x2);      #ratio of number of vacancies

#Result
print "ratio of number of vacancies is",round(n*10**8,2),"*10**-8"
print "answer in the book varies due to rounding off errors"
ratio of number of vacancies is 3.98 *10**-8
answer in the book varies due to rounding off errors

Example number 3.15, Page number 52

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

#Variable declaration
KbT=0.025;
nbyN=1/10**10;    #concentration
N=10**29;

#Calculation
x=2*KbT;
Ev=x*math.log(1/nbyN);     #value of concentration(eV)
n=1/((N*nbyN)**(1/3));     #average seperation(m)

#Result
print "value of concentration is",round(Ev,1),"eV"
print "average seperation is",round(n*10**6,2),"*10**-6 m"
value of concentration is 1.2 eV
average seperation is 0.46 *10**-6 m

Example number 3.16, Page number 52

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

#Variable declaration
N=2.303*16.65;
T=298;    #temperature(K)
Kb=8.625*10**-5;

#Calculation
E=2*N*Kb*T;      #energy required(eV)

#Result
print "energy required is",round(E,2),"eV"
energy required is 1.97 eV