2008年1月20日星期日

PWSCF计算实例分析(1)[zz]

PWSCF 程序包(早期的叫法),或称为ESPRESSO程序(改名后的叫法),它包括了多几个计算模块,主要的是电子自洽计算模块pw.x,晶格动力学计算模块 (ph.x, phcg.x, dynmat.x,d3.x等),后续数据处理模块pp.x,电子输运性质计算模块pwcond.x,分子动力学模块cp.x等
一、自洽计算
例子:fcc Cu的自洽计算
&control
calculation='scf'
restart_mode='from_scratch',
pseudo_dir = './',
outdir='./'
prefix='cu'
tstress = .true.
tprnfor = .true.
/
&system
ibrav = 2, celldm(1) =6.73, nat= 1, ntyp= 1,
ecutwfc = 25.0, ecutrho = 300.0
occupations='smearing', smearing='gaussian', degauss=0.02
/
&electrons
diagonalization='david'
conv_thr = 1.0e-8
mixing_beta = 0.7
/
ATOMIC_SPECIES
Cu 63.55 Cu.pz-d-rrkjus.UPF
ATOMIC_POSITIONS
Cu 0.0 0.0 0.0
K_POINTS (automatic)
8 8 8 0 0 0

解释:
在电子自洽计算中需设置以下几个方面的参数:
1)控制计算的部分,也就是要设置
&control
.....
第一个'/'之间的关键词。
关键词calculation赋值为'scf'表示此计算是进行自洽电荷密度计算;
restart_mode表示是否是接着上一次的计算而继续的计算,赋值为'from_scratch'意味着是进行一次全新的计算开始;
pseudo_dir用来设置赝势文件所在的目录,赋值为'./'表示赝势文件放在当前计算目录;
outdir用来设置计算过程中输出文件(比如波函数、电荷密度以及势)输出到哪个目录中。赋值为'./'表示这些输出文件将放到当前计算目录中;
prefix用来定义当前计算作业的标题名,它将是一些主要输出文件的文件名。赋值为'cu'用来标记当前计算作业是对Cu进行计算;
tstress 用来设置在自洽计算过程中是否计算体系的应力,设置为 .true.表示在自洽计算过程中要计算体系的应力;
tprnfor 用来设置在自洽计算过程中是否计算体系中原子所受的力,设置为 .true.表示在自洽计算过程中要计算体系中原子所受的力;

2)、 描述所计算的体系(包括它的晶格类型、晶格常数或结构参数、原胞基矢、原胞中原子的类型数目和总的原子数目)、平面波的切断动能(也就是在展开KS轨道或 晶体波函数的平面波切断动能;另外,还包括在计算电荷密度时,展开的平面波的切断动能)、确定电子占有数的方法及相关的参数。也就是由
&system
..........
第二'/'之间的关键词来设置。
ibrav用来归属体系所属的晶格类型,赋值为2表示所计算的体系是fcc结构;
celldm(1)用来设置体系的第一个晶格常数,因为所计算的体系是fcc结构,只需设置celldm(1),相当于指定晶格常数a的值;
nat用来指明体系的原胞中原子的总共数目,赋值为1表示所计算的原胞中只有一个原子;
ntyp用来指明体系中原子类型的数目,赋值为1表示所计算的体系只有一种类型的原子;
occupations用来设置确定电子占有数的方法,赋值为'smearing'表示采用smearing的方法来确定电子的占有数,随后须设置smearing和degauss关键词;
smearing用来指明确定电子占有数的一种具体的smearing方法,赋值为'gaussian'表示采用Gaussian函数来确定电子占有数;
degauss用来确定smearing方法中有关函数的展宽参数,赋值为0.02表示上面Gaussian函数中的展宽参数为0.02。

3)、设置电子自洽计算中本征矢量(波函数)和本征值的计算算法,自洽收敛的标准。也就是
&electrons
......
和第三个'/'之间的关键词来设置。
diagonalization用来设置在求KS方程的本征矢量和本征值时,采用具体的什么算法,赋值为'david'表示采用Davidson iterative diagonalization with overlap matrix方法;
conv_thr用来设置自洽收敛标准,赋值为自洽循环过程总能的变化小于1.0e-8的化,那自洽计算就停止;
mixing_beta用来设置自洽计算过程中前后两次电荷密度混合的参数。

4)、指明体系中原子的元素名,原子量以及所采用的赝势,即ATOMIC_SPECIES 后面的设置,它们的顺序要和后面原子的坐标一一对应起来。
Cu 63.55 Cu.pz-d-rrkjus.UPF
表示所计算的体系中原子是Cu,它的原子量为63.55,它的赝势文件为Cu.pz-d-rrkjus.UPF。

5)、给出体系原胞中原子的坐标位置,也就是ATOMIC_POSITIONS 后面的设置:
Cu 0.0 0.0 0.0
表示原胞中第一个原子是Cu,它位于原胞的原点。

6)、k点取样的设置,也就是K_POINTS 后面的设置:
K_POINTS (automatic) 表示由程序采用M-P方法自动确定k点,需给出k点取样网格的大小,以及是否在产生k点后对这些点进行平移。

8 8 8 0 0 0
表示采用8x8x8的网格来确定k点,而且不对k点进行平移。
[ valenhou 发表于 2006-12-2 23:37:00阅读全文 | 回复(1) | 引用通告 | 编辑]
http://blog.edu.cn/user1/11542/archives/2006/1572977.shtml

1 条评论:

enola 说...

我们想用Pwscf做无磁场下的电子极化,但在输入文件编写时遇到问题,会有from rho xlm read error
please help us
thank you
guchenjie at dot 126.com