====== Projected DOS related method ======
===== Atom-projected DOS =====
get_ados(self, **kwargs)
attempt at maintaining backward compatibility with get_ados
returning data
Now when we call calc.get_ados() it will return settings, and calc.get_ados(atoms=[],...) should return data
get_ados_data(self, atoms, orbitals, cutoff, spin)
get atom projected data
:Parameters:
atoms
list of atom indices (integers)
orbitals
list of strings
['s','p','d'],
['px','py','pz']
['d_zz', 'dxx-yy', 'd_xy', 'd_xz', 'd_yz']
cutoff : string
cutoff radius you want the results for 'short' or 'infinite'
spin
: list of integers
spin you want the results for [0] or [1] or [0,1] for both
returns (egrid, ados)
egrid has the fermi level at 0 eV
set_ados(self, energywindow=(-15, 5), energywidth=0.2, npoints=250, cutoff=1.0)
setup calculation of atom-projected density of states
:Parameters:
energywindow : (float, float)
sets (emin,emax) in eV referenced to the Fermi level
energywidth : float
the gaussian used in smearing
npoints : integer
the number of points to sample the DOS at
cutoff : float
the cutoff radius in angstroms for the integration.
===== Multicentered projected dos =====
get_mdos(self)
return multicentered projected dos parameters
get_mdos_data(self, spin=0, cutoffradius='infinite')
returns data from multicentered projection
returns (mdos, rotmat)
the rotation matrices are retrieved from the text file. I am
not sure what you would do with these, but there was a note
about them in the old documentation so I put the code to
retrieve them here. the syntax for the return value is:
rotmat[atom#][label] returns the rotation matrix for the
center on the atom# for label. I do not not know what the
label refers to.
set_mdos(self, mcenters=None, energywindow=(-15, 5), energywidth=0.2, numberenergypoints=250, cutoffradius=1.0)
Setup multicentered projected DOS.
mcenters
a list of tuples containing (atom#,l,m,weight)
(0,0,0,1.0) specifies (atom 0, l=0, m=0, weight=1.0) an s orbital
on atom 0
(1,1,1,1.0) specifies (atom 1, l=1, m=1, weight=1.0) a p orbital
with m = +1 on atom 0
l=0 s-orbital
l=1 p-orbital
l=2 d-orbital
m in range of ( -l ... 0 ... +l )
The direction cosines for which the spherical harmonics are
set up are using the next different atom in the list
(cyclic) as direction pointer, so the z-direction is chosen
along the direction to this next atom. At the moment the
rotation matrices is only given in the text file, you can
use grep'MUL: Rmatrix' out_o2.txt to get this information.
adapated from old MultiCenterProjectedDOS.py