计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: panger
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] CP2K输出的静电势问题

[复制链接 Copy URL]

6万

帖子

99

威望

6万

eV
积分
125127

管理员

公社社长

16#
发表于 Post on 2017-4-3 01:46:44 | 只看该作者 Only view this author
panger 发表于 2017-4-3 01:41
另外,如果对于我这种情况,如果我想用Multiwfn来做,我可不可以在排除周围活性中心(我指金属团簇)影响影 ...

可以
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

122

帖子

0

威望

3513

eV
积分
3635

Level 5 (御坂)

17#
 楼主 Author| 发表于 Post on 2017-4-3 02:05:54 | 只看该作者 Only view this author
本帖最后由 panger 于 2017-4-3 02:09 编辑

谢谢sob老师,这么晚,打扰您了。

3809

帖子

3

威望

1万

eV
积分
20334

Level 6 (一方通行)

围观吃瓜群众

18#
发表于 Post on 2017-4-3 09:17:41 | 只看该作者 Only view this author
panger 发表于 2017-4-2 18:27
另外还想请教您两个问题。文献中说功函计算是使用真空层中的静电势(选取真空层中部)减去材料的费米能级 ...

1、Multiwfn计算local integral curve采用的公式是
I(z)=∫∫p(x,y,z)dxdy
平均静电势的量纲是能量的量纲,和上述定义差一个面积的量纲,当Z方向与XY面垂直:
VH=∫∫p(x,y,z)dxdy/∫∫dxdy=I(z)/Axy,其中Axy是XY的面积。
最后注意单位换算。

2、Multiwfn应该只支持立方的格子,就目前而言,方便的做法就是把晶格基矢取为正交的就可以了,对于二维系统只要将A和B的两个方向进行线性组合就行。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
sobereva + 2

查看全部评分 View all ratings

日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

122

帖子

0

威望

3513

eV
积分
3635

Level 5 (御坂)

19#
 楼主 Author| 发表于 Post on 2017-9-28 16:51:49 | 只看该作者 Only view this author

sob老师,如果我在切面的时候直接修改一下,取成1*根号3的单胞,而不是1*1的单胞,这时是不是就可以直接用multiwfn来分析结果了?

6万

帖子

99

威望

6万

eV
积分
125127

管理员

公社社长

20#
发表于 Post on 2017-9-28 23:58:39 | 只看该作者 Only view this author
panger 发表于 2017-9-28 16:51
sob老师,如果我在切面的时候直接修改一下,取成1*根号3的单胞,而不是1*1的单胞,这时是不是就可以直接 ...


你说的情况我不太清楚。你看一下.cub文件开头,只要三个平移矢量正分别对应x,y,z方向,就可以用Multiwfn分析
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

122

帖子

0

威望

3513

eV
积分
3635

Level 5 (御坂)

21#
 楼主 Author| 发表于 Post on 2017-9-29 16:16:29 | 只看该作者 Only view this author
本帖最后由 panger 于 2017-9-29 16:17 编辑
sobereva 发表于 2017-9-28 23:58
你说的情况我不太清楚。你看一下.cub文件开头,只要三个平移矢量正分别对应x,y,z方向,就可以用Multiwf ...

谢谢您。目前cube文件还没算出来,等出来我马上看一下。可能我没表述清楚,我的意思是构建超胞的时候建成这样的,而不是软件默认的90,90,120的那种情况。

无标题.png (354.8 KB, 下载次数 Times of downloads: 71)

无标题.png

6万

帖子

99

威望

6万

eV
积分
125127

管理员

公社社长

22#
发表于 Post on 2017-9-29 16:42:02 | 只看该作者 Only view this author
panger 发表于 2017-9-29 16:16
谢谢您。目前cube文件还没算出来,等出来我马上看一下。可能我没表述清楚,我的意思是构建超胞的时候建成 ...

这看起来没问题
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

122

帖子

0

威望

3513

eV
积分
3635

Level 5 (御坂)

23#
 楼主 Author| 发表于 Post on 2017-9-29 16:45:57 | 只看该作者 Only view this author

