[Pw_forum] Format of .pp postprocessing file
Johannes Moeller
j.moeller1 at physics.ox.ac.uk
Wed Nov 14 11:58:28 CET 2012
Dear All,
I am interested in calculating the electric field inside a solid (in zero applied external field). For this purpose I would like to take a .pp file of the ionic+Hartree potential and differentiate it. I couldn't find any information on the internet on the exact structure of a .pp file. Please could this be clarified?
As an example, the header of my .pp file is as follows:
162 162 162 162 162 162 96 2
1 20.64336828 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
6476.6829010408 4.0000000000 150.0000000000 11
1 Ca 10.00
2 F 7.00
1 0.000000000 0.000000000 0.000000000 1
2 0.000000000 0.000000000 0.500000000 1
...
then follow the positions of the ions in the cell and then the density data
-8.358584553E+00 -8.262687629E+00 -7.991916719E+00 -7.550254499E+00 -6.949854525E+00
-6.221200847E+00 -5.400129088E+00 -4.537549114E+00 -3.695385287E+00 -2.927873052E+00
-2.232393469E+00 -1.599364989E+00 -1.053855115E+00 -6.077427805E-01 -2.928590662E-01
...
I can identify some of the numbers:
I'm guessing the grid is 162x162x162 (why is this repeated?) 96 the number of atoms per cell, 2 the number of atomic types
1 is probably the ibrav index then follow celldm(1) to celldm(6)
not sure about the next 2 numbers, 150 is the wfc cutoff 11 is the identifier for Hartree+ionic potential
I'm also guessing that the innermost index runs fastest, i.e. if pp.x was written in C it would do something like this
for (ix=0;ix<NX;ix++) {
for (iy=0;iy<NY;iy++) {
for (iz=0;iz<NZ;iz++) {
printf("%g ",data[ix][iy][iz]);
if ((ix+iy+iz) % 5 == 4)
printf("\n");
}
}
}
In any case I think it would be good to have a complete description available somewhere in the Quantum Espresso documentation (unless I missed it in which case please point me to it!).
Thanks,
Johannes
-------------------------------
Johannes Moeller
Department of Physics
University of Oxford
More information about the users
mailing list