计算化学公社

标题: DFT程序计算中对于不同自旋电子密度加和的问题 [打印本页]

作者
Author:
seakay    时间: 2021-9-26 16:54
标题: DFT程序计算中对于不同自旋电子密度加和的问题
我想要在自己编写的程序里加入一个DFT计算的模块,打算从最简单的LDA开始试手。在看DFR的代码时看到了一个有点疑惑的条件判断。我贴的是LDA交换泛函部分的代码,但实际上这个条件判断不光在Slater交换泛函里出现,也不止出现在此泛函库中,所以我认为这应该是一个普遍的做法。
  1. do i=1,npt
  2.       rhoa = dmax1(0.D0,rhoa1(i))
  3.       rhob = dmax1(0.D0,rhob1(i))
  4.       rho = rhoa+rhob
  5.       if(rho.gt.tol) then
  6.       if(rhoa.lt.tol) then
  7.       rho = rhob
  8.       t1 = rhob**(1.D0/3.D0)
  9.       zk(i) = -0.9305257363491D0*t1*rhob
复制代码
这里tol是1*E-20,我的疑惑有两点,第一是为什么要在roha小于tol的时候把它忽略掉,忽略掉它的好处是为了减少计算量?第二是为什么设置tol的值为1*E-20?
感谢各位的帮助。

作者
Author:
wzkchem5    时间: 2021-9-26 18:29
一方面是减少计算量,另一方面是防止除以0。对于Slater exchange没有除以0的问题,但是LDA correlation或者GGA可能有
作者
Author:
seakay    时间: 2021-9-26 19:35
wzkchem5 发表于 2021-9-26 18:29
一方面是减少计算量,另一方面是防止除以0。对于Slater exchange没有除以0的问题,但是LDA correlation或者 ...

懂了,感谢指导




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3