24小时热门版块排行榜    

CyRhmU.jpeg
查看: 443  |  回复: 0
当前主题已经存档。

xirainbow

木虫 (正式写手)

[交流] 【分享】How to get G-vectors and eigenvectors

原帖网址:http://blog.sina.com.cn/s/blog_5f15ead20100gfrd.html

I am very interested in get the detailed information of basic vectors and their coefficients (that is wavefunction). The reason is very simple: basic vector and their coefficients are directly related with KS equation. Unfortunately, these dates are all stored in binary files. Although I can plot electronic density in Xcrysden, I can not get the wavefunction. Today, I notice a discussion in PWscf Forum, which is concerned with how to convert binary date to readable format. Although I still do not know the transformation detail,I know I can do it

     The following is quoted from PWscf Forum.      
in general you can convert all the .dat files from the $prefix.save directory (or subdirectories) into xml using the iotk conversion tool (which is linked in ~espresso/bin )
1: ~espresso/bin/iotk convert  file.dat  file.xml

I think this utility is particularly useful to understand which  and how are the data stored in the QE save directory.

Then, you can parse the xml file if you like.  My personal suggestion would be to do that only if you need this piece of
information for a very simple postprocessing code, because parsing xml from fortran, even if not impossible, is not simple...

Instead, I think the easiest way to go is to use the qexml library  (distributed with QE in ~espresso/PP/qexml.f90) which is exactly meant to provide tools to read (and in principles also write) QE datafiles...

The library must be initialized specifying the output directory, prefix,  and few other informations, and then it directly provides routines to read all the piece of data you need. Some examples about how to use it are given in the WanT code(www.wannier-transport.org); just grep qexml_ in the sources.

2:In terms of the usage of the library, you can have a look at a simple example at http://web.mit.edu/~ferretti/www/Test_QEXML.tgz instructions to compile, run and check the test are given inside the tarball.
There is a proble in the Makefile,
change the lines
$(espresso_home)/PP/qexml.o:
       cd $(espresso_home)/PP
       make qexml.o
into
$(espresso_home)/PP/qexml.o:
       cd $(espresso_home)/PP; make qexml.o
Then the code of Test_QEXML work well. But it only give a brief information about G-vector and eigenvector. Therefore, the full information can only be obtained by espresso/bin/iotk convert  file.dat  file.xml
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xirainbow 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见