Skip to content

QE自洽计算实践详解:pp.x电荷密度后处理与VESTA可视化

本篇为“超链接”系列专题的第3篇QE自洽计算最佳实践,您将获得pp.x电荷密度后处理与VESTA可视化展示。

Quantum ESPRESSO的自洽场(Self-Consistent Field,SCF)计算是一种计算物理方法,用于在密度泛函理论(Density Functional Theory, DFT)框架下求解多电子体系的基态性质。SCF计算主要进行以下内容:

1、电子密度的计算:通过迭代过程确定体系的基态电子密度。
2、波函数的优化:计算并优化电子的波函数,这是描述电子状态的量子力学函数。
3、总能量的计算:计算体系的总能量,包括动能、势能和交换-相关能。

本文将详细介绍如何在超算互联网使用Quantum ESPRESSO v7.2版本进行自洽计算实验,使用pp.x做后处理得到电荷密度图,并用VESTA软件进行可视化展示。

一、SCF计算

目前,超算互联网提供预编译的Quantum ESPRESSO 7.2版本,支持一键购买使用。本文实验测试使用intelmpi2021编译的QE 7.2版本:

https://www.scnet.cn/ui/mall/detail/goods?type=software&common1=APP_SOFTWARE&id=1763166063356571649&resource=APP_SOFTWARE&keyword=quantum+espresso+7.2

您可以通过“我的商品”,在“应用软件”中找到或者搜索该版本商品,点击“命令行”,即可选择区域中心、命令行快速使用软件。

1.png

软件默认安装在家目录的apprepo下,环境变量默认放在软件scripts目录下的env.sh中,可执行如下命令添加环境变量:

shell
source ~/apprepo/qe/7.2-intelmpi2021/scripts/env.sh

此外,超算互联网还提供软件运行测试算例和slurm作业脚本,用户可以直接提交作业,运行算例。本次实践,我们使用软件case目录下的gan算例做scf计算,输入文件粘贴如下

shell
&control                                      !计算控制参数
    calculation='scf'                         !表示自洽场计算
    prefix='gan'                              !输出文件的前缀为gan
    restart_mode='from_scratch'               !重启模式设置为从头计算
    pseudo_dir='./' 
    outdir='./' 
    tprnfor=.true.                            !打印力的选项为真
    tstress=.true.                            !打印应力的选项为真
 /
 &system                                      !该区域定义系统的结构信息
    ibrav = 4                                 !表示体心四方晶格
    celldm(1)=5.95484286816                            
    celldm(3)=1.63011343669
    nat = 4                                   !原子总数为4
    ntyp = 2                                  !原子类型有2种(Ga和N)
    ecutwfc = 160                             !波函数截断能设置为160Ry
 /
 &electrons                                   !定义电子计算参数
    diagonalization='david'                   !对角化方法为Davidson
    mixing_beta=0.7                           !混合参数beta设置
    conv_thr=1.0d-10                          !电子迭代的收敛阈值
 /
ATOMIC_SPECIES                                !定义了原子类型和对应的赝势文件
  Ga  69.723   Ga_ONCV_LDA-1.0.upf               
  N   14.007   N_ONCV_LDA-1.0.upf
ATOMIC_POSITIONS crystal                      !以晶体坐标定义原子位置(Ga和N在晶格中的位置)
  Ga  0.666666666667 0.333333333333  0.0
  N   0.666666666667 0.333333333333  0.376429222
  Ga  0.333333333333 0.666666666667  0.5
  N   0.333333333333 0.666666666667  0.876429222
K_POINTS automatic                            !定义K点网格
 6 6 4 0 0 0

GaN是一种宽带隙半导体,广泛应用于电子和光电子领域。实验算例设置了体心四方晶格结构,具有两个原子类型(Ga和N),并指定了相应的赝势文件。直接使用case目录下的qe.slurm脚本即可提交作业,使用命令如下:

shell
sbatch  qe.slurm

提交作业后,会提示作业id,使用该作业号,可以查询和跟踪作业情况,以下是两个常用的作业相关命令,其他命令和指导可参考slurm文档或商品对应的使用手册。

shell
squeue   #查看作业队列
sacct –j <job-id> #查看作业运行情况

