In a simple spring, Hooke’s Law states that the force
According to Newton’s second law, the net force
Therefore, we obtain the following differential equation to describe the motion,
Obviously, the general solution is a sin function.
And
Thus, the vibration frequency
Now let's consider a relatively more complex system with a infinite number of identical spring. This model helps in understanding phonons, the quantized vibrations in a lattice, which are critical in thermal and electrical properties of solids.
We’ll consider a chain of identical atoms, each with mass
Let
According to Hooke’s Law, the force on the
Using
Intuitively, we can see that the general solution should behave like some waves
Where:
-
$A$ is the amplitude of the wave. -
$q$ is the wavevector, related to the wavelength of the vibration. -
$\omega$ is the angular frequency of the oscillation. -
$a$ is the distance between neighboring atoms.
Plugging this solution into the equation of motion, we get:
Substitute this into the equation of motion:
Simplifying the right-hand side:
Using the identity e^{iqa} + e^{-iqa} = 2 \cos(qa) , we obtain:
Canceling common terms, we are left with:
Hence, the angular frequency
Using the trigonometric identity
Using
- Dispersion relation. we find the vibrational frequency depends on the wavevector.
- Long Wavelength Limit: For small
$q$ ,$\sin(q a / 2) \approx q a / 2$ , so the frequency becomes approximately linear in$q$ , i.e.,$\omega(q) \propto q$ , which is typical for acoustic phonons. - At the edge of the Brillouin zone, where
$q = \frac{\pi}{a}$ , the frequency reaches its maximum value:
import numpy as np
import matplotlib.pyplot as plt
# Parameters
k = 1.0 # Force constant (N/m)
m = 1.0 # Mass of each atom (kg)
a = 1.0 # Lattice constant (m)
# Function to compute angular frequency omega(q)
def omega_q(q, k, m, a):
return 2 * np.sqrt(k / m) * np.abs(np.sin(q * a / 2))
# Generate q-values in the first Brillouin zone (-pi/a to pi/a)
q_values = np.linspace(-np.pi/a, np.pi/a, 100)
# Compute the corresponding frequencies
omega_values = omega_q(q_values, k, m, a)
# Plot the vibrational frequency vs. wavevector q
plt.figure(figsize=(8, 6))
plt.plot(q_values, omega_values, label=r'$\omega(q)$')
plt.xlabel(r'Wavevector $q$ (1/m)')
plt.ylabel(r'Angular frequency $\omega(q)$ (rad/s)')
plt.title('Vibrational Frequency vs. Wavevector in a 1D Chain')
plt.axhline(0, color='black', lw=0.5)
plt.axvline(0, color='black', lw=0.5)
plt.legend()
plt.grid(True)
plt.show()
In the 1D diatomic chain model, we consider two different types of atoms (A and B) with masses
The displacement of atom A in the
We assume wave-like solutions for the displacements of atoms A and B:
Substituting these into the equations of motion, we get two coupled equations:
Using the identity e^{iqa} + e^{-iqa} = 2 \cos(qa) , we simplify these to:
Substituting these into the equations of motion, we get a system of equations that can be written as a matrix equation:
Moving the mass terms from left to right, we define the dynamical matrix
To find the phonon frequencies, we solve the eigenvalue problem:
Solving this determinant equation gives the dispersion relations for the acoustic and optical phonon modes,
- For the acoustic mode, the atoms move in phase, and the frequency
$\omega(q)$ is small at small$q$ . The dispersion relation is approximately linear for small q :
Where
- For the optical mode, the atoms move out of phase, and the frequency
$\omega(q)$ is larger. The optical phonon mode has a higher frequency because the atoms are oscillating against each other.
import numpy as np
import matplotlib.pyplot as plt
# Parameters
k = 1.0 # Force constant (N/m)
m_A = 1.0 # Mass of atom A (kg)
m_B = 2.0 # Mass of atom B (kg)
a = 1.0 # Lattice constant (m)
# Dispersion relation for the acoustic and optical phonon modes
def phonon_dispersion(q, k, m_A, m_B, a):
term = 2 * k * (1 - np.cos(q * a))
omega_acoustic = np.sqrt(term / (m_A + m_B))
omega_optical = np.sqrt(term * (m_A + m_B) / (m_A * m_B))
return omega_acoustic, omega_optical
# Generate q-values in the first Brillouin zone (-pi/a to pi/a)
q_values = np.linspace(-np.pi/a, np.pi/a, 100)
# Compute the corresponding phonon frequencies
omega_acoustic_values = []
omega_optical_values = []
for q in q_values:
omega_acoustic, omega_optical = phonon_dispersion(q, k, m_A, m_B, a)
omega_acoustic_values.append(omega_acoustic)
omega_optical_values.append(omega_optical)
# Plot the acoustic and optical phonon dispersion relations
plt.figure(figsize=(8, 6))
plt.plot(q_values, omega_acoustic_values, label='Acoustic Mode')
plt.plot(q_values, omega_optical_values, label='Optical Mode')
plt.xlabel(r'Wavevector $q$ (1/m)')
plt.ylabel(r'Angular frequency $\omega(q)$ (rad/s)')
plt.title('Phonon Dispersion Relations in 1D Diatomic Chain')
plt.axhline(0, color='black', lw=0.5)
plt.axvline(0, color='black', lw=0.5)
plt.legend()
plt.grid(True)
plt.show()
The 1D diatomic chain model gives rise to both acoustic and optical phonon modes. In the acoustic mode, atoms oscillate in phase, leading to low-frequency vibrations, while in the optical mode, atoms oscillate out of phase, leading to higher-frequency vibrations. These two phonon branches are a direct consequence of having two different types of atoms in the unit cell, and they play an essential role in the thermal and optical properties of materials.
The dynamical matrix is a key concept in lattice dynamics and phonon theory. It arises in the context of solving the equations of motion for atoms in a crystal lattice, especially when dealing with harmonic vibrations in the lattice, such as in the 1D chain model with two types of atoms (diatomic chain). The dynamical matrix relates the forces on atoms to their displacements and encapsulates the vibrational properties of the system.
To compute phonon dispersions for a realistic 3D crystal, we need to extend the concepts from the 1D chain to a 3D lattice, which involves considering all the interactions between atoms in the crystal unit cell. In a 3D crystal, the phonon dispersion relation tells us how the phonon frequencies (or energies) depend on the wavevector
If there are
- 3 acoustic phonon modes: Low-frequency vibrations where the entire unit cell moves in phase.
- 3$N$ - 3 optical phonon modes: Higher-frequency modes where the atoms in the unit cell vibrate relative to each other.
The dynamical matrix in 3D describes the interaction between all the atoms in the unit cell, taking into account their positions and the interatomic forces. For a crystal with
The dynamical matrix is computed from the force constants
Where:
-
$i$ ,$j$ index the atoms in the unit cell. -
$\alpha$ ,$\beta$ represent the Cartesian components$(x, y, z)$ . -
$m_i$ ,$m_j$ are the masses of atoms$i$ and$j$ . -
$\Phi_{\alpha\beta}^{ij}(\mathbf{R})$ are the force constants between atoms$i$ and$j$ in unit cells separated by the vector$\mathbf{R}$ . -
$\mathbf{q}$ is the wavevector.
This matrix must be diagonalized to obtain the phonon frequencies \omega(\mathbf{q}) for each mode at each wavevector.
Below are the steps to Compute Phonon in a 3D Crystal.
-
Get Atomic Positions: Obtain the positions of atoms in the unit cell and lattice vectors that define the crystal structure.
-
Compute Force constants: These describe the interaction between atoms and can either be obtained from ab initio calculations (using DFT) or from experimental data. The force constants can be represented as a matrix that relates atomic displacements to forces.
-
Construct the Dynamical Matrix. For each wavevector
$\mathbf{q}$ in the Brillouin zone, construct the dynamical matrix$D(\mathbf{q})$ using the force constants. The dynamical matrix will be a$3N \times 3N$ matrix, where$N$ is the number of atoms in the unit cell. -
Diagonalize the Dynamical Matrix. For each wavevector
$\mathbf{q}$ , diagonalize the dynamical matrix$D(\mathbf{q})$ . The eigenvalues of the matrix give the squared frequencies$\omega^2(\mathbf{q})$ , and the eigenvectors describe the polarization vectors (atomic displacements) for the phonon modes. -
Compute the Phonon Dispersion Relation and density of states. Once the phonon frequencies
$\omega(\mathbf{q})$ are computed, plot them as a function of$\mathbf{q}$ along high-symmetry directions in the Brillouin zone. -
Optionally, compute the phonon density of states. To compute the phonon DOS, you must sample the Brillouin zone using a k-point grid or a q-point grid. The finer the grid, the more accurate your calculation will be. The total number of wavevectors sampled is denoted as
$N_q$ .
Where:
-
$\omega_j(\mathbf{q})$ are the phonon frequencies for the$j$ -th mode at wavevector$\mathbf{q}$ . -
$N_q$ is the total number of sampled wavevectors in the Brillouin zone. - The delta function
$\delta(\omega - \omega_j(\mathbf{q}))$ ensures that only the phonon states with frequencies near$\omega$ contribute to the DOS at$\omega$ .