PAOFLOW.phonon.do_phonopy#
phonopy driver entry points for PAOFLOW.
Builds and drives the phonopy.Phonopy object: structure conversion
and object creation (Stage 0), then the finite-displacement harmonic workflow
(Stage 1) – displacement generation, second-order force constants and the
derived dispersion, density of states and thermal properties.
Attributes#
Functions#
|
Create a |
|
Generate symmetry-reduced finite displacements on the phonopy object. |
|
Produce the second-order force constants (fc2) from the force sets. |
|
Attach non-analytical correction (NAC) parameters to the phonopy object. |
|
Derive a high-symmetry q-path (phonopy format) from the QE |
|
Compute the phonon dispersion and write |
|
Compute the total phonon DOS and write |
|
Compute harmonic thermal properties and write |
Module Contents#
- PAOFLOW.phonon.do_phonopy.init_phonopy(data_controller)[source]#
Create a
phonopy.Phonopyobject and store it on the controller.Reads from DataController#
Structure:
alat,a_vectors,tau,atoms(viapaoflow_to_phonopy()). Configuration:phonon_supercell_matrix(required),phonon_primitive_matrix(optional),phonon_displacement_distance(optional).Writes to DataController#
phonopy: thephonopy.Phonopyinstance handle.- returns:
The initialised object (also stored under
arry['phonopy']).- rtype:
phonopy.Phonopy
- PAOFLOW.phonon.do_phonopy.generate_displacements(data_controller)[source]#
Generate symmetry-reduced finite displacements on the phonopy object.
Reads
phonon_displacement_distance(Bohr) from the controller and populatesphonon.supercells_with_displacements.
- PAOFLOW.phonon.do_phonopy.produce_force_constants(data_controller, forces=None)[source]#
Produce the second-order force constants (fc2) from the force sets.
forcesmay be supplied explicitly (array(ndisp, natoms, 3)in Ry/au); otherwise the forces/dataset already attached to the phonopy object (viaPAOFLOW.phonon.io) are used.
- PAOFLOW.phonon.do_phonopy.attach_nac(data_controller, born=None, dielectric=None, born_file=None, factor=None)[source]#
Attach non-analytical correction (NAC) parameters to the phonopy object.
Enables LO-TO splitting near \(\Gamma\) by setting
phonon.nac_params. Once attached, phonopy applies the correction automatically to the dispersion, DOS and thermal properties.- Parameters:
born (array_like, optional) – Born effective charges
(natom_prim, 3, 3)in units of the elementary charge. Required (withdielectric) unlessborn_fileis given.dielectric (array_like, optional) –
(3, 3)high-frequency dielectric tensor.born_file (str, optional) – Path to a phonopy
BORNfile; when supplied it takes precedence and providesborn,dielectricand the unit-conversionfactor.factor (float, optional) – NAC unit-conversion factor. Defaults to the phonopy Quantum ESPRESSO value when building
nac_paramsfrom explicit arrays.
- Returns:
The
nac_paramsdictionary that was attached.- Return type:
- PAOFLOW.phonon.do_phonopy.default_q_path(data_controller)[source]#
Derive a high-symmetry q-path (phonopy format) from the QE
ibrav.Returns
(band_paths, labels)or(None, None)when no ibrav-based path is available (ibravunset/0or an unsupported lattice).
- PAOFLOW.phonon.do_phonopy.compute_phonon_bands(data_controller, q_path=None, q_labels=None, npoints=101, units='THz', fname='phonon')[source]#
Compute the phonon dispersion and write
<fname>_band.dat.When
q_pathisNonea high-symmetry path is derived from the QEibrav(seedefault_q_path()); if that is unavailable the path is generated automatically via seekpath. Otherwiseq_pathis a sequence of path segments in fractional reciprocal coordinates.Writes
<fname>_band.dat(distance + branch frequencies) and, when tick labels are available,<fname>_band.labels(tick distance + label).
- PAOFLOW.phonon.do_phonopy.compute_phonon_dos(data_controller, mesh=None, sigma=None, units='THz', fname='phonon')[source]#
Compute the total phonon DOS and write
<fname>_dos.dat.
- PAOFLOW.phonon.do_phonopy.compute_thermal_properties(data_controller, mesh=None, t_min=0.0, t_max=1000.0, t_step=10.0, fname='phonon')[source]#
Compute harmonic thermal properties and write
<fname>_thermal.dat.Columns: temperature (K), Helmholtz free energy (kJ/mol), entropy (J/K/mol), constant-volume heat capacity (J/K/mol).