本系列CP2K教程是《CP2K菜根谭》的升级版,在旧版基础上添加了如何结合Pymatflow工具简化计算流程的内容。话不多说,本文将为您带来CP2K系列教程中的静态计算部分。

静态计算设置

静态计算是大多数人接触第一性原理计算后第一次运行的计算类型。很多其它类型的计算的参数设置与静态计算参数的设置紧密相关,比如结构优化,AIMD,过渡态搜索等。

只有静态电子结构计算的参数设置合理才能够保证后续的结构优化等步骤有一个坚实的基础。比如有时候,很急冲冲地就想要对体系进行结构优化,但是忽略了电子步DFT参数的设置的合理性,就有可能无法得到好的优化结果。

可见掌握良好合理的单点能计算参数的设置对于进行后续的各种类型的模拟也是至关重要的。

单点能计算的核心也就是进行Kohn-Sham方程的一个自洽求解过程,通常又被称为自洽场(SCF)过程。在CP2K中,这部分的设置主要通过FORCE_EVAL输入模块进行。

完整输入文件

老传统,先给出完整输入文件,再一一进行解释。

&GLOBAL    PROJECT NaCl-Static    RUN_TYPE ENERGY_FORCE    PRINT_LEVEL LOW    FFTW_PLAN_TYPE ESTIMATE&END GLOBAL​&FORCE_EVAL    METHOD QS    &SUBSYS        &KIND Na            BASIS_SET DZVP-MOLOPT-SR-GTH            POTENTIAL GTH-PBE        &END KIND        &KIND Cl            BASIS_SET DZVP-MOLOPT-SR-GTH            POTENTIAL GTH-PBE        &END KIND        &CELL            A 5.691694000 0.000000000 0.000000000            B 0.000000000 5.691694000 0.000000000            C 0.000000000 0.000000000 5.691694000            PERIODIC XYZ        &END CELL        &TOPOLOGY            COORD_FILE_FORMAT xyz            COORD_FILE_NAME nacl.xyz        &END TOPOLOGY    &END SUBSYS    &DFT        BASIS_SET_FILE_NAME BASIS_MOLOPT        POTENTIAL_FILE_NAME GTH_POTENTIALS        &QS            METHOD gpw            EPS_DEFAULT 1e-14        &END QS        &POISSON            PERIODIC XYZ            POISSON_SOLVER PERIODIC        &END POISSON        &MGRID            CUTOFF 100            REL_CUTOFF 60            NGRIDS 4        &END MGRID        &XC            &XC_FUNCTIONAL pbe            &END XC_FUNCTIONAL        &END XC        &KPOINTS            SCHEME monkhorst-pack 3 3 3        &END KPOINTS        &SCF            ADDED_MOS 0            SCF_GUESS ATOMIC            EPS_SCF 1e-06            MAX_SCF 50            &DIAGONALIZATION TRUE                ALGORITHM STANDARD            &END DIAGONALIZATION            &MIXING TRUE                ALPHA 0.4                METHOD BROYDEN_MIXING            &END MIXING        &END SCF        &PRINT        &END PRINT    &END DFT    &PROPERTIES    &END PROPERTIES&END FORCE_EVAL

其中nacl.xyz文件的内容为

8a comment lineNa  0.000000    0.000000    0.000000Na  0.000000    2.845847    2.845847Na  2.845847    0.000000    2.845847Na  2.845847    2.845847    0.000000Cl  0.000000    0.000000    2.845847Cl  0.000000    2.845847    0.000000Cl  2.845847    0.000000    0.000000Cl  2.845847    2.845847    2.845847

(将输入参数文件与坐标文件nacl.xyz放在同一个路径下就可以运行示例)

整个输入文件分为两个大的部分,即&GLOBAL与&FORCE_EVAL。其中GLOBAL比较简单,参数PROJECT用于指定项目名,其会被用来辅助cp2k输出文件的命名,这里不用过多关心。我们需要关心的是设置运行类型,即RUN_TYPE为ENERGY_FORCE,或者也可以设置为ENERGY,两者都是静态计算,不过后者不会计算原子受到的力。另外PRINT_LEVEL决定了程序输出内容的多少,可以为DEBUG、HIGH、LOW、MEDIUM、SILENT五个选项之一。

好了,该轮到重头戏&FORCE_EVAL部分了。下面我们按照出现的顺序依次进行解释。

首先就是&FORCE_EVAL模块的参数,常见的设置就是QS或者叫QUICKSTEP了。Quickstep是CP2K的DFT计算的核心方法实现。Quickstep基于高斯平面波(GPW)或高斯缀加平面波(GAPW)基组。关于这两种基组的优点可以见文章CP2K 菜根谭之简介。

