Skip to content

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