In [4]:

```
#Variable declaration
p = 1; q = 2; r = 3; # Coefficients of intercepts along three axes
#Calculations
p_inv = 1./p; # Reciprocate the first coefficient
q_inv = 1./q; # Reciprocate the second coefficient
r_inv = 1./r; # Reciprocate the third coefficient
mul_fact = p*q*r; # Find l.c.m. of m,n and p
m1 = p_inv*mul_fact; # Clear the first fraction
m2 = q_inv*mul_fact; # Clear the second fraction
m3 = r_inv*mul_fact; # Clear the third fraction
#Result
print "The required miller indices are : (%d %d %d) "%(m1,m2,m3)
```

In [5]:

```
#Variable declaration
p = 2; q = 3; r = -4; # Coefficients of intercepts along three axes
#Calculations
p_inv = 1./p; # Reciprocate the first coefficient
q_inv = 1./q; # Reciprocate the second coefficient
r_inv = 1./r; # Reciprocate the third coefficient
mul_fact = p*q*abs(r); # Find l.c.m. of m,n and p
m1 = p_inv*mul_fact; # Clear the first fraction
m2 = q_inv*mul_fact; # Clear the second fraction
m3 = r_inv*mul_fact; # Clear the third fraction
#Result
print "The miller indices of laticce plane are : (%d %d %d) "%(m1,m2,m3)
```

In [14]:

```
import numpy
#Variable declaration
p = 3; q = 4; r = numpy.inf; # Coefficients of intercepts along three axes
#Calculations
p_inv = 1./p; # Reciprocate the first coefficient
q_inv = 1./q; # Reciprocate the second coefficient
r_inv = 1./r; # Reciprocate the third coefficient
mul_fact = p*q; # Find l.c.m. of m,n and p
m1 = p_inv*mul_fact; # Clear the first fraction
m2 = q_inv*mul_fact; # Clear the second fraction
m3 = r_inv*mul_fact; # Clear the third fraction
#Result
print "The miller indices of the given planes are : (%d %d %d) "%(m1,m2,m3)
```

In [18]:

```
#Variable declaration
p = 1.2; # First coefficient of intercept along X-axis, angstrom
a = 1.2
b = 1.8
c = 2.0; # Lattice parameters along three axes, angstrom
h = 2.
k = 3.
l = 1.; # Miller indices of lattice plane
#Calculations
# As p:q:r = a/h:b/k:c/l, solving for q and r
q = p*(b/k)/(a/h); # Second coefficient of intercept along X-axis, angstrom
r = p*(c/l)/(a/h); # Third coefficient of intercept along X-axis, angstrom
#Result
print "The lengths of the intercepts on Y and Z axes are %3.1f angstrom and %3.1f angstrom respectively"%(q, r)
```

In [20]:

```
#Variable declaration
M = 58.5; # Molecular weight of NaCl, g-mole
rho = 2.198e+03; # Density of Nacl, kg per metre cube
n = 4; # No. of atoms per unit cell for an fcc lattice of NaCl crystal
NA = 6.023e+26; # Avogadro's No., atoms/k-mol
#Calculations
# Volume of the unit cell is given by
# a^3 = M*n/(N*d)
# Solving for a
a = (n*M/(rho*NA))**(1./3); # Lattice constant of unit cell of NaCl
#Result
print "Lattice constant for the NaCl crystal = %4.2f angstrom"%(a/1e-010)
```

In [21]:

```
#Variable declaration
M = 119; # Molecular weight of KBr, g-mole
rho = 2.7; # Density of KBr, g per cm-cube
n = 4; # No. of atoms per unit cell for an fcc lattice of KBr crystal
NA = 6.023e+23; # Avogadro's No., atoms/mol
#Calculations
# Volume of the unit cell is given by
# a^3 = M*n/(N*d)
# Solving for a
a = (n*M/(rho*NA))**(1./3); # Lattice constant of unit cell of KBr
#Result
print "Lattice constant for the KBr crystal = %4.2f angstrom"%(a/1e-008)
```

In [23]:

```
from math import *
#Variable declaration
M = 63.5; # Molecular weight of Cu, g-mole
rho = 8.96; # Density of Cu, g per cm-cube
n = 4; # No. of atoms per unit cell for an fcc lattice of Cu
NA = 6.023e+23; # Avogadro's No., atoms/mol
#Calculations
# Volume of the unit cell is given by
# a^3 = M*n/(N*d)
# Solving for a
a = (n*M/(rho*NA))**(1./3); # Lattice constant of unit cell of Cu
d = a/sqrt(2); # Distance between the two nearest Cu atoms, angstrom
#Results
print "Lattice constant for the Cu crystal = %4.2f angstrom"%(a/1e-008)
print "The distance between the two nearest Cu atoms = %4.2f angstrom"%(d/1e-008)
```

In [24]:

```
a = 1; # For simplicity assume lattice parameter of cubic crystal to be unity, unit
# For (011) planes
h = 0; k = 1; l = 1; # Miller Indices for planes in a cubic crystal
d_011 = a/(h**2+k**2+l**2)**(1./2); # The interplanar spacing for cubic crystals, m
print "The interplanar spacing between consecutive (011) planes = a/sqrt(%d)"%(1/d_011**2)
# For (101) planes
h = 1; k = 0; l = 1; # Miller Indices for planes in a cubic crystal
d_101 = a/(h**2+k**2+l**2)**(1./2); # The interplanar spacing for cubic crystals, m
print "The interplanar spacing between consecutive (101) planes = a/sqrt(%d)"%(1/d_101**2)
# For (112) planes
h = 1; k = 1; l = 2; # Miller Indices for planes in a cubic crystal
d_112 = a/(h**2+k**2+l**2)**(1./2); # The interplanar spacing for cubic crystals, m
print "The interplanar spacing between consecutive (112) planes = a/sqrt(%d)"%(1/d_112**2) #incorrect answer in textbook
```

In [25]:

```
#Variable declaration
a = 4.2e-010; # Lattice parameter of cubic crystal, m
h = 3; k = 2; l = 1; # Miller Indices for planes in a cubic crystal
#Calculations
d_321 = a/(h**2+k**2+l**2)**(1./2); # The interplanar spacing for cubic crystals, m
#Result
print "The interplanar spacing between consecutive (321) planes = %4.2f angstrom"%(d_321/1e-010)
```

In [27]:

```
from math import *
#Variable declaration
a = 2.5
b = 2.5
c = 1.8; # Lattice parameter of tetragonal crystal, angstrom
h = 1
k = 1
l = 1; # Miller Indices for planes in a tetragonal crystal
#Calculations
d_hkl = 1/sqrt((h/a)**2+(k/b)**2+(l/c)**2); # The interplanar spacing for tetragonal crystals, m
#Result
print "The interplanar spacing between consecutive (111) planes = %4.2f angstrom"%d_hkl
```