next up previous contents
Next: 3D rendering Up: Files structure and use Previous: Scattering intensity   Contents

Calculation of the partial phonon density of state (PDOS)

PDOS is constructed as a N points histogram, whose frequency coordinates range from zero up to the maximum eigen-frequency of the system. The histogram bins are filled calculating the eigen-frequencies over the Brillouin zone on a $n \times n \times n$ grid. Symmetries are used to reduce the number of needed calculations. To get the partial DOS for a given site group, the contributions are weighted when added on a particular bin. The weight is calculated as the modulus square of the eigenvector projection over the considered degrees of freedom.

The calculation of the frequencies in all the point of the grid is performed running the program generapuntiDeb.py:

openphonon generapuntiDeb.py parinput cella generapuntiinp

where the files parinput and cella are the same of section 4.1, and the file generapuntiinp is a file as generapuntiDebinput in the examples directory, with the following structure:

IS_IT_SCREENED=1
Kcellrange=[8,8,2]
sigmacellrange=[8,8,2]
cellrange= [-1,-1,-1]


debyerange=[8,8,2]
SMcellrange=[2,2,2]
astar=2*math.pi/3.95
kdebye=astar/4

eps=0.001


Nsampling=21

Qall=Numeric.array( [ Numeric.array([0.00001,0,0]) +  qx*cella.Brillvectors[0]*0.5/(Nsampling-1)
                      + qy*cella.Brillvectors[1]*0.5/(Nsampling-1) + qz*cella.Brillvectors[2]*0.5/(Nsampling-1)
                      for  qx in range(0,Nsampling)
                      for  qy in range(0 , Nsampling)
                      for  qz in range(0,Nsampling)
                      ] )


thetasym=45

bdx=math.cos(thetasym*math.pi/180.)
bdy=math.sin(thetasym*math.pi/180.)

basedomain=Numeric.array([ bdx, bdy   ,1])
domains=Numeric.array( [
                           [ bdx, bdy   ,1],
.............................
.............................
.............................

where Nsampling correspond to the grid density $n$.

Subsequently, the number of state per bin is calculated by running the program pa_dos.py:

openphonon pa_dos.py storeall Number_of_histograms

where storeall is the one created by generapuntiDeb.py, and Number_of_histograms = N as described above.


next up previous contents
Next: 3D rendering Up: Files structure and use Previous: Scattering intensity   Contents
Alessandro Mirone 2003-11-17