Atomic Vibration Frequency

To follow this tutorial, please download and unzip Example4/ from this link (154 MB).


Although the atomic vibration frequency (\(\nu^*\)) and the attempt frequency (\(\nu\)) are often used interchangeably, they are fundamentally different. The atomic vibration frequency is a result of all phonon modes within the system. In contrast, the attempt frequency is typically associated with a single phonon branch relevant to a specific hopping path. Users should carefully consider which of these values is appropriate for their analysis.

In VacHopPy, the atomic vibration frequency is primarily used to determine the optimal t_interval, which is calculated as \(1/\nu^*\).


How to Calculate the Atomic Vibration Frequency

VacHopPy provides the vibration command to calculate the atomic vibration frequency.

vachoppy vibration  [PATH_TRAJ] [PATH_STRUCTURE] [SYMBOL]

Command Arguments

This command takes the following primary arguments:

  • PATH_TRAJ

    Path to a single HDF5 trajectory file.

  • PATH_STRUCTURE

    Path to a structure file of the perfect, vacancy-free material. While this example uses VASP POSCAR, any format supported by the Atomic Simulation Environment (ASE) is compatible.

  • SYMBOL

    The chemical symbol of the diffusing species (e.g., O for oxygen).

Key Optional Flags

  • --sampling_size

    By default, VacHopPy analyzes only the first 5000 frames of the HDF5 file, as the vibration frequency typically converges quickly within a few thousand frames. If the file contains fewer than 5000 frames, the entire file is used. You can change this behavior by setting a different number with this flag.

  • --no-filter

    High-frequency regions in the analysis can sometimes contain non-physical artifacts. VacHopPy automatically filters these high frequencies using an Interquartile Range (IQR) method. To disable this feature, use the --no-filter flag.


Running the Analysis

Navigate into the Example4/ directory you downloaded. In this directory, you will find two files:

cd path/to/Example4/
ls
# >> POSCAR_TiO2  TRAJ_O_01.h5
  • TRAJ_O_01.h5: The PATH_TRAJ file, containing an MD simulation of a rutile TiO₂ supercell with one oxygen vacancy at 2100 K.

  • POSCAR_TiO2: The PATH_STRUCTURE file, containing the structure of the perfect, vacancy-free rutile TiO₂ supercell.

Execute the following command to run the analysis:

vachoppy vibration TRAJ_O_01.h5 POSCAR_TiO2 O

Understanding the Output

The command prints the calculation results to the terminal and generates two image files (displacement.png and frequency.png) in a new imgs/ directory.

Terminal Output

The terminal first shows progress bars for the analysis, followed by a summary of the results. By default, the high-frequency filter is enabled, and its results are displayed first.

[STEP1] Atomic Vibration Analysis (Using initial 5000 frames):
Compute Displacement: 100%|##############################| 47/47 [00:00<00:00, 49.15it/s]
Capture Vibrations  : 100%|##############################| 5000/5000 [00:03<00:00, 1573.98it/s]
Compute Frequenciy  : 100%|##############################| 47/47 [00:00<00:00, 3609.69it/s]

====================================================
       High-Frequency Filtering Results (IQR)
====================================================
  - Cutoff Frequency              : 32.14 THz
  - Removed Outlier Frequencies   : 74 (out of 7521)
====================================================
       Vibrational Analysis Results Summary
====================================================
  - Mean Vibrational Amplitude (σ) : 0.191 Ang
  - Determined Site Radius (2 x σ) : 0.383 Ang
  - Total Vibrational Frequencies  : 7447 found
  - Mean Vibrational Frequency     : 13.324 THz
====================================================

Images are saved in 'imgs'.

Execution Time: 10.514 seconds
Peak RAM Usage: 0.022 GB

Generated Files

VacHopPy generates two plots to help visualize the results, which are saved in the imgs/ directory.

  • Displacement Distribution

    This plot shows the distribution of atomic displacements from their equilibrium lattice sites.

Displacement Plot
  • Frequency Distribution

    This plot shows the distribution of the calculated atomic vibration frequencies, which are obtained via a Fourier transform of the displacements.

Frequency Plot