0%

【CP2K】01.基础

运行cp2k

使用MPI运行cp2k:

1
mpirun -n 2 cp2k.popt -i argon.inp -o out_ex0.out
  • -i <input_file>:如果是最后一个参数,-i可以省略
  • -o <output_file>:输出文件名

安装vim插件规范.inp文件

  1. 如果下载失败,可以直接从http://manual.cp2k.org/trunk/cp2k.vim下载到 ~/.vim/syntax中

    1
    2
    mkdir -p ~/.vim/syntax
    wget -O ~/.vim/syntax/cp2k.vim http://manual.cp2k.org/trunk/cp2k.vim
  2. 再在~/.vim/下新建filetype.vim,输入:

    1
    2
    3
    4
    5
    6
    if exists("did_load_filetypes")
    finish
    endif
    augroup filetypedetect
    au! BufNewFile,BufRead *.inp setf cp2k
    augroup END

语法折叠

在~/.vimrc中添加:

1
au FileType cp2k setlocal foldlevel=99 foldmethod=indent
  • za:切换当前折叠级别的折叠
  • zA:递归切换所有折叠级别的折叠
  • zM:关闭当前缓冲区中的所有折叠
  • zR:打开当前缓冲区中的所有折叠

自动缩进

只更改指定文件类型cp2k的缩进,在~/.vimrc中添加:

1
au FileType cp2k setlocal shiftwidth=1 tabstop=1

更改所有文件类型和缓冲区的缩进:

1
set shiftwidth=1 tabstop=1
  • =G正确缩进文件的整个部分
  • =正确缩进文件的某个部分(区域)

inp语法

可以在cp2k目录下,通过grep -iR 关键词 ~/tests来查询相关的输入文件。(tests目录中的输入文件主要是用来测试程序运行的正常与否,往往使用了不合理的参数)

  • 主要结构如下,可以在其中嵌套多个&SECTION&END SECTION

    1
    2
    3
    &SECTION
    KEYWORD PARAMETER
    &END SECTION
  • 语法

    • @INCLUDE ’filename’:从文件中读取文本:q
    • @SET VAR value:定义变量
    • @VAR:变量
    • @IF/@ENDIF:简单的逻辑
    • #:注释
  • 单位的设定:(可供的单位有:https://manual.cp2k.org/cp2k-7_1-branch/units.html)

    1
    2
    3
    4
    5
    6
    #默认是angstrom,也可以设置bohr等等
    ABC [nm] 100 100 100
    #默认是hatree,设置Ry等等
    EMAX_SPLINE [eV] 50
    #也可以一起用
    [hatree*bohr^2]

&GLOBAL

1
2
3
4
5
6
7
8
9
&GLOBAL
PROJECT H2O-32
RUN_TYPE MD
PRINT_LEVEL HIGH
&TIMINGS
THRESHOLD 0.000001
&END
WALLTIME 3600
&END GLOBAL
  • PROJECT:任务名称,等同于PROJECT_NAME,CP2K自动生成的所有输出文件都将以这个名称开头。
  • RUN_TYPE:任务类型
    • ENERGY:计算当前结构的能量。对于DFT 来说,就是一个SCF 计算。
    • ENERGY_FORCE:计算当前结构的能量,同时计算出每个原子上的梯度(即受力)。
    • BAND:使用band方法来进行最低能量路径(MEP)以及反应过渡态的搜索,通常可以使用的方法有CI-NEB, IT-NEB等方法。
    • MD:Molecular Dynamics分子动力学模拟
    • CELL_OPT:晶胞参数的优化。
    • GEO_OPT:对当前结构进行几何结构的优化,以获得当前结构对应的局部极小点或者过渡态。GEO_OPT 有两种类型,一种是MINIMIZATION,即优化到极小点;一种是TRANSITION_STATE,即优化到过渡态。过渡态的优化采用Dimer方法来实现。
    • VIBRATIONAL_ANALYSIS:对当前结构进行振动分析。频率计算可以计算部分原子的频率(INVOLVED_ATOMS),也可以计算某一频率范围内的频率计算(MODE_SELECTIVE)。
  • PRINT_LEVEL:输出内容级别,可以是SILENTMEDIUM(默认)、LOWHIGH等。还可以在输入文件中的每个小节来控制单独的输出级别。
  • &TIMINGS:在CP2K执行结束时控制时序报告的打印
    • THRESHOLD:阈值
  • WALLTIME:此运行的最大执行时间。时间以秒为单位或以HH:MM:SS为单位。

&FORCE_EVAL

计算能量和力并描述您要分析的系统所需的参数。

1
2
3
4
5
6
7
8
9
&FORCE_EVAL
METHOD QS
&DFT
...
&END DFT
&SUBSYS
...
&END SUBSYS
&END FORCE_EVAL
  • METHOD:使用哪种方法来计算力
    • QS:默认,同QUICKSTEP
    • FIST:分子力学
    • QMMM:Hybrid quantum classical

&MOTION

定义了一组与原子核运动有关的工具。

1
2
3
4
5
6
7
8
&MOTION
&MD
ENSEMBLE NVE
STEPS 10
TIMESTEP 0.5
TEMPERATURE 300.0
&END MD
&END MOTION

输出文件

  • PROGJECT-1.restart:重启计算的输入文件
  • PROGJECT-pos-1.xyz:MD或结构优化的轨迹
  • PROGJECT-1.ener:MD能量、温度……
  • PROGJECT-1.cell:cell参数
  • PROGJECT-RESTRAT.wfn:重启计算的轨道
有用可戳(●ˇ∀ˇ●)