等待作业完成后,会在当前目录生成以“gan”(输入文件设置的前缀)开头的文件夹,里面包含了运行结果输出文件,通过查看slurm-.out,可以看到类似如下程序的过程输出,“JOB DONE”表示程序正常计算结束。

2.png

二、pp.x后处理,得到电荷密度图

pp.x 是 Quantum ESPRESSO 软件包中的一个程序,其主要目的是数据分析和绘图。该代码执行两个步骤:

1、读取 pw.x 生成的输出,提取并计算所需的量(电荷密度 rho,势能 V等)
 2、将所需的量以适合各种绘图类型和绘图程序的格式写入文件

pp.x 提供了一种快捷的方式来分析和理解 pw.x 计算得到的数据,使得复杂的科学数据可以通过图形的方式直观展示,从而帮助研究人员更好地理解材料的电子结构和其他物理特性。若要使用pp.x做处理,需要按照一定的规则制定输入文件,下面是本算例的pp.x输入设置,这个 文件配置了从 pw.x 计算生成的电荷密度文件中提取电子(伪)电荷密度,并将其转换为 XSF 格式的文件 gan.rho.xsf,以便于后续的可视化分析:

shell
&inputpp                 !包含了 pp.x 程序的主要输入参数
prefix = 'gan'           !设置计算的前缀名称为 gan,这通常与 pw.x 计算使用的前缀相同。
outdir = './'            !设置输出目录
filplot= 'gan.rho'       !指定要处理和绘图的文件名为 gan.rho
plot_num = 0             !指定(选择)保存到filplot的类型
/

&plot                    !主要定义绘图的具体参数
filepp(1)= 'gan.rho'     !要读取的文件为 gan.rho
iflag   = 3              !指定绘图类型是3D plot
output_format = 5        !指定输出格式5,xcrysden 3D格式
fileout = 'gan.rho.xsf'  !输出文件名

关于pp.x输入文件的更多设置,可以参考QE官方文档指导,链接如下:https://www.quantum-espresso.org/Doc/INPUT_PP.html

将上述输入文件保存到pp.in文件,并放置在pw.x的输出文件gan.save同目录下,使slurm提交作业,即可运行后处理计算。slurm作业脚本如下:

shell
#!/bin/bash
#SBATCH -J pp-test
#SBATCH -N 1
#SBATCH --ntasks-per-node=2
#SBATCH -p <队列名>

module purge
source /PATH/TO/YOUR/scripts/env.sh

mpirun pp.x -in pp.in

程序运行过程输出如下图所示,表示正常执行完毕,并且会在当前目录下生成gan.rho和gan.rho.xsf文件,“.xsf”文件可以用可视化软件绘图。

3.png

三、使用VESTA软件进行可视化处理

为了更直观显示,我们推荐用超算互联网的VESTA软件或XCrySDen软件绘制PP后处理得到的“xsf”文件,这里我们选择VESTA软件进行可视化展示,链接如下:

https://www.scnet.cn/ui/mall/detail/goods?type=software&common1=APP_SOFTWARE&id=1815649843946000386&resource=APP_SOFTWARE&keyword=VESTA

4.png

购买软件后,点击“去使用”,在命令行添加VESTA环境变量,设置图形桌面的DISPLAY端口号,即可在Linux图形桌面中使用软件。相关命令如下:

shell
#加载VESTA环境变量
source ~/apprepo/VESTA/gtk3-none/scripts/env.sh
#添加图形桌面端口号export DISPLAY=YOUR PORT
#执行软件
VESTA

Linux图形桌面需要在使用软件前,通过“控制台”-->“图形桌面”-->“Linux图形桌面”,选择与VESTA软件相同的区域,开通后会显示对应的端口号。

首先,打开VESTA软件,通过“File”-->“Open”找到并选择“gan.rho.xsf”文件,即可显示3D电荷密度图。您还可以自由选择“Tools”、“Style”和“Objects”选项显示风格和原子。例如通过调整左侧的“Tools”工具栏,选择“Animation”,可根据不同的轴心演示动画旋转效果。

下图展示了在“Style”选项中“Structural models”同时选择“Show models”和“show dot surface”,风格选择“Stick”;“Volumetric data”选择“show sections”和“Show isosurface”风格为“Dot surface”时的绘图效果。

5.png