计算化学公社

 找回密码 Forget password
 注册 Register
Views: 28077|回复 Reply: 27
打印 Print 上一主题 Last thread 下一主题 Next thread

[算法与编程] 量子化学学习用RHF方法的code,更新到RHF/6-311G解第二周期元素

[复制链接 Copy URL]

127

帖子

1

威望

1231

eV
积分
1378

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 Shannon 于 2014-11-28 12:26 编辑

下面是 氦原子HatreeFock的code。 用
guess=[0.7,1,2 ]
[E,xxx]=fminsearch(@Helium,guess,optimset('Display','on','MaxIter',10000,'PlotFcns',@optimplotfval ))
fminseach 方法:
(Lagarias, J.C., J. A. Reeds, M. H. Wright, and P. E. Wright, "Convergence Properties of the Nelder-Mead Simplex Method in Low Dimensions," SIAM Journal of Optimization, Vol. 9 Number 1, pp. 112-147, 1998.)
搜索。 能够得到E=-2.86167的HF最好解。

function E = Helium_final(input)

c1=input(1);c2=0.180687;
% c2=(1-c1^2)^0.5;
�=0.5;c2=0.5
Z=2; % 核电荷数。2,不需要改
% zeta(1)=1.45363;
% zeta(2)=2.91093;
phi  = @(z,r) sqrt((z^3)/pi)*exp(-z*r); % 在此调教波函数
% c1=input(1);
% c2=input(2);
zeta(1)=input(2);
zeta(2)=input(3);
sfunc= @(a,b,r) phi(zeta(a),r).*phi(zeta(b),r).*(r.^2);
it=1
while (it<10) % 用内循环求解C2的值,确保函数 normalization。
%方法是newton 法
S= @(a,b) 4*pi*quad(@(r) sfunc(a,b,r),0,10);
% sreal=8*(zeta(1)^3*zeta(2)^3)^0.5/(zeta(1)+zeta(2))^3;
% hreal=(sreal/2)*(zeta(1)*zeta(2)-Z*(zeta(1)+zeta(2)));
%  normalizatoin= quad2d (@(r1,r2) bigphi(c1,c2,r1,r2),0,10,0,10 )
% 这个是normalization 的函数: 必须等于1 (c1^2+2*c1*c2*S(1,2)+c2^2)
Deltac2 = (2*c1*S(1,2)+2*c2)\(1-(c1^2+2*c1*c2*S(1,2)+c2^2));
it=it+1;
c1^2*S(1,1)+2*c1*c2*S(1,2)+c2^2*S(2,2)
c2
c2=c2+Deltac2;
if (abs(Deltac2)<0.001)break;
end
end
   

hfunc=@(a,b,r) phi(zeta(a),r).*phi(zeta(b),r).*(4*pi*r);
h = @(a,b) -(zeta(b)^2*S(a,b))/2-(Z-zeta(b))*quad(@(r) hfunc(a,b,r),0,10);

% 下面是双电子积分,6-dimension,I think,  at least 3 dimension need to be killed to lower
% computational cost
% 估计code效率 很低,但比较傻瓜式

gfunccomp = @(z1,z2,z3,z4,r1,r2) phi(zeta(z1),r1).*phi(zeta(z2),r2).*(1./abs(max(r1,r2))).*phi(zeta(z3),r1).*phi(zeta(z4),r2)*(16*pi^2).*r1.^2.*r2.^2;
gpiece = @(x1,x2,x3,x4) quad2d(@(r1,r2) gfunccomp(x1,x2,x3,x4,r1,r2), 0,10,0,10);
g = @(gi,gj)  c1^2*gpiece(gi,1,gj,1)+c1*c2*gpiece(gi,1,gj,2)+c2*c1*gpiece(gi,2,gj,1)+c2^2*gpiece(gi,2,gj,2);




E=(2*((c1^2)*h(1,1)+2*c1*c2*h(1,2)+(c2^2)*h(2,2))+(c1^2)*g(1,1)+2*c1*c2*g(1,2)+c2^2*g(2,2));

评分 Rate

参与人数
Participants 5
威望 +1 eV +19 收起 理由
Reason
snljty + 5 好物!
sobereva + 1 + 5
卡开发发 + 2 好物!
pwang123 + 2
xmseet + 5

查看全部评分 View all ratings

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

28#
发表于 Post on 2017-7-5 06:22:25 | 只看该作者 Only view this author
zkw 发表于 2017-7-4 13:55
O(∩_∩)O谢谢,可是没学过Fortran有MATLAB版的吗?理论方面有什么资料可以推荐一下么


就是个语法的事。搞懂了原理、算法,用哪个语言写都差不多。
北京科音自然科学研究中心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

4

帖子

0

威望

13

eV
积分
17

Level 1 能力者

27#
发表于 Post on 2017-7-4 17:16:43 | 只看该作者 Only view this author
Warm_Cloud 发表于 2017-7-4 15:15
因为写电子积分的难度更大,更复杂,写快也更难。如果想看自洽场的可以看看这个 http://bbs.keinsci.com/ ...

谢谢~希望我能尽快看懂

310

帖子

3

威望

6408

eV
积分
6778

Level 6 (一方通行)

