# Given
A = 8.0*10**-77 # in J m**6
B = 1.12*10**-133 # in J m**12
# lennard-Jones 6-12 potential Energy (PE)curve is E(r)=-A*r**-6+B*r**-12
# For bonding to occur PE should be minimum, hence differentiating the PE equation and setting it to Zero at r=ro we get
# Calculations and Results
ro = (2.0*B/A)**(1.0/6)
print("Bond length in meters is {0:.5g}".format(ro))
E_bond = -A*ro**-6+(B*ro**-12) # in J
E_bond = abs(E_bond/(1.6*10**-19))
print("Bond Energy for solid argon in ev is {0:.4f}".format(E_bond))
import math
# Given
R = 8.314 # in J/mol/K
T = 27.0 # in degree celcius
T += 273.0 # in Kelvin
M_at = 14.0 # in g/mol
# From Kinetic Theory
# Calculations and Results
V_rms = math.sqrt((3.0*R*T)/(2.0*M_at*10**-3))
print("rms velocity of Nitrogen molecule in atmosphere at 300K in m/s is {0:.4f}".format(V_rms))
V_rmsx = V_rms/math.sqrt(3.0)
print("rms velocity in one direction in m/s is {0:.4f}".format(V_rmsx))
# Given
R = 8.314 # in J/mol/K
M_at = 63.6 # in g/mol
# Acc. to Dulong -Petit rule Cm=3R for NA atoms
# Calculations and Results
C_gram = 3.0*R/M_at
print("Heat Capacity of copper per unit gram in J/g/K is {0:.4f}".format(C_gram))
import math
# Given
k = 1.38*10**-23 # in J/K
m = 9.1*10**-31 # in Kg
T = 300.0 # in Kelvin
# Calculations and Results
v_av = math.sqrt(8.0*k*T/(math.pi*m))
print("Mean speed for a gas of non interacting electrons in Km is {0:.4f}".format(v_av*10**-3))
v = math.sqrt(2.0*k*T/m)
print("Most probable speed for a gas of non interacting electrons in Km is {0:.4f}".format(v*10**-3))
v_rms = math.sqrt(3.0*k*T/m)
print("rms velocity for a gas of non interacting electrons in Km is {0:.4f}".format(v_rms*10**-3))
import math
# Given
L = 100*10**-6 # in Henry
C = 100*10**-12 # in Farad
T = 300.0 # in Kelvin
R = 200*10**3 # in ohms
k = 1.38*10**-23 # in J/K
# Calculations and Results
fo = 1.0/(2.0*math.pi*math.sqrt(L*C)) # resonant frequency
Q = 2.0*math.pi*fo*C*R # quality factor
B = fo/Q # Bandwidth of tuned RLC
# Acc. to Johnson resistor noise equation
Vrms = math.sqrt(4*k*T*R*B) # in volts
Vrms /= 10**-6 # in micro volts
print("Minimum rms radio signal that can be detected in micro volts is {0:.4f}".format(Vrms))
import math
# Given
n = 4.0
M_at = 63.55*10**-3 # Kg/mol
NA = 6.022*10**23 # mol**-1
R = 0.128 # in nm
c = 8.0 # no.of corners of unit cells
f = 6.0 # no.of faces of unit cells
# Calculations and Results
# a
N = c*(1.0/8)+f*(1.0/2)
print("No. of atoms per unit cells is {0:.4f}".format(N))
# b
# Lattice parameter
a = R*2*2**(1.0/2)
print("Lattice Parameter in nm is {0:.4f}".format(a))
a *= 10**-9 # in m
# c
# APF=(No.of atoms in unit cell)*(Vol. of atom)/(Vol. of unit cell)
APF = 4**2*math.pi/(3*(2*math.sqrt(2.0))**3)
print("Atomic Packing Factor is {0:.4f}".format(APF))
# d
p = n*M_at/(a**3*NA) # density
print("density of Copper in Kg/m3 is {0:.4f}".format(p))
import math
# lcm function
def lcm(*args):
return cal_lcm(args[0][0], cal_lcm(args[0][1], args[0][2]))
def cal_lcm(x, y):
if x > y:
greater = x
else:
greater = y
while True:
if(greater % x == 0) and (greater % y == 0):
result = greater
break
greater += 1
return result
# Given
a = 1.0/float("inf")
b = -1.0/1
c = 2.0/1
p = (1.0, 1.0, 1.0)
# 1/%inf = 0 ; (0/1 -1/1 2/1) hence lcm is taken for [1 1 1]
# Calculations and Results
LCM = lcm(p)
h = a*float(LCM)
k = b*float(LCM)
l = c*float(LCM)
print("miller indices = {0:.4f} {1:.4f} {2:.4f}".format(h, k, l))
import math
# Given
k = 1.38*10**-23 # J/K
T = 300.0 # kelvin
Ev = 0.75 # eV/atom
Ev = Ev*1.6*10**-19 # in J
T1 = 660.0 # degree celcius
T1 += 273.0 # in kelvin
# at room temperature
# let nv/N=nv_N for convenience
# Calculations and Results
nv_N = math.exp(-Ev/(k*T))
print("Fractional concentration of vacancies in the aluminium crystal at room temperature is {0:.4g}".format(nv_N))
# at melting temperature
# let nv/N=nv_N for convenience
nv_N = math.exp(-Ev/(k*T1))
print("Fractional concentration of vacancies in the aluminium crystal at melting temperature is {0:.4g}".format(nv_N))
import math
# Given
NA = 6.023*10**23 # mol**-1
d = 2.33 # density of Si in g/cm3
Mat = 28.09 # g/mol
Ev = 2.4 # ev/atom
Ev = 2.4*1.6*10**-19 # J/atom
k = 1.38*10**-23 # J/K
T = 300.0 # kelvin
T1 = 1000.0 # degree celsius
T1 += 273.0 # in kelvin
# Calculations and Results
N = (NA*d)/Mat
# at room temperature
nv = N*math.exp(-(Ev/(k*T)))
print("concentration of vacancies in a Si crystal at room temperature in cm**-3 is {0:.4g}".format(nv))
# at 1000 degree celsius
nv = N*math.exp(-(Ev/(k*T1)))
print("concentration of vacancies in a Si crystal at 1000 degree celsius in cm**-3 is {0:.4g}".format(nv))
# Given
# from fig 7.1
# at 210 degree celsius
print("At 210 degree celsius")
C_L = 50.0 # CL=50% Sn
C_alpha = 18.0 # C_alpha=18% Sn
Co = 40.0 # solidification of alloy
# Calculations and Results
# lever rule
W_alpha = (C_L-Co)/(C_L-C_alpha)
print("weight fraction of alpha in the alloy is {0:.4f}".format(W_alpha*100))
W_L = 1-W_alpha
print("weight fraction of liquid phase in the alloy is {0:.4f}".format(W_L*100))
# Given
# at 183.5 degree celsius
print("At 183.5 degree celsius")
C_L = 61.9 # CL=50% Sn
C_alpha = 19.2 # C_alpha=18% Sn
Co = 40.0 # solidification of alloy
# Calculation and Results
# lever rule
W_alpha = (C_L-Co)/(C_L-C_alpha)
print("weight fraction of alpha in the alloy is {0:.4f}".format(W_alpha*100))
W_L = 1-W_alpha
print("weight fraction of liquid phase in the alloy is {0:.4f}".format(W_L*100))
# Given
# at 182.5 degree celsius
print("At 182.5 degree celsius")
C_beta = 97.5 # CL=50% Sn
C_alpha = 19.2 # C_alpha=18% Sn
Co = 40.0 # solidification of alloy
# Calculations and Results
# lever rule
W_alpha = (C_beta-Co)/(C_beta-C_alpha)
print("weight fraction of alpha in the alloy is {0:.4f}".format(W_alpha*100))
W_beta = 1-W_alpha
print("weight fraction of beta phase in the alloy is {0:.4f}".format(W_beta*100))