美文网首页
siesta赝势生成

siesta赝势生成

作者: 多米尼克2049 | 来源:发表于2020-03-10 15:00 被阅读0次

首先我们要明确为什么要生成赝势。

img122.gif
首先看这个图,回忆我们计算电子波函数的时候,哈密顿量里面的势能项分为库伦势项、Hatree项和交换关联能项。如果我们直接使用库伦势的话,也就是对应图中的Z/r势,由于这个势很深,所以波函数里会包含很多内层电子的成分,这些电子速度通常很高,对应的截断能就非常高,然后为了保证互相之间的正交性,波函数会有很多震荡,与x轴的交点叫做波节。如果我们把内层电子加原子核看成一个离子,也就是在计算的时候用一个‘赝势’V_{pseudo}来代替真实的势能函数,相当于不考虑内层电子对计算结果的影响,这样波函数就只包含价电子,全电子波函数就变成没有波节的‘赝波函数’。就可以大大减小计算量。这里的分界线是自己选的一个r_c,所以生成赝势之后需要check有没有产生非物理的态,就是所谓的Ghost State。
生成赝势的时候首先解一个薛定谔方程

全电子波函数的角标l就是轨道角动量,对应的全电子波函数就是球贝塞尔函数的叠加,相当于以轨道波函数作为基矢。

然后通过前面的系数来反过来拟合势函数V中的几个参数,从而得到赝势。
决定这些参数的时候往往有几个限制条件,比如电荷密度相等,这样可以保证电子的散射性质相同。
赝波函数必须连续可导
本征值必须相同。
激发态波函数也要包含进去,当使用赝势来处理激发态问题的时候。
这一部分来自The Pseudopotential Approximation

记下来再次遇到比较方便看。
新版siesta不再包含atom需要自己编译,这里记录一下。
首先在siesta根目录新建文件夹
mkdir atom

然后下载atom解压

cd atom
wget https://departments.icmab.es/leem/SIESTA_MATERIAL/Pseudos/Code/atom-4.2.7-100.tgz
tar -xvzf atom-4.2.7-100.tgz

因为atom要依赖两个库libgridxc和xmlf90,所以还需要下载这两个库编译

wget https://launchpad.net/libgridxc/trunk/0.8/+download/libgridxc-0.8.0.tgz
wget https://launchpad.net/xmlf90/trunk/1.5/+download/xmlf90-1.5.3.tar.gz
tar -xvzf xmlf90-1.5.3.tar.gz
tar -xvzf libgridxc-0.8.0.tgz

解压以后查看INSTALL文件,里面写的有编译测试方式。
先编译xmlf90,这个比较简单。
首先因为我们是在服务器上编译所以没法安装到/local/bin文件夹下面,所以我们需要提前指定安装位置,先创建一个文件夹

cd xmlf90-1.5.3/
mkdir build
./configure --prefix=/public/home/xbliu/apps/siesta/siesta-4.0.2/ATOM/xmlf90-1.5.3/build
make
make install

xmlf90就编译完了,然后是libgridxc,这个稍微麻烦一点,需要改一下fortran.mk

cd libgridxc-0.8.0/
mkdir build
cp extra/fortran.mk build/
vi fortran.mk
加一句
FC=gfortran
然后
../src/config.sh
make
make install
然后到Testers文件夹下面测试一下
cd Testers
make
会生成4个可执行文件,在当前文件夹下面执行一下看结果和Reference里面是否相同。
./test1
./test2
./test3
./test4

然后就可以编译atom了,因为atom是依赖于上面两个库的,所以需要在atom的arch.make文件里指定上面两个库的位置,这样它才能找到那两个库。

vi arch.make.sample
XMLF90_ROOT=/public/home/xbliu/apps/siesta/siesta-4.0.2/ATOM/xmlf90-1.5.3/build
GRIDXC_ROOT=/public/home/xbliu/apps/siesta/siesta-4.0.2/ATOM/libgridxc-0.8.0/build
cp arch.make.sample arch.make
make

到这里编译的工作就完成了,下面是赝势的生成。
直接进入Tutorial文件夹,里面有三个文件夹All_electron,PS_generationUtils
All_electron里面是全电子的计算,PS_generation是一些示例输入文件,Utils是生成、测试赝势以及做全电子计算的脚本。在根目录下还有一个文件夹Contrib里面有一个输入参数的建议值在atom_table.txt文件里面,我们可以从建议值开始。
我们以La元素为例来演示一下如何生成赝势。

cd PS_generation
mkdir La
vi La.pbe.inp

