Frenkel defects: vacancy-interstitial pairs in silver chloride#

Frenkel (1926) argued that at any \(T>0\) some ions leave their sites for interstitial gaps, because the configurational entropy gained outweighs the enthalpy cost at low concentration. The equilibrium number is \(n_F=\sqrt{NN_i}\exp(-\Delta H_F/2k_BT)\) (frenkel_defect_concentration()). AgCl, where small Ag+ ions readily occupy interstitial sites, is the textbook Frenkel-dominated solid (\(\Delta H_F\approx1.4\) eV).

import matplotlib.pyplot as plt
import numpy as np

from chemistrykit.constants import ELEMENTARY_CHARGE, K_B
from chemistrykit.crystal.systems.defects import frenkel_defect_concentration

N = 2.3e22  # Ag+ sites per cm^3 in AgCl (approximate)
delta_h = 1.4 * ELEMENTARY_CHARGE  # J
T = np.linspace(300.0, 700.0, 200)  # AgCl melts at 728 K

for T_check in (300.0, 500.0, 700.0):
    nf = frenkel_defect_concentration(N, 2.0 * N, delta_h, T_check)
    print(f"T = {T_check:4.0f} K: fraction of Ag+ displaced to interstitials = {nf / N:.2e}")
T =  300 K: fraction of Ag+ displaced to interstitials = 2.46e-12
T =  500 K: fraction of Ag+ displaced to interstitials = 1.24e-07
T =  700 K: fraction of Ag+ displaced to interstitials = 1.29e-05

The Arrhenius slope of ln(n_F) vs 1/T is -Delta H_F / (2 k_B): the factor 2 because the vacancy and the interstitial are created together.

n = frenkel_defect_concentration(N, 2.0 * N, delta_h, T)
slope = np.polyfit(1.0 / T, np.log(n), 1)[0]
print(f"\nfitted slope {slope:.1f} K,  -Delta H_F / 2k_B = {-delta_h / (2.0 * K_B):.1f} K")
assert np.isclose(slope, -delta_h / (2.0 * K_B))
fitted slope -8123.2 K,  -Delta H_F / 2k_B = -8123.2 K
fig, axes = plt.subplots(1, 2, figsize=(11, 4))
for ratio in (0.5, 2.0, 8.0):
    axes[0].semilogy(T, frenkel_defect_concentration(N, ratio * N, delta_h, T) / N, label=f"N_i = {ratio:g} N")
axes[0].set_xlabel("T (K)")
axes[0].set_ylabel(r"$n_F/N$")
axes[0].set_title(r"Frenkel defects: more interstitial sites, more defects ($\propto\sqrt{N_i}$)")
axes[0].legend()
axes[1].plot(1000.0 / T, np.log(n / N))
axes[1].set_xlabel("1000 / T (1/K)")
axes[1].set_ylabel(r"$\ln(n_F/N)$")
axes[1].set_title(r"Arrhenius plot: slope $-\Delta H_F/2k_B$")
plt.tight_layout()
plt.show()
Frenkel defects: more interstitial sites, more defects ($\propto\sqrt{N_i}$), Arrhenius plot: slope $-\Delta H_F/2k_B$

Total running time of the script: (0 minutes 0.116 seconds)

Gallery generated by Sphinx-Gallery