Dear Hongze Xia, Maybe someone can suggest an easier way to extract he individual c(n,k), but I have done this by using pw_export.x to export the wave function information and then I wrote a pythonscript to pull pull them out of the exported xml file.
Here is an example input file I use for pw_export.x that works &INPUTPP prefix='Si', pseudo_dir='./', outdir ='./tmp', single_file=.true. , ascii=.true. / Out of this I get a subdirectory in my outdir called Si.export which contains a single xml file. I then processed the file using "import xml.etree.ElementTree as etree" for the xml library in python. This file contains all of the information needed to reconstruct the wave function. Someone please correct me if I am wrong in my following description as I had to do a bit of guess work to get it to work. So first in the file The node Kmesh can be used to give you the number of k points stored as nk And the weights stored as a text list called weights. There is also a subnode called k which will contain the actual kpoints. Then in the node Wfc_grid there are subnodes for each kpoint which contain a subnode grid which contains the indices of each C(n,G,K) in the where psi_n,k = sum_G C(n,G,K)exp(-i(k+g)*r) And the indices refer to the multiplicative factor on each of the reciprocal lattice vectors. For example if we have 3 reciprocal latticevectors v1,v2,v3 and the grid specifies a point 1 2 3 then we reconstruct our G vector as G=1*v1+2*v2+3*v3 After this the eigenvalues node and subnodes should be rather self explanatory. Finally comes the eigenvectors node It is divided into subnodes of the form Eigenvectors->Kpoint.#k->Wfc.#n Here #k is the index of the kpoint. Can get the coordinate of this in crystal coordinates from Wfc_grid->Kpoint.#k->Kcrys The #n is the band index. Then under Wfc.#n is another text list This list is the complex coefficient C(#n,G,#k) and the coefficients are listed in the same order as the grid indicies I mentioned for Wfc_grid. So to give an example of what I mean. In one of my files I have the Kpoint.1 at the gamma point 0.000000d+000 0.000000d+000 0.000000d+000. The first two lines I have listed in the Wfc_grid for kpoint.1 text is 0 0 0 -1 -1 -1 And the first two coefficients I have listed for kpoint.1 and wfc.1 are -7.287747620844023E-001, 6.805607924738541E-001 -1.270428376371229E-001,-4.334151291990817E-003 So that tells me that C(1,(0,0,0),(0,0,0))= -7.287747620844023E-001+i* 6.805607924738541E-001 at k = (0,0,0), G=(0,0,0) and n=1 The next coefficient is at C(1,(-1,-1,-1), (0,0,0)) = -1.270428376371229E-001+i*-4.334151291990817E-003 at k=(0,0,0), G=(-1,-1,-1) and n=1 And so on like that. Check through the output file and all of the information you should need make sense of my longwinded explanation is there. There may be an easier way using pp, but I don't know it. I hope it helps Robert Hembree From: pw_forum-bounces at pwscf.org [mailto:pw_forum-boun...@pwscf.org] On Behalf Of Hongze Xia Sent: Friday, April 05, 2013 8:00 PM To: PWSCF Forum Subject: Re: [Pw_forum] using pp.x to calculate psi^2 Dear Paolo, Thanks so much for your kind help. Currently we are looking for the eigenvectors from diagonalizing the Hermitian matrix which gives the electron band structure. It seems to me now tha |psi(r)|^2 does not contain information about individual c(n,k) but only the sum of that. It is also true for the charge density at r. Can I ask: is that possible to extract individual c(n,k) out from the calculations or is that possible that I could print the Hermitian matrix which yields the electron band structure? Thank you for your time and effort. Best Regards, Hongze Xia PhD candidate in Photovoltaics Engineering University of New South Wales Sydney 2052 Australia On 03/04/2013, at 11:45 PM, Paolo Giannozzi <paolo.giannozzi at uniud.it> wrote: On Wed, 2013-04-03 at 22:32 +1100, Hongze Xia wrote: As far as I know, psi can be defined as psi = c(n,k)*exp(-i r*k) where c(n,k) is not a function of position r No: psi(r) = \sum_k c(n,k)*exp(-i r*k) By this definition, psi^2 = c*(n,k)c(n,k) is a real number independent of r. No: what is calculated is |psi(r)|^2, not what you have written. Can anyone tell me what is the unit of psi (or c(n,k)) in QE? all quantities are in atomic (Rydberg) units unless explicitly specified, so psi(r) is in (bohr radii)^(-3/2) Another question is that if I plot a 1D plot of the spherical average of psi^2, does it matter if choosing a different starting point and plotting line? the starting point matters, the plotting line doesn't The last question is that where I can find the total number of kband and kpoint? in the output of pw.x If kpoint is manually set up in pwscf input file instead of using a k mesh-grid, does it have the same sequence as the one in that input file? the index "kpoint" refers to the sequence of k-points as it appears in the output P. -- Paolo Giannozzi, Dept. Chemistry&Physics&Environment, Univ. Udine, via delle Scienze 208, 33100 Udine, Italy Phone +39-0432-558216, fax +39-0432-558222 _______________________________________________ Pw_forum mailing list Pw_forum at pwscf.org http://pwscf.org/mailman/listinfo/pw_forum -------------- next part -------------- An HTML attachment was scrubbed... URL: http://pwscf.org/pipermail/pw_forum/attachments/20130405/16b4397d/attachment.html