24小时热门版块排行榜    

查看: 2122  |  回复: 5

边城雪

新虫 (初入文坛)

[求助] QE输出的矩阵元有很多的NaN已有1人参与

大家好,我用qe-6.3里的bands.x执行文件计算matrix elements of the momentum operator p between conduction and valence bands(需设置lp=.true.),
计算步骤是
pw.x <scf.in>scf.out
pw.x <band.in>band.out
bands.x <bands.in>bands.out
在第二步band.in的输入文件中,如果我使用的K点比较密的话,比如:
K_POINTS {crystal_c}
3
0.00    0.00    0.00      0
1.00    0.00    0.00      45
0.00    1.00    0.00      45
输出的matrix elements就会有很多的NaN(not a number);
但如果我用较疏的k-mesh,比如
K_POINTS {crystal_c}
3
0.00    0.00    0.00      0
1.00    0.00    0.00      15
0.00    1.00    0.00      15
输出矩阵元素都可以正常显示,我试了不同的服务器,结果都是如此,我也查询了一些资料,大多认为是数学库对角化的问题。但我不明白为什么会和设置的k点疏密有关?大家有计算这个或者遇到此类问题的吗?希望大家给一些建议,任何指点建议都可以,谢谢~
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

漫天飘雪

版主 (知名作家)

认真做事,踏实做人

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
边城雪: 金币+30, 有帮助 2019-01-27 00:17:20
我一般这样用
K_POINTS {crystal_b}
2
0.00    0.00    0.00      101    !Gamma
0.50    0.00    0.00      1        !X

你可以看看手册,了解他们的含义。
http://blog.sciencenet.cn/u/pfliu89
2楼2019-01-23 08:20:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

siestafonda

至尊木虫 (著名写手)

既然是数学库的问题,那把你的解决方案也贴一个过来,为以后的人提供方便吧!

发自小木虫IOS客户端
3楼2019-01-24 19:36:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

边城雪

新虫 (初入文坛)

漫天飘雪: 回帖置顶 2019-01-28 15:47:55
哈哈,这个问题解决了,刚存够了15个金币,可以回帖了,所以现在才来说一下。。。
我用的是intel2017+impi编译的
configure  --prefix=soft/QuantumEspresso/qe-6.3  --with-scalapack=intel CC="icc" FC="ifort"  F77="ifort" MPICC="mpiicc" MPIF90="mpiifort"
这样设置的话,BLAS会自动链接 BLAS_LIBS=-lmkl_intel_lp64  -lmkl_sequential -lmkl_core
问题就出在-lmkl_sequential身上,我手动链接BLAS_LIBS=“-L/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64 -lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core" 就可以了
不过make.inc有几个地方也需要改动一下:
将-qopenmp添加到FFLAGS和LDFLAGS,
FFLAGS="-O2 -assume byterecl -g -traceback -qopenmp"
LDFLAGS="-static-intel  -qopenmp"

我是看其他人的make.inc文件这样的设置,不过他告诉我,他的也是qe自动寻找链接到的这些数学库,我在好几个超算中心测试,自动链接到的都是-lmkl_sequential,虽然这样链接对qe大部分计算没有问题,但是lp=.true.时计算matrix elements of the momentum operator p就会出现矩阵元为NaN的情况,所以我需要手动强行链接-lmkl_intel_thread 。
4楼2019-01-27 00:31:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

边城雪

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 漫天飘雪 at 2019-01-23 08:20:10
我一般这样用
K_POINTS {crystal_b}
2
0.00    0.00    0.00      101    !Gamma
0.50    0.00    0.00      1        !X

你可以看看手册,了解他们的含义。

谢谢回复,K_POINTS的不同设置方式对于band.in都可以用,不过我计算的是光电相关的东西,需要全布里渊区计算,所以没有像平时计算能带那样只给出高对称点的设置
5楼2019-01-27 00:35:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

边城雪

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by siestafonda at 2019-01-24 19:36:20
既然是数学库的问题,那把你的解决方案也贴一个过来,为以后的人提供方便吧!

嗯嗯,已整理
6楼2019-01-27 00:37:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 边城雪 的主题更新
信息提示
请填处理意见