目次

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