CP2K教程系列之結構優化(Pymatflow篇)


CP2K教程系列之結構優化(Pymatflow篇)

本系列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
  &PRINT
      &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>
CP2K教程系列之結構優化(Pymatflow篇)

上圖為簡單後處理後在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和第一性原理計算的精彩內容。


分享到:


相關文章: