分类:
2010-02-05 16:10:15
·PWSCF计算实例分析(1)
| |
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点进行平移 |