atom_projected_phDOS_over_mesh_adv
esta.phononBag.atom_projected_phDOS_over_mesh_adv
¶
Given the freq and eigenvectors, find the phonon density of states for specific group of atoms
calculate the phonon density of states using the following expression:
The Initial formula as suggested Andrey postnikov Prb paper : PHYSICAL REVIEW B 71, 115206 2005; eq 4
egin{align} I_g(\omega, extbf{q}) = \sum_{j} \sum_{k \in g} ig | extbf{U}^{j}{k} (\omega_j) e^{ i extbf{qR}lpha } ig |^{2} \delta(\omega -\omega_j) \label{phdos} \end{align}
where, $ extbf{U}^{j}_{k}$ is the phonon eigenvector for atom k in eigen state \(j\) having frequency \(\omega_j\). For zone centre phonons, the exponetial term is unity. This expression can be viewed as a kind of spectral function, which shows how different atoms contribute to the vibrational patterns of a Raman active modes.
The second formula as suggested in ALAMODE website .. remove the exponetial part and sum over qj (qpt and band index)
atom projected dos:
\mathrm{PDOS}(\kappa;\omega) = rac{1}{N_{q}}\sum_{oldsymbol{q},j}|oldsymbol{e}(\kappa;oldsymbol{q}j)|^{2}\delta(\omega - \omega_{oldsymbol{q}j}).
dos:
\mathrm{DOS}(\omega) = rac{1}{N_{q}}\sum_{oldsymbol{q},j}\delta(\omega - \omega_{oldsymbol{q}j}).
and 2phonon DOS:
\mathrm{DOS2}(\omega;oldsymbol{q};\pm) = rac{1}{N_{q}}\sum_{oldsymbol{q}{1},oldsymbol{q} \delta(\omega\pm\omega_{oldsymbol{q}}, j_{1}, j_{2}{1}j}}-\omega_{oldsymbol{q{2}j}})\delta_{oldsymbol{q}\pmoldsymbol{q{1},oldsymbol{q},}+oldsymbol{G}
Atomic participation ratio:
APR_{oldsymbol{q}j,\kappa} = rac{|oldsymbol{e}(\kappa;oldsymbol{q}j)|^{2}}{M_{\kappa}} \Bigg/ \left( N_{\kappa} \sum_{\kappa}^{N_{\kappa}} rac{|oldsymbol{e}(\kappa;oldsymbol{q}j)|{4}}{M_{\kappa} ight)^{½} Participation ratio (PR) and atomic participation ratio (APR) defined in the following may be useful to analyze the localized nature of the phonon mode qj. see: }https://alamode.readthedocs.io/en/latest/anphondir/formalism_anphon.html#phonon-dos
Note use the tetrahedron methodo for BZ integration: see http://home.ustc.edu.cn/~zqj/posts/LinearTetrahedronMethod/
or use libTetraBZ ; install the library in python ... available.. https://pypi.org/project/libtetrabz/ see https://journals.aps.org/prb/abstract/10.1103/PhysRevB.89.094515 https://libtetrabz.osdn.jp/python/api.html#partial-density-of-states also see /home/sonu/Downloads/libtetrabz_tutorial.ipynb
or : https://github.com/tflovorn/tetra/tree/master/tetra
get_phdos(freq, evect, sigma=None, atoms_list=None, prefix_ofile=None)
¶
phdos over a single qpt gamma point
get_phdos_gamma(freq, evect, sigma=None, atoms_list=None, prefix_ofile=None)
¶
phdos over a single qpt (gamma point)
Parameters:
-
freq
– -
evect
–array of rank3 - (n,nat,3) n is eigen state index, nat is atom index
-
sigma
–broadening parameter for delta function
-
atoms_list
–a list of atoms indices for which phdos is to be calculated (optional). numbering of atoms starts from 1
-
prefix_ofile
–name of the output file containg freq and integrated phdos
get_phdos_mesh(freq, evect, sigma=None, atoms_list=None, prefix_ofile=None, freq_cutoff=None, lgauss_smear=False)
¶
phdos over a mesh of qpts
Parameters:
-
freq
–freq array of shape (nqpts, natoms*3)
-
evect
–array of rank5 - (qindex, bandindex,nat,3,2) qindex and bandindex form the eigen state index, nat is atom index
-
sigma
–broadening parameter for delta function
-
atoms_list
–a list of atoms indices for which phdos is to be calculated (optional). numbering of atoms starts from 1
-
prefix_ofile
–name of the output file containg freq and integrated phdos
-
freq_cutoff
–ignore phodos below the freq_cutoff
return
data file with name prefix_ofile with .dat containing the phdos
plot_data_using_plotly()
¶
plot data in *.dat files using plotly