PHONON task computes lattice dynamics properties by combining the finite-displacement method (implemented by phonopy) with a force evaluation back-end provided by any ASE calculator.
Given an input structure, the task:
- Constructs a supercell and generates symmetry-inequivalent displaced configurations.
- Evaluates forces on each displaced supercell using the supplied calculator.
- Assembles force constants and runs phonopy’s post-processing pipeline to produce the phonon band structure, total DOS, and thermal properties.
Prerequisites
phonopy must be installed separately:PHONON will not be available.
Function signature
Parameters
ase.Atoms
required
Primitive (or conventional) unit cell. The structure is passed as-is to phonopy; ensure it is fully relaxed before running PHONON.
ase.calculators.calculator.BaseCalculator
required
Calculator used to evaluate forces on each displaced supercell.
list[int] | None
default:"None"
Supercell expansion matrix passed directly to
Phonopy. Typically a 3-element list [nx, ny, nz] for a diagonal matrix, or a 3×3 list. If None, min_lengths is used to determine the matrix.float | tuple[float, float, float] | None
default:"None"
Minimum supercell lengths in Å along each axis. A diagonal supercell matrix is computed such that all supercell lengths exceed
min_lengths. Ignored if supercell_matrix is provided.number
default:"1e-5"
Symmetry precision in Å passed to phonopy for space-group determination.
number
default:"0.01"
Atomic displacement distance in Å used to generate finite-difference configurations.
dict
default:"{}"
Additional keyword arguments forwarded to the
Phonopy constructor.boolean
default:"false"
If
True, symmetrizes the computed force constants using both symmetrize_force_constants() and symmetrize_force_constants_by_space_group().number
default:"0.0"
Minimum temperature in K for thermal property calculations.
number
default:"1000.0"
Maximum temperature in K for thermal property calculations.
number
default:"10.0"
Temperature step in K for thermal property calculations.
str | None
default:"None"
If provided, writes
band.yaml and phonopy.yaml (with force constants) to this directory.Return value
You can access results via the standard phonopy API:
Example
1
Relax the structure first
Always run structure optimization before computing phonons to avoid imaginary modes from residual forces.
2
Run PHONON
3
Inspect results