phq: Temperature Dependent Phonon Quasiparticle Dispersions of Complex Crystals from First Principles
[TOC]
This repo is created by Zhen Zhang. The associated paper is here. The program files DOI is: http://dx.doi.org/10.17632/sk4jsjc6p9.1.
The phq program can be installed on Linux, macOS and Windows systems by gfortran, ifort or other fortran compilers. ifort is recommended for faster running speed and smaller memory requirement. The source codes are in the src folder and the makefiles are in the system folder. Simply copy one of the suitable makefiles from system folder and paste it in the src folder and rename it as makefile. Run:
$ makeThe phq executable file is compiled.
The source codes work as following:
-
configure.f90contains 3 auxiliary modules, which configure the physical quantities, parameters and text readin settings. -
main.f90the main module, which performs the normal mode projection and anharmonic phonon extraction and so forth. -
phq.f90runs the program and records the running time.
There are 4 input files needed, which can be prepared according to the example provided:
-
inputgeneral controlling and settings. Parameters:dtMD time step in atomic unit.step_md_usenumber of MD steps needed for the calculation of mode-projected VAFs.correlation_timedesired decay time for VAFs in unit ofdtwhich should be less than thestep_md_use.poleparameter used in the maximum entropy method to filter high frequency components which should be less than thestep_md_use.supercellsize of the supercell.temperatureMD simulation temperature.methodchoose renormalized frequencies by which method when building the effective harmonic dynamical matrices:0represents the fitting approach.1represents the FT.2represents the MEM. Ifmethodis not specified or integers other than1and2are entered, the fitting approach will be used, which is the default method. -
scf.outstructure information of the primitive cell from self-consistent calculation. Parameters:ntypenumber of elements.natomnumber of atoms.massatomic mass of each element following the symbol of the element.lattice_parameterscale of lattice vectors in unit of Bohr radius.cell_parameterslattice vectors in cartesian cooradinates in unit oflattice_parameter.atomic_positionsatomic positions of atoms in reduced coordinates following the symbol of element. -
dyn.outharmonic phonon results from Quantum ESPRESSO ph.x output. Parameters:qq-point in cartesian coordinates in unit of 2$\pi$/lattice_parameter.They are required as program input.freqharmonic phonon frequencies. They are required as program input as well as the following six columns of eigenvectors. Eigenvector of each atom has x, y and z components and each component has a real part and an imaginary part. The order of atoms should be the same as that of the atoms entered inatomic_positionsinscf.out.Dynamical Matrixdynamical matrices, which are not required as program input if other program is used.Dielectric Tensorwhether this is needed depends on whether LO-TO splitting needs to be considered in the system.Effective Chargeswhether they are needed depends on whether LO-TO splitting needs to be considered in the system. -
md.outMD information. Parameters:total_steptotal actual MD steps. In practice, recorded MD steps should be configurations after reaching thermal equilibrium and less than this number.atomic_positionsinitial atomic positions in reduced coordinates of the supercell lattice vectors.md_steprecorded MD steps, followed by the instantaneousatomic_md_positionsin the MD simulation.atomic_md_positionsatomic positions in the MD simulation in reduced coordinates of the supercell lattice vectors. Atoms in each one of the primitive cell should be together instead of atoms of the same element being together, and the order of atoms in each of the primitive cell should be in the same order as provided inscf.out.
After putting the phq executable in the same folder with the input files, run:
$ ./phq < inputThe main output files of phq are as following:
corr.vafvelocity autocorrelation functions of each normal mode .corr_fit.vaffitted curves of correlation functions according to phonon quasiparticle and anharmonic perturbation theory.corr_fourier.vafFourier transformation of correlation functions.frequency.freqharmonic, fitted renormalized, Fourier transformed renormalized and maximum entropy method renormalized phonon frequencies.tau_fit.taufitted phonon quasiparticles' lifetime.vector_q.outeigenvectors of the primitive cell.vector.outeigenvectors of the supercell.harmonic_matrix.matharmonic force constants.gamma_matrix.mateffective harmonic force constant matrix.dynamical_matrix_md.mateffective harmonic dynamical matrices.dynmatmdrenormalized phonon information with the same format ofph.xexecutable's output in the Quantum ESPRESSO suite. All post processing can be started from here.
The output dynmatmd files from phq can be read in by the q2r.x executable in the Quantum ESPRESSO suite. Effective harmonic force constants, renormalized phonon dispersions, anharmonic entropy and free energy can be obtained from q2r.x output. If other Fourier interpolation program is used, either use the effective harmonic dynamical matrices file dynamical_matrix_md.mat or use the effective harmonic force constant matrix file gamma_matrix.mat to fit the format.
There is an example of diamond silicon in the example folder. Postprocessing files are also in the silicon example folder.