26#
发表于 Post on 2017-7-4 15:15:26 | 只看该作者 Only view this author
zkw 发表于 2017-7-4 14:07
而且不太明白为什么都是与积分有关的,还有想请教一下怎么用自洽场的方法求解波函数啊

因为写电子积分的难度更大,更复杂,写快也更难。如果想看自洽场的可以看看这个 http://bbs.keinsci.com/forum.php?mod=viewthread&tid=6139
欢迎使用量子化学软件Amesp

4

帖子

0

威望

13

eV
积分
17

Level 1 能力者

25#
发表于 Post on 2017-7-4 14:07:26 | 只看该作者 Only view this author
zkw 发表于 2017-7-4 13:55
O(∩_∩)O谢谢,可是没学过Fortran有MATLAB版的吗?理论方面有什么资料可以推荐一下么

而且不太明白为什么都是与积分有关的,还有想请教一下怎么用自洽场的方法求解波函数啊

4

帖子

0

威望

13

eV
积分
17

Level 1 能力者

24#
发表于 Post on 2017-7-4 13:55:44 | 只看该作者 Only view this author
sobereva 发表于 2017-7-4 01:51
仔细看
利用wfn文件计算电子密度的代码的编写方法
http://sobereva.com/182

O(∩_∩)O谢谢,可是没学过Fortran有MATLAB版的吗?理论方面有什么资料可以推荐一下么

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

23#
发表于 Post on 2017-7-4 01:51:28 | 只看该作者 Only view this author
zkw 发表于 2017-7-3 15:40
楼主,我的期末MATLAB大作业准备画分子的电子云图,但是我还没有学量子力学,只是初步的了解了一下还有很多 ...

仔细看
利用wfn文件计算电子密度的代码的编写方法
http://sobereva.com/182
北京科音自然科学研究中心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

4

帖子

0

威望

13

eV
积分
17

Level 1 能力者

22#
发表于 Post on 2017-7-3 15:40:53 | 只看该作者 Only view this author
楼主,我的期末MATLAB大作业准备画分子的电子云图,但是我还没有学量子力学,只是初步的了解了一下还有很多不懂的地方,想具体了解一下楼主用的什么方法,能给一些参考文献或者资料让我学习一下吗

12

帖子

0

威望

281

eV
积分
293

Level 3 能力者

21#
发表于 Post on 2016-10-24 21:12:51 | 只看该作者 Only view this author
Shannon 发表于 2014-11-2 02:56
次楼层的code是RHF法解H2分子。源文件来自网上,有很多修改,外加了一个可视化电子密度的小程序。
截图如 ...

h2.m中忘记声明zetaH2了

23

帖子

0

威望

311

eV
积分
334

Level 3 能力者

20#
发表于 Post on 2015-7-1 16:26:14 | 只看该作者 Only view this author
大赞一个!传说内联函数,比匿名函数会快些~~~有空也好想试试啊~~~~~~

99

帖子

0

威望

1092

eV
积分
1191

Level 4 (黑子)

19#
发表于 Post on 2014-12-30 15:26:07 | 只看该作者 Only view this author
大赞楼主,学习量化编程很好的资料

127

帖子

1

威望

1231

eV
积分
1378

Level 4 (黑子)

18#
 楼主 Author| 发表于 Post on 2014-12-15 04:52:55 | 只看该作者 Only view this author
将双电子积分中用到的递归算法全部暴_力_拆开。 现在代码效率能搞定高角动量的极化函数了(虽然目前还没写进去)。附件是写程序的程序,用来解析 递归代码成 简单的加减乘除代码的代码。
迭代很多时候会计算 重复 东西,导致效率不高,尤其是高角动量时这种效率浪费特别大。 全部拆开之后速度又提高了很多。目前计算CO,STO2G需要1S。

HF_fun_slv_v1.45.zip

135.92 KB, 下载次数 Times of downloads: 47

评分 Rate

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

查看全部评分 View all ratings

21

帖子

0

威望

4

eV
积分
25

Level 2 能力者

17#
发表于 Post on 2014-12-14 04:11:19 | 只看该作者 Only view this author
高斯的积分核心算法是“棱镜”

127

帖子

1

威望

1231

eV
积分
1378

Level 4 (黑子)

16#
 楼主 Author| 发表于 Post on 2014-12-14 03:47:22 | 只看该作者 Only view this author
trewqaz 发表于 2014-12-14 02:17
人才啊,可以搞中国的Gaussian了

这个code真的只是用来学量化的玩具…高斯G6311(d)计算苯的 单点能量才只需要几秒钟(这个matlab代码大约需要以小时计算的时间),写过code之后方才发现高斯里面的数学优化量大的 简直丧-病。高角动量基底函数和 contracted Gaussian 的积分速度,高斯快的简直不可思议。
写成matlab一个 大的好处是用来学CI/NBO,了解轨道正交性之类 是怎么搞得非常有用。

21

帖子

0

威望

4

eV
积分
25

Level 2 能力者

15#
发表于 Post on 2014-12-14 02:17:54 | 只看该作者 Only view this author
人才啊,可以搞中国的Gaussian了

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

GMT+8, 2026-2-21 17:59 , Processed in 0.827979 second(s), 32 queries , Gzip On.

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