谢谢sob老师。

496

帖子

11

威望

4275

eV
积分
4991

Level 6 (一方通行)

24#
发表于 Post on 2021-7-15 19:17:24 | 只看该作者 Only view this author
本帖最后由 丁越 于 2021-7-29 08:53 编辑
panger 发表于 2017-4-2 18:27
另外还想请教您两个问题。文献中说功函计算是使用真空层中的静电势(选取真空层中部)减去材料的费米能级 ...


自由发挥,野蛮生长

496

帖子

11

威望

4275

eV
积分
4991

Level 6 (一方通行)

25#
发表于 Post on 2021-7-28 23:04:40 | 只看该作者 Only view this author
本帖最后由 丁越 于 2021-8-1 15:12 编辑
panger 发表于 2017-4-2 18:27
另外还想请教您两个问题。文献中说功函计算是使用真空层中的静电势(选取真空层中部)减去材料的费米能级 ...用cp2k官网给的这个脚本按照如下方法也可以得到真空能级。

QQ截图20210728230205.png (74.99 KB, 下载次数 Times of downloads: 70)

QQ截图20210728230205.png
自由发挥,野蛮生长

496

帖子

11

威望

4275

eV
积分
4991

Level 6 (一方通行)

26#
发表于 Post on 2021-8-1 15:07:27 | 只看该作者 Only view this author
卡开发发 发表于 2017-4-3 09:17
1、Multiwfn计算local integral curve采用的公式是
I(z)=∫∫p(x,y,z)dxdy
平均静电势的量纲是能量的量 ...

卡开发发老师,我使用您的方法计算了Cu(111)表面的功函数,真空层大小取了35Å,下面是做出的图像。可是计算出的功函数大的离谱,不知道是不是对公示理解错了导致图画错了?(Axy就是Cu xy表面的面积这没错吧,建模时我已经把模型弄成正交晶系了,并且最后也除了这个表面积)。另外,我也用官网给的cubecruncher脚本处理计算了功函数,得到的值是5.25 eV(这是换算单位后的),与维基百科给出的Cu参考值4.53~5.10 eV接近。老师能指点下我哪里搞错了么?


202108011506005884..png (30.97 KB, 下载次数 Times of downloads: 58)

202108011506005884..png
自由发挥,野蛮生长

3809

帖子

3

威望

1万

eV
积分
20334

Level 6 (一方通行)

围观吃瓜群众

27#
发表于 Post on 2021-8-1 20:17:19 | 只看该作者 Only view this author
本帖最后由 卡开发发 于 2021-8-1 20:39 编辑
丁越 发表于 2021-8-1 15:07
卡开发发老师,我使用您的方法计算了Cu(111)表面的功函数,真空层大小取了35Å,下面是做出的图像。 ...

我不确定你I(z)是否处理正确?要不然多给一些原始数据咱们可以一块讨论下问题在哪。
日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

496

帖子

11

威望

4275

eV
积分
4991

Level 6 (一方通行)

28#
发表于 Post on 2021-8-2 08:29:04 | 只看该作者 Only view this author
卡开发发 发表于 2021-8-1 20:17
我不确定你I(z)是否处理正确?要不然多给一些原始数据咱们可以一块讨论下问题在哪。

好的,麻烦老师看一下

Cu_111.inp

10.56 KB, 下载次数 Times of downloads: 20

Cu_111-v_hartree-1_0.cube.tar.xz

5.52 MB, 下载次数 Times of downloads: 14

自由发挥,野蛮生长

3809

帖子

3

威望

1万

eV
积分
20334

Level 6 (一方通行)

围观吃瓜群众

29#
发表于 Post on 2021-8-2 11:24:29 | 只看该作者 Only view this author
丁越 发表于 2021-8-2 08:29
好的,麻烦老师看一下

