DFTPhononMaker

Contents

DFTPhononMaker#

class autoplex.data.phonons.flows.DFTPhononMaker(name='dft phonon', sym_reduce=True, symprec=0.0001, displacement=0.01, min_length=20.0, max_length=30.0, prefer_90_degrees=True, allow_orthorhombic=False, get_supercell_size_kwargs=<factory>, use_symmetrized_structure=None, bulk_relax_maker=<factory>, static_energy_maker=<factory>, born_maker=<factory>, phonon_displacement_maker=<factory>, create_thermal_displacements=False, generate_frequencies_eigenvectors_kwargs=<factory>, kpath_scheme='seekpath', code='vasp', store_force_constants=False, socket=False)[source]#

Bases: PhononMaker

Adapted PhononMaker to calculate harmonic phonons with VASP and Phonopy.

The input set used is same as PhononMaker from atomate2. Only difference is Spin polarization is switched off and Gaussian smearing is used

Parameters:
  • name (str = "phonon") – Name of the flows produced by this maker.

  • sym_reduce (bool = True) – Whether to reduce the number of deformations using symmetry.

  • symprec (float = 1e-4) – Symmetry precision to use in the reduction of symmetry to find the primitive/conventional cell (use_primitive_standard_structure, use_conventional_standard_structure) and to handle all symmetry-related tasks in phonopy

  • displacement (float = 0.01) – displacement distance for phonons

  • min_length (float = 20.0) – min length of the supercell that will be built

  • prefer_90_degrees (bool = True) – if set to True, supercell algorithm will first try to find a supercell with 3 90 degree angles

  • get_supercell_size_kwargs (dict = {}) – kwargs that will be passed to get_supercell_size to determine supercell size

  • use_symmetrized_structure (str or None = None) –

    allowed strings: “primitive”, “conventional”, None

    • ”primitive” will enforce to start the phonon computation from the primitive standard structure according to Setyawan, W., & Curtarolo, S. (2010). High-throughput electronic band structure calculations: Challenges and tools. Computational Materials Science, 49(2), 299-312. doi:10.1016/j.commatsci.2010.05.010. This makes it possible to use certain k-path definitions with this workflow. Otherwise, we must rely on seekpath

    • ”conventional” will enforce to start the phonon computation from the conventional standard structure according to Setyawan, W., & Curtarolo, S. (2010). High-throughput electronic band structure calculations: Challenges and tools. Computational Materials Science, 49(2), 299-312. doi:10.1016/j.commatsci.2010.05.010. We will however use seekpath and primitive structures as determined by from phonopy to compute the phonon band structure

  • bulk_relax_maker (.BaseVaspMaker or None) – A maker to perform a tight relaxation on the bulk. Set to None to skip the bulk relaxation

  • static_energy_maker (.BaseVaspMaker or None) – A maker to perform the computation of the DFT energy on the bulk. Set to None to skip the static energy computation

  • born_maker (.BaseVaspMaker or None) – Maker to compute the BORN charges.

  • phonon_displacement_maker (.BaseVaspMaker or None) – Maker used to compute the forces for a supercell.

  • generate_frequencies_eigenvectors_kwargs (dict) – Keyword arguments passed to generate_frequencies_eigenvectors.

  • create_thermal_displacements (bool) – Arg that determines if thermal_displacement_matrices are computed

  • kpath_scheme (str = "seekpath") – scheme to generate kpoints. Please be aware that you can only use seekpath with any kind of cell Otherwise, please use the standard primitive structure Available schemes are: “seekpath”, “hinuma”, “setyawan_curtarolo”, “latimer_munro”. “seekpath” and “hinuma” are the same definition but seekpath can be used with any kind of unit cell as it relies on phonopy to handle the relationship to the primitive cell and not pymatgen

  • code (str = "vasp") – determines the DFT code. currently only vasp is implemented. This keyword might enable the implementation of other codes in the future

  • store_force_constants (bool) – if True, force constants will be stored

  • max_length (float | None) –

  • allow_orthorhombic (bool) –

  • socket (bool) –