然后从atom_table.txt里面得到La的建议值,注意这个值需要测试

   pe      Lanthanum         Guess    Ecut ~ 40Ry   l=0 as local
        tm2
 n=La c=pbr
       0.0       0.0       0.0       0.0       0.0       0.0
   11    4
    6    0     2.00      0.00
    6    1     0.00      0.00
    5    2     1.00      0.00
    4    3     0.00      0.00
   3.50     4.10     3.50     3.50

这里面最重要的是4个轨道的电子占据和截断半径,第一行前面的那个pe是用来指定这是一个什么类型的计算。pg就是生成赝势,pe就是生成赝势的时候做原子核修正(core correction),pt就是做赝势生成测试,而ae是做全电子计算。第二行是指定用TM方法生成赝势,这个相关文章里面都有,然后n=La是元素名,c=pbr是指定pbe的交换关联势,然后下面指定作为离子核的轨道的数目,相当于atomic里面的config='[Kr] 5s2 5p1 4d10'的[Kr]的轨道个数,后面一个数是需要计算的价带的数目,再下面4行就是轨道的主量子数、角量子数和占据数,最后一行是核半径(core radii r_c),单位是bohr,这个参数主要是用来做非线性交换关联修正的,详情见S. G. Louie, S. Froyen, and M. L. Cohen, Phys. Rev. B 26, 1738 (1982)..简单介绍一下子就是在传统方法中,赝核的电荷密度等于给定半径r_{pc}的电荷密度,并且半径内有如下形式
\rho_{pc}(r) = Ar \sin(br)
然后程序会拟合出合适的A和b,新的用来生成GGA赝势的方法里这个函数换成了
\rho_{pc}(r) = r^2 e^{a+br^2+cr^4}
做核修正的时候注意第一行应该是pe而不是pg
这个修正主要是为了加强赝势的可移植性。
设置好输入文件,然后只需要执行一下脚本就可以了

../../Utils/pg.sh La.pbe.inp

赝势就生成好了。

error in gamfind (aka v0pp) - delta not found
stop parameter =861

这个我搜到说是由于格式标准没有对齐,由于ATOM对输入格式要求十分严格,所以在写输入文件的时候最好是在给的例子上改,但是改来改去还是不行,最后还是改的半径r_c解决了这个问题,生成赝势的时候r_c的选取非常具有技巧性,最好是照着前面说的table.txt来选

KBgen: WARNING: Ghost states have been detected
KBgen: WARNING: Some parameter should be changed in the
KBgen: WARNING: pseudopotential generation procedure.
Stopping Program from Node:    0

这个也是由于r_c选取的问题,改了r_c之后,就没有这个问题了。

这个上面也有介绍ATOM的使用
Siesta 赝势atom程序学习笔记

在你要生成一个原子的赝势的时候,要首先做全电子计算,看每个轨道的本征能量。
这个时候输入文件就是这样

   ae Si Ground state all-electron
   Si   ca
       0.0
    3    2
    3    0      2.00
    3    1      2.00

12345678901234567890123456789012345678901234567890      Ruler

首先指定计算类型是ae,全电子计算。然后只需要指定交换关联势的类型,然后指定价电子轨道的主量子数和角量子数还有电子占据就可以了,最后一行是一个标尺,用来对齐上面的输入格式的,格式要求是非常严格的。
然后charge.gplotcharge.gps是gnuplot脚本,用来画电荷密度的,pseudo.gplot,pseudo.gps是画波函数,pots是画势能在实空间分布的,scpots是对比屏蔽势函数与非屏蔽势函数的对比。gplot结尾的脚本需要Xmanager,但是我装了Xmanager之后它就是一闪而过,不知道为什么。gps脚本可以通过添加gnuplot的输出格式命令让它输出为pdf或者png格式的图。

set term pngcairo lw 2 font "AR PL UKai CN,14"
set output "precipitation.png"
replot
set output

gnuplot的命令我还不太懂,用起来就感觉比较混乱。
然后做完全电子计算之后就可以生成赝势,这个时候输入文件最好换一个名字,因为它输出文件都是在一个文件夹里,这个文件夹的名字就是输入文件的名字,这里我们以Si.pbe.inp为例

#
#  Pseudopotential generation for Silicon
#  pg: simple generation
#
   pg      Silicon
        tm2      3.0             # PS flavor, logder R
 n=Si c=car                      # Symbol, XC flavor,{ |r|s}
       0.0       0.0       0.0       0.0       0.0       0.0
    3    4                       # norbs_core, norbs_valence
    3    0      2.00      0.00   # 3s2
    3    1      2.00      0.00   # 3p2
    3    2      0.00      0.00   # 3d0
    4    3      0.00      0.00   # 4f0
      1.90      1.90      1.90      1.90      0.00      0.00
#
# Last line (above): 
#    rc(s)     rc(p)     rc(d)     rc(f)   rcore_flag  rcore
#
#23456789012345678901234567890123456789012345678901234567890