然后就需要通过&SUBSYS模块来设置计算体系。通过&KIND &END_KIND组合来为体系中所有的类型的元素定义DFT计算中使用的贋势和基组类型,你可以进入你的CP2K安装目录下的data中查看贋势和基组文件。需要注意的是这里通过BASIS_SET和POTENTIAL定义的基组和贋势需要分别出现在后面的通过&DFT中的BASIS_SET_FILE_NAME和POTENTIAL_FILE_NAME定义的基组文件和贋势文件中。

&CELL是用来定义超胞的,而&TOPOLOG被用于定义体系的坐标几何。通过COORD_FILE_FORMAT定义坐标文件的格式,如这里的xyz格式,通过COORD_FILE_NAME定义坐标文件名。得到支持的文件格式包括: cif、crd、g96、pdb、xyz等常见格式。另外除了通过这种引入外部文件的方式来定义体系坐标外,也可以直接通过COORD来进行坐标的定义。比如可以将上面的&TOPOLOGY部分替换为下面的内容:

&COORDNa  0.000000    0.000000    0.000000Na  0.000000    2.845847    2.845847Na  2.845847    0.000000    2.845847Na  2.845847    2.845847    0.000000Cl  0.000000    0.000000    2.845847Cl  0.000000    2.845847    0.000000Cl  2.845847    0.000000    0.000000Cl  2.845847    2.845847    2.845847&END COORD

解析来就是定义DFT计算的一系列参数,其中BASIS_SET_FILE_NAME``和POTENTIAL_FILE_NAME在前面已经有提到过,用来定义基组和贋势文件名。

&QSMETHOD GPWEPS_DEFAULT 1.0E-10&END QS

这部分定义QS方法的一些参数,包括使用的方法,如这里的GPW。以及为所有的能量收敛阈值设置一个默认值EPS_DEFAULT。

&MGRID  CUTOFF 100  REL_CUTOFF 60  NGRIDS 4&END MGRID​

MGRID定义了实空间mutltigrid的一些参数,包括实空间网格的截断值CUTOFF(可以类比为截断能)。使用到的multigrid的数量NGRIDS

&XC  &XC_FUNCTIONAL PBE  &END XC_FUNCTIONAL&END XC

这部分定义了使用的交换关联泛函,如这里使用的是PBE泛函。

&SCF  ADDED_MOS 0  SCF_GUESS ATOMIC  EPS_SCF 1e-05  MAX_SCF 50  &DIAGONALIZATION TRUE  ALGORITHM STANDARD  &END DIAGONALIZATION  &MIXING TRUE      ALPHA 0.4      METHOD BROYDEN_MIXING  &END MIXING  &PRINT  &END PRINT&END SCF

这里定义了SCF自洽过程的相关参数。如ADDED_MOS定义了额外添加到计算中的轨道的数量。SCF_GUESS定义了初始波函数的构造方案。EPS_SCF定义了SCF的收敛阈值。MAX_SCF定义了最大的自洽循环步数。

&DIAGONALIZATION部分表明使用常规的正交化求解KS矩阵。至于CP2K中替代传统正交化方法的OT方法,我们将在后面的文章中进行介绍。

&MIXING部分定义了SCF迭代过程中对密度矩阵进行混合的参数。ALPHA定义了密度矩阵混合的比例,METHOD定义了采取的混合方法,常见的有BROYDEN_MIXING和DIRECT_P_MIXING、PULAY_MIXING。


基本参数的解释到这里就结束了,至于偷偷潜入其中的&PRINT部分,后面在许多地方比如涉及到需要静态计算获取一些物理性质的时候需要用到它们。现在我们暂时忽略。

使用Pymatflow高效完成任务

为了完成上述计算任务,只需使用Pymatflow一条命令即可:

~$ matflow cp2k -r 0 --cutoff 100 --kpoints-scheme "monkhorst-pack 3 3 3" -d nacl-static

上述命令会在当前路径创建nacl-static目录,然后在其下自动生成输入文件并进行作业任务的提交。默认使用PBS作业调度器。

你也可以通过--server指定其它服务器类型,比如吕梁天河二号超算系统请使用--server llhpc参数。如果你只是想在本地单节点运行,请使用一下参数组合: --runopt genrun、--auto 0。

等待计算任务结束后,你可以通过postflow命令来进行部分计算结构的后处理:

~$ postflow cp2k -r 0 -d nacl-static

上图为在nacl-static/post-processing目录下得到的静态自洽过程能量的变化。

往期文章

Linux下无法挂载exfat格式的分区

Linux中那些我们赖以为生的Bash别名

如何实现更改Linux终端字体的种类和大小

Linux使用图形界面连接WiFi

Pymatflow是一个用于第一性原理模拟的工作流自动化管理软件,目前支持的计算程序有VASP、Qutum ESPRESSO、Abinit、SIESTA、CP2K。

项目文档地址:

http://pymatflow.readthedocs.org/

中文手册:

https://pymatflow.readthedocs.io/en/latest/manual_cn.html

欢迎关注以获取更多关于Pymatflow和第一性原理计算的精彩内容。