这个python3代码(cube_average_z.py)我随便写写作为一个测试:
  1. #本程序只能用在正交晶格。
  2. #非正交晶格理论上可以通过修改本程序实现。
  3. import numpy as np
  4. import sys

  5. def average_cube_z(fname):
  6.         f=open(fname,'r+')
  7.         text=f.read()
  8.         f.close()
  9.         #cube文件按行进行切割。
  10.         text=text.split('\n')
  11.         #第3~6行为网格的轴向上的格点数和间距,两者对应相乘可以得到对应的晶格参数。
  12.         lat_info=np.array([t.split() for t in text[3:6]])
  13.         ngrids=np.array(lat_info[:,0],dtype=int)
  14.         intv=np.array(lat_info[:,1:],dtype=float)
  15.         lat=ngrids*intv
  16.         #第2行为原子数和原点坐标信息,我们只取原子数的信息即可。
  17.         natms=int(text[2].split()[0])
  18.         #第6行起,后续有与原子数相等的行数为原子和原子坐标信息,这里我们不需要跳过去。
  19.         grids=' '.join(text[6+natms:])
  20.         #将数组的形状按照给定的网格尺寸重新排,注意cube格式变化最快的方向是z方向。
  21.         grids=np.array(grids.split(),dtype=float)
  22.         grids=grids.reshape(ngrids)
  23.         #如果要更改为x为最快变化方向可以使用:
  24.         #grids=np.transpose(grids,(2,1,0))
  25.         #这里没必要这么处理。
  26.         #---------------------------------------
  27.         #求某个特定的z下静电势网格在xy面上的平均。
  28.         #这么做可行的原因是,网格为矩形且均匀的情况下,利用矩形积分的公式:
  29.         #∫∫ρ(x,y,z)dxdy/∫∫dxdy=(∑∑ρ_xyz)/n_x/n_y。
  30.         #当然也可以用精度更高的积分方法或用FFT,这里只是定性说明。
  31.         average=np.mean(grids,axis=(0,1))
  32.         #产生Bohr单位下z的坐标网格。
  33.         z=np.linspace(0,np.linalg.norm(lat[2]),ngrids[2],endpoint=False)
  34.         #将数据按照z V_H的格式打印。
  35.         head='%25s %25s\n'%('z','V_H')
  36.         text='\n'.join(['% 16.8f % 16.8f'%(i,a) for i,a in zip(z,average)])
  37.         text=head+text
  38.         return text

  39. text=average_cube_z(sys.argv[1])
  40. print(text)
复制代码
执行的方法是:
  1. python cube_average_z.py Cu_111-v_hartree-1_0.cube > potentials.dat
复制代码
如果对平均静电势取最大得到的结果是:Vh=0.10814 Hartree,
然后按照你前面给的数据:Ef=0.3029-0.3829=-0.08 Hartree,
然后按照eV单位计算功函数:(Vh-Ef)*27.211=5.11947754 eV
其他的说明在代码块部分说的应该也比较明确了,和官网给的程序结果的差异大概率来源于积分的方法,我这边用的是粗糙的矩形积分方法。可以用更高级别的基于插值的数值积分,也可以用FFT,原则上经过修改可以有更高的精度并可用于γ角非90°的单斜结构。至于之前为啥做不对,我也不知道你具体的处理步骤。



日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。不做培*,不接代*,不接*发谢谢。

496

帖子

11

威望

4275

eV
积分
4991

Level 6 (一方通行)

30#
发表于 Post on 2021-8-2 11:43:16 | 只看该作者 Only view this author
卡开发发 发表于 2021-8-2 11:24
这个python3代码(cube_average_z.py)我随便写写作为一个测试:
执行的方法是:
如果对平均静电势取最大 ...

太感谢老师了这是我用Multiwfn处理的步骤:载入静电势cube文件后,13- 18(Z,a)- 6,这里导出的locintcurve.txt数据中将第三列除以Axy面积(17.74*10.2425),然后以该txt中第二列数据Z为X轴,除了面积之后的第三列数据为Y轴作图,就得到上面的图像了。老师您看有什么问题么?
自由发挥,野蛮生长

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-18 19:00 , Processed in 0.252888 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list