This chapter is a map, not a manual. ph.x and neb.x are each a
book-sized topic, so here we only fix when you will need them and where to
start.
ph.x: phonons (DFPT)
Computes dynamical matrices by density-functional perturbation theory. You will need it when:
- Validating structural stability: is the optimized structure a true minimum (no imaginary frequencies)?
- Vibrational spectra, thermodynamic quantities (free energy, entropy),
thermal expansion (with
thermo_pw). - Electron-phonon coupling.
The skeleton of the workflow:
pw.x (scf, very tight conv_thr) → ph.x (&INPUTPH, ldisp=.true., nq grid)
→ q2r.x (real-space force constants) → matdyn.x (dispersion and DOS at any q)
The essentials of &INPUTPH: tr2_ph (response threshold, typically
1.0d-14), ldisp with nq1/nq2/nq3 (the q-grid), epsil (dielectric
tensor, needed for LO-TO splitting in polar insulators), fildyn. The cost
is heavy, so image parallelism (-ni) and start_q/last_q splitting are
standard practice.
Start with PHonon/examples/ and a thoroughly converged structure, as in
Example E6. Phonons on an under-optimized
structure are full of imaginary modes, and those are a symptom of
non-convergence, not physics.
neb.x: reaction paths and barriers
Nudged Elastic Band finds the minimum-energy path and transition state between two structures. It is the central tool for oxidation mechanisms, diffusion barriers, and surface reactions.
Its input format differs from pw.x: path settings (&PATH) and an engine
input (identical to a pw.x input) sit together inside BEGIN/END blocks.
BEGIN
BEGIN_PATH_INPUT
&PATH
string_method = 'neb'
num_of_images = 7
nstep_path = 100
opt_scheme = 'broyden'
CI_scheme = 'auto' ! climbing image: nails the saddle point
path_thr = 0.05 ! eV/Å
/
END_PATH_INPUT
BEGIN_ENGINE_INPUT
&CONTROL
... ! same as a pw.x input
/
BEGIN_POSITIONS
FIRST_IMAGE
ATOMIC_POSITIONS (crystal)
...
LAST_IMAGE
ATOMIC_POSITIONS (crystal)
...
END_POSITIONS
END_ENGINE_INPUT
END
Practical notes:
- Fully optimize both endpoints first, then hand them to NEB.
- Start with an odd number of images (5–9) and parallelize over images with
-ni. - Turn on
CI_scheme='auto'(climbing image) if you care about the barrier height.
The wider map
| Goal | Tool | Notes |
|---|---|---|
| Localized orbitals, d-band analysis | pw2wannier90.x + Wannier90 |
Also used for band interpolation |
| Workflow automation | AiiDA + aiida-quantumespresso, ASE, pymatgen | Effectively mandatory for bulk data generation |
| Finite-temperature thermodynamics | thermo_pw |
Built on ph.x |
| Car-Parrinello MD | cp.x |
A separate code from the BOMD of Chapter 16 |
Building phonons or NEB on top of unconverged settings.
Both methods live off tiny force and energy differences, so any
looseness in the underlying SCF (its conv_thr, cutoffs,
k-points) comes back as imaginary modes or jagged paths. Pass the
program of Chapter 05 first.