本系列CP2K教程是《CP2K菜根譚》的升級版,在舊版基礎上添加了如何結合Pymatflow工具簡化計算流程的內容。話不多說,本文將為您帶來CP2K系列教程中的第一性原理分子動力學(AIMD)部分。
簡介
CP2K支持第一性原理分子動力學(AIMD)以及混合量子經典分子動力學(QM/MM)。除了波恩-奧本海默分子動力學以及艾倫菲斯特分子動力學以外,CP2K還實現了一種類似於傳統的Car-Parrinello分子動力學的第二代Car-Parrinello分子動力學,引起了許多學者的關注。
下面的內容,我們將對一個基本的AIMD計算進行示例分析,以讓大家熟悉如何使用CP2K進行AIMD模擬。
使用CP2K進行分子動力學模擬的輸入文件與進行幾何結構優化的輸入文件類似,同樣都有三個大的一級輸入模塊GLOBAL、FORCE_EVAL與MOTION來組成。當然關於AIMD的參數設置主要位於MOTION模塊中,而GLOBAL中通常只需要將GLOBAL/RUN_TYPE設置為MD即可。所以我們就MOTION中的設置進行分析。
下面是一個用於分子動力學模擬的MOTION模塊的樣例:
<code>&MOTION
&MD
ENSEMBLE NVE
STEPS 1000
TEMPERATURE 300
TEMP_TOL 0.0
TIMESTEP 0.5
&END MD
&END PRINT
&END MOTION/<code>
這裡子模塊我們列出了MD和PRINT,分別對分子動力學模擬參數以及輸出進行控制。而對於MD模塊實際上還含有許多子模塊,在進行相應的模擬時可能需要涉及到,這裡我們暫不涉及。
首先我們注意到ENSEMBLE參數,它被用於設定分子動力學模擬體系的系綜,可以使NVE、NVT、ISOKIN、MSST、LANGEVIN等。注意這裡我們使用的是簡單的NVE系綜,如果使用NVT系綜,就還需要設定體系使用的THERMOSTAT來通過外部熱庫來恆定體系溫度。
STEPS參數設定了分子動力學運行的離子步數。TEMPERATURE是體系的溫度。TEMP_TOL為系統允許的溫度偏差,當溫度偏差目標溫度達到此值時會進行速度的rescaling,此參數已經過時,CP2K官方建議採用CSVR類型的THERMOSTAT來作為替代。TIMESTEP參數用於設定分子動力學離子步的時間間隔,默認值為0.5 fs。
到此,一個簡單的NVE系綜的第一性原理分子動力學就可以通過CP2K運行起來了,至於其它類型的系綜以及對應THERMOSTAT的設置,我們在後面的文章中進行介紹。
使用Pymatflow高效完成任務
為了完成上述計算任務,只需使用Pymatflow一條命令即可:
<code>~$ matflow cp2k -r 10 --cutoff 300 --kpoints-scheme NONE -d nacl-aimd --md-steps 100/<code>
上述命令會在當前路徑創建nacl-aimd目錄,然後在其下自動生成輸入文件並進行作業任務的提交。默認使用PBS作業調度器。
你也可以通過--server指定其它服務器類型,比如呂梁天河二號超算系統請使用--server llhpc參數。如果你只是想在本地單節點運行,請使用以下參數組合: --runopt genrun、--auto 0。
其中需要注意的是參數--md-steps 100指定了需要運行的分子動力學離子步數量。
更多參數註解請使用命令查看:
<code>~$ matflow cp2k -h/<code>
簡單後處理:
<code>~$ postflow cp2k -r 10 -d nacl-aimd/<code>
往期文章
Pymatflow是一個用於第一性原理模擬的工作流自動化管理軟件,目前支持的計算程序有VASP、Qutum ESPRESSO、Abinit、SIESTA、CP2K。
項目文檔地址:
http://pymatflow.readthedocs.org/
中文手冊:
https://pymatflow.readthedocs.io/en/latest/manual_cn.html
此公眾號為Pymatflow開發者所運營,歡迎關注以獲取更多關於Pymatflow和第一性原理計算的精彩內容。
閱讀更多 開源科學計算 的文章