Walkthrough for the ab-initio phonons tutorial at TDEP 2023 (Linkoping, Sweden). This walkthrough covers your "every-day" finite-displacement harmonic phonon calculation, which can be split into the following steps:
- Relax unit cell (see folder
CdTe_relax
) - Build supercell and generate displacements (e.g.
phonopy -d --dim="2 2 2" --aims
) - Calculate forces (see folder
CdTe_harmonic_phonons
) - Extract forces (e.g.
phonopy -f phonopy-FHI-aims-displacement-{001..004}/aims.out
) - Calculate born effective charges and dielectric constant if required (see folder
CdTe_born
) - Use the forces to build dynamical matrix and calculate property(s) of interest (e.g.
phonopy -p -s band.conf
)
One of the strengths of the finite displacement method is that it is modular - so we can use various methods and tools for calculating the forces or post-processing results. In this case we use:
- phonopy to generate the supercell, build and post-process the force-constant tensor.
- Density Functional Theory to calculate
- (i) equilibrium lattice parameters at 0T;
- (ii) forces after atomic displacements;
- (iii) born effective charges;
- (iv) dielectric tensors.
We give example input and output files for two popular electronic structure codes: vasp and fhi-aims. For licensing reasons the POTCAR
files required for Vasp calculations cannot be provided. The input files INCAR
(vasp) and control.in
(fhi-aims) provide a justification for the various calculation parameters used.
We also provide example input and output for fhi-vibes, which automates much of the process by combining many of the steps above into a single workflow.
light
basis sets have been used for fhi-aims calculations, whilst tight
are usually required for production-level results. You should always converge calculation parameters (e.g. basis set, k-point sampling, supercell expansion) for your specific material and property of interest.
tutorial_clean
: You can follow along with each step of the walkthrough video using the input files in this folder. Due to time constraints we do not calculate the born effective charges or dielectric tensor, but use a pre-calculated BORN
file. You will need ASE, phonopy and fhi-aims installed on your system. The conda dependencies can be found in environment.yml
. We use mpi to run each calculation with 6 processes.
For those who may not be able to run the electronic structure calculations we provide the input and output files for each job. You can then post-process these using phonopy. Input and output files are provided for the born effective charge and dielectric calculations.
CdTe_relax
(Step 2) : Input and output file for unit cell relaxation.
CdTe_harmonic_phonons
(Step 3): Input and output files to calculate the forces required for harmonic phonons with finite displacement method.
CdTe_born
(Step 5): Input and output for calculating Born effective charges. This required for the non-analytical charge correction. For more information about calculating Born effective charges with fhi-aims please see this tutorial.
CdTe_dielectric
(Step 5): Input and output files to calculate the "ion-clamped" high-frequency dielectric tensor
Note: for vasp the Born effective charges and high-frequency dielectric tensor are extracted from a single calculation.
CdTe_harmonic_vibes
(FHI-aims only): Input and output files for calculating a phonon dispersion using fhi-vibes, which combines many of the steps above into a single workflow.
band.conf
: Phonopy configuration file for producing phonon dispersion (Step 6)
mesh.conf
: Phonopy configuration file for producing phonon density of states and thermal properties (Step 6)
preprocessing_phonopy_aims.py
: setting up multiple folders for force calculations
run_multiple_jobs_aims.sh
: run multiple fhi-aims jobs in separate folders