[Pw_forum] The output of d3x

Lorenzo Paulatto Lorenzo.Paulatto at impmc.upmc.fr
Wed Feb 8 23:48:29 CET 2012

Dear Hua Bao,
you can understand the meaning of the several fields from the loop that  
actually writes those files, in write_d3dyn.f90:

   do i = 1, 3 * nat
      if (wrmode (i) ) then
         write (iudyn, '(/,12x,"modo:",i5,/)') i
         nc = (i - 1) / 3 + 1
         kcar = i - 3 * (nc - 1)
         do na = 1, nat
            do nb = 1, nat
               write (iudyn, '(2i3)') na, nb
               do icar = 1, 3
                  write (iudyn, '(3e24.12)') (phi (kcar, icar, jcar, nc,  
na, nb) &
                       , jcar = 1, 3)


phi has 6 indexes that correspond to the modes (cartesian index + atomic  
index) of the 3 phonons involved in the process. I.e. phi(1,2,3, 5,6,7)  
corresponds to (atom5_x, atom6_y, atom7_z)

Keep in mind that when doing a calculation with d3.x at q the first phonon  
corresponds to the Gamma point, the second to -q and the third to q.

More specifically, inside the file, the index that follows "modo:" is the  
mode for Gamma (modo is just italian for mode), it is composite  
cartesian+atom, ie. 1=atom1_x, 2=atom1_y, 3=atom1_z, 4=atom2_x, ...

Then, the 2 isolated integers ("1  1" in your examples) are the indexes of  
the atoms for the second and third mode.

Finally, the 3x3 matrix of *complex* numbers follows. Every *two* lines  
the second cartesian index increments by one.

While the the third index increases by one every couple of numbers (each  
are the real and imaginary part of one element). Yes, the second one has  
the real part in a line and the imaginary in the next...

It sounds a bit complicated, but it is only complicated to explain in  
text. If you study the code for a few minutes it should be clear.


On Wed, 08 Feb 2012 22:56:48 +0100, Hua Bao <dorabman at gmail.com> wrote:

> Dear All,
> I am working on the anharmonic force constant calculation following  
> example
> 14.
> Since there is not much description of the output format (let me know if  
> I
> am wrong), I have to guess what the parameters are.
> Based on Debernardi's thesis and the discussions,
> I guess the code calculates  C(0,q,-q), but this quantity is also a
> function of p, p', p'', which are the components of atomic displacements.
> I have read the code a little bit. The d3 matrix is stored in the  
> quantity
> phi, which is a function of atom index and direction index( i guess?).
> However, I could not understand the output format as follows
>    modo:    1
>   1  1
>      -0.138777878078E-15      0.000000000000E+00     -0.832667268469E-16
>       0.000000000000E+00     -0.277555756156E-16      0.000000000000E+00
>      -0.416333634234E-16      0.000000000000E+00      0.832667268469E-16
>       0.000000000000E+00      0.383064069101E+00      0.000000000000E+00
>      -0.111022302463E-15      0.000000000000E+00      0.383064069101E+00
>       0.000000000000E+00     -0.277555756156E-16      0.000000000000E+0
> I cannot understand "modo" and (1,1).
> I suspect (1 1) means atom index, but there are p, p', p''. Which two  
> (1,1)
> stands for?
> Also, in the README file. It shows something like C_{x,y,z}  
> (0,0,0|1,1,1).
> I can understand (0,0,0) are the three q-points, but what does this 1,1,1
> stands for? It does not look like phonon branch index or atom index.
> I have been struggling on this for quite some time. I really appreciate  
> if
> anyone can help me to clarify this issue.
> Thanks,
> Hua

Lorenzo Paulatto IdR @ IMPMC/UPMC CNRS & Université Paris 6
phone: +33 (0)1 44275 084 / skype: paulatz
www:   http://www.impmc.upmc.fr/~paulatto/
mail:  23-24/4é14 Boîte courrier 115, 4 place Jussieu 75252 Paris Cédex 05

More information about the users mailing list