前面我们已经了解过如何使用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
&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就可以了。
注意事项
要注意这里进行的是非变胞的几何结构优化,至于优化过程中同时对晶格常数和晶胞形状进行优化的变胞几何结构优化,我们将在后面的文章中进行探讨。
另外之前CP2K有一个劣势就是缺少对K点计算的支持,好在可以通过计算大的体系来弥补这一缺点。否则对小的体系不使用足够的K点来进行计算,是不能得到好的结果的。不过现在CP2K已经能够支持K点计算了,在FORCE_EVAL/DFT/KPOINTS中进行设置,包括常见的Monkhorst-Pack方案的K点网格生成都得到了支持。这使得CP2K也能够对小体系进行计算了。
领取专属 10元无门槛券
私享最新 技术干货