利用dft的定义计算dft的matlab程序_CP2K教程系列之静态计算(Pymatflow篇)相关推荐

  1. matlab 万年历,转 计算万年历的Matlab程序

    this.p={ m:2, b:2, loftPermalink:'', id:'fks_0800670800820800740840800950950850850820710820860820740 ...

  2. 电网络节点电压matlab,电力网潮流电压计算例题与matlab程序技术总结.docx

    电力网潮流电压计算例题与MATLAB程序编写佘名寰本文介绍了两个电力网潮流计算例题.一例为5个节点5条支路:另一例有6个节点7条支路,有PQ负荷节点也有PV发电机节点,变压器支路标么变比不为1.本文给 ...

  3. 电网络节点电压matlab,电力网潮流电压计算例题与matlab程序

    本文介绍了电力网潮流计算两个例题,给出了完整的计算程序和计算结果.程序包括计算网络节点导纳矩阵和潮流电压两部分.例题选自研究生教材,比较典型实用.希望供电力专业师生和基层技术人员潮流计算时参考. 电力 ...

  4. matlab程序设计基础教程 刘国良,MATLAB程序设计基础教程 刘国良 西安电子科技大学出版社...

    商品描述: [图书描述]: 本书以MATLABR2010a为基础,较全面.系统地介绍了MATLAB的理论和应用,内容包括MArLAB的基本知识和基本程序设计.数值分析.科学计算.符号运算和图形绘制等. ...

  5. 根据PLL相噪测试曲线计算jitter的Matlab程序

    最近在测试,没有相噪仪,频谱仪只能测出相噪数据,无法得到jitter数据,所以就自己写了一个Matlab程序计算. 计算方法是按照ADI工程师Walt Kester的Converting Oscill ...

  6. matlab计算地转流程序,geostrophy 用于海洋科学中计算地球流的一系列matlab程序 联合开发网 - pudn.com...

    geostrophy 所属分类:matlab例程 开发工具:matlab 文件大小:14259KB 下载次数:76 上传日期:2016-03-25 08:36:07 上 传 者:楠楠 说明:  用于海 ...

  7. 使用扩展卡尔曼滤波(EKF)估计电池SOC(附MATLAB程序及详解)part1主函数篇

    一.数据导入 这个脚本的主要目标是提供一个使用扩展卡尔曼滤波器(EKF)的电池荷电状态(SOC)估计的程序.使用二阶RC等效电路模型来分析电池在使用中的SOC和端电压(Vt),并考虑到电池表面温度的影 ...

  8. 【潮流计算】基于matlab粒子群算法优化电力系统潮流计算【含Matlab源码 2157期】

    ⛄一.粒子群算法简介 1 标准粒子群优化(PSO)算法 PSO算法根据对环境的适应度将群体中的个体移动到好的区域,将每个个体看作是D维搜索空间中的一个粒子,根据粒子本身的飞行经验和群体中其他同伴的飞行 ...

  9. matlab 利用polyfitpolyval函数进行基线矫正【matlab程序】

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %对原始数据进行基线矫正 %通过矫正,使起始 ...

最新文章

  1. windows server 远程桌面安装和配置
  2. mysql查询 伪列_Mysql数据库查询到的数据设置伪列显示
  3. ubuntu18.04(bionic) 配置阿里数据源
  4. pcie协议_PCIE总线,你不得不知道的信号分布及使用情况
  5. MTK 驱动---(9)emmc 分区管理
  6. 「leetcode」111.二叉树的最小深度(与求最大深度还有所不同的)
  7. LightGBM 二元分类、多类分类、 Python的回归和分类器应用
  8. PSP3000/2000V3用5.03GEN-C安装教程
  9. 第一章 Android Framework 基础认知
  10. 图像滤镜艺术---美颜相机之高级柔焦效果实现
  11. 华为HG8245光纤猫路由设置
  12. java 一元二次方程_如何用java编写一元二次方程的求根问题
  13. 用树莓派搭建(虚拟专用网络)服务器
  14. 关于自己ip地址的文章
  15. Ubuntu输入正确密码,屏幕一闪,又回到登录界面
  16. 你不能错过的文章撰写软件
  17. 21、关于破解点触的验证码
  18. 中行安全控件可致 Win8 笔记本键盘失灵
  19. 面向对象:白茶清欢无别事,我在等风也等你
  20. 华为IPsec实现支部与支部间借助总部进行隧道中转

热门文章

  1. 解决maven打包报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2
  2. idea 玩转 码云 -- idea安装码云插件
  3. 根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)
  4. JAVA 数组元素的反转
  5. Spring Boot2.0+中,自定义配置类扩展springMVC的功能
  6. __invoke,try{}catch(){},microtime(),is_callable()
  7. mvc:default-servlet-handler/作用
  8. 算法与数据结构(三) 二叉树的遍历及其线索化(Swift版)
  9. 数据结构之链式栈的一些基本操作
  10. 从全栈式解决方案到情感化,揭秘问众智能切入车载语音市场的最佳姿势...