这个输入文件多了很多注释,与ae的计算相比,计算的标签换成了pg,然后就是多了一个每个轨道的截止半径,半径以内,电荷密度通过一个解析函数来拟合,半径以外,与全电子计算结果相同。这个半径的选择其实并不唯一,所以需要测试,包括看输出文件的本征能量和计算电子结构以及晶格参数进行测试。通常来说半径越小,赝势越‘硬’,需要的截断能就越高,但是同时可移植性就越好,半径越大则是反过来。
做完生成赝势的计算,下面就进行赝势的测试,也就是pt的计算
,首先pt的输入格式需要aept两个部分。
所以输入文件是这样的。

#
# All-electron calculations for a series of Si configurations
#
   ae Si Test -- GS 3s2 3p2
   Si   ca
       0.0
    3    2
    3    0      2.00
    3    1      2.00
   ae Si Test -- 3s2 3p1 3d1
   Si   ca
       0.0
    3    3
    3    0      2.00
    3    1      1.00
    3    2      1.00
   ae Si Test -- 3s1 3p3
   Si   ca
       0.0
    3    2
    3    0      1.00
    3    1      3.00
   ae Si Test -- 3s1 3p2 3d1
   Si   ca
       0.0
    3    3
    3    0      1.00
    3    1      2.00
    3    2      1.00
   ae Si Test -- 3s0 3p3 3d1
   Si   ca
       0.0
    3    3
    3    0      0.00
    3    1      3.00
    3    2      1.00

#
# Pseudopotential test calculations
#
   pt Si Test -- GS 3s2 3p2
   Si   ca
       0.0
    3    2
    3    0      2.00
    3    1      2.00
   pt Si Test -- 3s2 3p1 3d1
   Si   ca
       0.0
    3    3
    3    0      2.00
    3    1      1.00
    3    2      1.00
   pt Si Test -- 3s1 3p3
   Si   ca
       0.0
    3    2
    3    0      1.00
    3    1      3.00
   pt Si Test -- 3s1 3p2 3d1
   Si   ca
       0.0
    3    3
    3    0      1.00
    3    1      2.00
    3    2      1.00
   pt Si Test -- 3s0 3p3 3d1
   Si   ca
       0.0
    3    3
    3    0      0.00
    3    1      3.00
    3    2      1.00

12345678901234567890123456789012345678901234567890      Ruler

官方给的例子中是给了不同电子占据下的赝势的对比。
然后通过脚本画出对应势函数和电荷密度的对比,通过对比输出文件的本征值来看赝势的生成质量。

In-charges.png
In-pots.png
这部分主要是参考ATOM的官方手册
ATOM User Manual

相关文章

  • siesta赝势生成

    首先我们要明确为什么要生成赝势。 首先看这个图,回忆我们计算电子波函数的时候,哈密顿量里面的势能项分为库伦势项、H...

  • Gaussian教程 | 使用基组和赝势

    Gaussian教程 | 使用基组和赝势摘要:本文介绍了基组和赝势的基本概念、基组的表示方法,并举例说明了在Gau...

  • 西班牙午睡的说法“siesta”从何而来?

    ¿Cuál es el origen de la palabra "siesta"? 西班牙语单词“siesta”...

  • siesta使用笔记

    # Species and atoms SystemNamesiesta SystemLabel siesta N...

  • 人生成势

    一些关于25岁之前早该明白的道理 遇贵人先立业,遇良人先成家,无贵人而先自立,无良人而先修身! 嘴甜心狠外柔内刚少...

  • 赝品最终流向了谁

    我的名字叫“赝”,“嫣、妍、琰、赝”的赝。多么艳丽的名字呀!我喜欢。我的体型也好,上半部属“雁”,下半身从“贝”,...

  • 19世纪法国著名版画家 古斯塔夫·多雷作品欣赏

    La Siesta, Memory of Spain The House of Caiaphas After th...

  • 赝之春

    文/渊云 已是三月,一路上,芦苇是灰的,去年留到今日的枝条依旧是枯的,天也不亮,到没下雨,风儿也喧嚣,吹得云不...

  • 赝花匠

    羡慕植物葱葱的绿, 难抵鲜花盛开诱惑的美丽, 年少轻狂伴着春风得意的节气, 将你捧回我的小家里。 阳光照耀着你, ...

  • 赝 品

    她做鉴宝工作多年 被业界誉为手有乾坤 眼扫万物的鉴宝第一人的 顶尖鉴宝师 真真假假参差不齐 鱼目混珠 赝品与真迹相...

网友评论

      本文标题:siesta赝势生成

      本文链接:https://www.haomeiwen.com/subject/dnbwdhtx.html