CP2K教程系列之结构优化(Pymatflow篇)


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

简介

前面我们已经了解过如何使用CP2K进行静态单点能的计算。而要想进行体系几何结构优化的计算,我们需要在静态计算的基础上增加与离子运动相关的参数设置。

CP2K的输入文件组织具有较强的模块性和逻辑性。负责体系能量与力计算的FORCE_EVAL与负责体系离子运动的模块MOTION相互有联系但是却是独立组织起来的。这里我们来看看如何设置MOTION模块的参数:

&MOTION
    &GEO_OPT
        MAX_DR 0.003
        MAX_FORCE 0.00045        
        MAX_ITER 200
        RMS_DR 0.0015
        RMS_FORCE 0.0003
        OPTIMIZER BFGS
        TYPE MINIMIZATION
    &END GEO_OPT
    &PRINT
        &TRAJECTORY
        &END TRAJECTORY
    &END PRINT
&END MOTION

可以看到这里设置是非常简单的,只需要注意子模块GEO_OPT下的几个变量的设置。下面列出了模块中出现的参数的意义:

  • MAX_DR:当前和之前优化步的最大几何改变的收敛判据,单位是​。
  • MAX_FORCE:当前状态的最大原子间受力的收敛判据,单位是​。
  • MAX_ITER:最大的几何优化步数。
  • RMS_DR:当前和之前优化步的几何改变的均方根值,单位是​。
  • RMS_FORCE:当前状态的原子间受力均方根值,单位是​。
  • OPTIMIZER:指定几何优化使用的优化器,如BFGS、LBFGS、CG算法。
  • TYPE:指定几何优化的类型,可以使MINIMIZATION和TRNASITION_STATE。用于几何结构优化用默认的MINIMIZATION就可以了。

为了运行计算,需要将FORCEL_EVAL和GLOBAL参数模块加入进来,这部分的设置,参考静态计算部分:

CP2K教程系列之静态计算(Pymatflow篇)

其中需要注意的是GLOBAL中需要设置RUN_TYPE为GEO_OPT。

使用Pymatflow高效完成任务

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

~$ matflow cp2k -r 1 --cif nacl.cif --cutoff 100 --kpoints-scheme "monkhorst-pack 3 3 3" -d nacl-geo-opt

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

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

简单后处理

~$ pflow cp2k -r 1 -d nacl-geo-opt

上图为简单后处理后在nacl-geo-opt/post-processing下生成的每个离子步总能的变化趋势图。

往期文章

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

项目文档地址:

http://pymatflow.readthedocs.org/

中文手册:

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

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

举报
评论 0