PAOFLOW.elphon.displacements#
Symmetry-reduced displacement bookkeeping for the finite-difference e-phonon.
dV_{kappa,alpha} = dH/du_{kappa,alpha} is obtained by finite-differencing the
PAO Hamiltonian. The displacement set is reduced by the crystal symmetry,
exactly as in the harmonic-phonon workflow: we delegate to phonopy’s
generate_displacements so only the symmetry-inequivalent displacements are
computed (e.g. a single displacement for fcc metals such as Al), and the full
derivative tensor is reconstructed from them by symmetry.
Attributes#
Functions#
|
Supercell atom indices of the reference primitive-cell atoms (p2s_map). |
|
Finite displacements for the electron-phonon derivative. |
Module Contents#
- PAOFLOW.elphon.displacements.reference_supercell_atoms(phonon)[source]#
Supercell atom indices of the reference primitive-cell atoms (p2s_map).
- PAOFLOW.elphon.displacements.generate_eph_displacements(phonon, distance, is_plusminus='auto', displacement_mode='symmetry')[source]#
Finite displacements for the electron-phonon derivative.
Two modes are available:
displacement_mode='symmetry'(default): delegate tophonopy.Phonopy.generate_displacements(), so the crystal symmetry reduces the set to the inequivalent displacements (a single one for fcc Al). The full Cartesian tensor is then reconstructed by the symmetry expansion.is_plusminus='auto'adds the minus displacement only when it is not symmetry-related to the plus;Truealways adds it.displacement_mode='cartesian': displace every reference primitive-cell atom explicitly along x, y and z (is_plusminus=True-> central+/-pairs, otherwise a single+per axis with a forward difference against the reference). This yields the full Cartesian derivative directly, with no symmetry expansion, at the cost of more DFT runs.
- Parameters:
phonon (phonopy.Phonopy) – Initialised object (
phonon.supercell/phonon.primitiveset).distance (float) – Displacement amplitude in Bohr.
is_plusminus ({'auto', True, False}) – Central-difference control (see above).
displacement_mode ({'symmetry', 'cartesian'}) – Displacement generation strategy.
- Returns:
cells (list[phonopy.structure.atoms.PhonopyAtoms]) – The displaced supercells.
meta (list[dict]) – One entry per cell:
{index, sc_atom, displacement:[dx, dy, dz], distance}with the Cartesian displacement vector (Bohr).