Prepare GPUMD harmonic phonon-dispersion calculations using `compute_phonon`, `kpoints.in`, and supercell replication. Use when the user needs harmonic phonons, `omega2.out`, `D.out`, phonon DOS, or a GPUMD-based starting point for lattice-dynamics analysis.
Use this subskill for GPUMD harmonic phonon-dispersion, phonon-DOS, and adjacent lattice-dynamics setup.
gpumd < run.in | tee gpumd.log
python -c "import numpy as np; print(np.loadtxt('omega2.out').shape)"
kappa, route to gpumd/transport instead.model.xyz, run.in, and (if needed) kpoints.in yourself.If the user has not yet relaxed the geometry under the same potential, do that
first in the gpumd/md subskill using a small NPT segment followed by
structure extraction, or call an external relaxation tool.
run.inAnnotated minimal example for silicon (see assets/examples/phonon/run.in):
potential Si_Fan_2019.txt
replicate 8 8 8
compute_phonon 5 0.005
potential Si_Fan_2019.txt
replicate 8 8 8
model.xyz. The
supercell must be large enough to contain the physically relevant range of
the interatomic force constants. Increase until the dispersion stops
changing.compute_phonon 5 0.005
5 = cutoff in Å used when collecting pairwise force-constant
contributions.0.005 = finite-displacement amplitude in Å. 0.005-0.01 Å is the
conservative starting range.If a band-structure path is requested, also supply kpoints.in (see below).
kpoints.inEach non-blank line contains three fractional coordinates and one label:
0.000 0.000 0.000 G
0.500 0.000 0.500 X
0.375 0.375 0.750 K
0.000 0.000 0.000 G
0.500 0.500 0.500 L
Use blank lines between path segments that should not be joined.
gpumd < run.in | tee gpumd.log
Primary outputs:
D.out — dynamical matrixomega2.out — squared frequencies along kpoints.inInterpretation:
omega^2 corresponds to imaginary frequenciesDo at least one convergence pass on:
replicate)compute_phonon second argument)compute_phonon first argument)For a vibrational density of states from direct velocity autocorrelation (no
finite displacements), use compute_dos during an NVE run:
potential nep.txt
velocity 300
time_step 1
ensemble npt_ber 300 300 100 0 0 0 100 100 100 1000
run 20000
ensemble nve
compute_dos 5 200 400.0
dump_thermo 100
run 40000
The compute_dos arguments are the VAC sampling interval, the number of time
correlation points, and the maximum frequency in THz. See the GPUMD docs for
the exact current meaning.
0.005-0.01 Å rangegpumd/transportfc2, fc3) and anharmonic transport → outside bare
compute_phonon; point the user to
references/phonon-workflow.md and the
external 25_lattice_dynamics_kappa tutorial.compute_phonon provides
directly, consider the phonopy skill which handles finite-displacement
phonon workflows with force-constant post-processing.Read when needed:
compute_phonon: https://gpumd.org/gpumd/input_parameters/compute_phonon.htmlcompute_dos: https://gpumd.org/gpumd/input_parameters/compute_dos.html06_Silicon_phonon_dispersion02_Carbon_density_of_states