本系列CP2K教程是《CP2K菜根譚》的升級版,在舊版基礎上添加了如何結合Pymatflow工具簡化計算流程的內容。話不多說,本文將為您帶來CP2K系列教程中的結構優化計算部分。
簡介
前面我們已經瞭解過如何使用CP2K進行靜態單點能的計算。而要想進行體系幾何結構優化的計算,我們需要在靜態計算的基礎上增加與離子運動相關的參數設置。
CP2K的輸入文件組織具有較強的模塊性和邏輯性。負責體系能量與力計算的FORCE_EVAL與負責體系離子運動的模塊MOTION相互有聯繫但是卻是獨立組織起來的。這裡我們來看看如何設置MOTION模塊的參數:
<code>&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/<code>
可以看到這裡設置是非常簡單的,只需要注意子模塊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一條命令即可:
<code>~$ matflow cp2k -r 1 --cif nacl.cif --cutoff 100 --kpoints-scheme "monkhorst-pack 3 3 3" -d nacl-geo-opt/<code>
上述命令會在當前路徑創建nacl-geo-opt目錄,然後在其下自動生成輸入文件並進行作業任務的提交。默認使用PBS作業調度器。
你也可以通過--server指定其它服務器類型,比如呂梁天河二號超算系統請使用--server llhpc參數。如果你只是想在本地單節點運行,請使用一下參數組合: --runopt genrun、--auto 0。
簡單後處理
<code>~$ pflow cp2k -r 1 -d nacl-geo-opt/<code>
上圖為簡單後處理後在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和第一性原理計算的精彩內容。
閱讀更多 開源科學計算 的文章