利用dft的定义计算dft的matlab程序_CP2K教程系列之静态计算(Pymatflow篇)
本系列CP2K教程是《CP2K菜根譚》的升級(jí)版,在舊版基礎(chǔ)上添加了如何結(jié)合Pymatflow工具簡(jiǎn)化計(jì)算流程的內(nèi)容。話不多說,本文將為您帶來CP2K系列教程中的靜態(tài)計(jì)算部分。
靜態(tài)計(jì)算設(shè)置
靜態(tài)計(jì)算是大多數(shù)人接觸第一性原理計(jì)算后第一次運(yùn)行的計(jì)算類型。很多其它類型的計(jì)算的參數(shù)設(shè)置與靜態(tài)計(jì)算參數(shù)的設(shè)置緊密相關(guān),比如結(jié)構(gòu)優(yōu)化,AIMD,過渡態(tài)搜索等。
只有靜態(tài)電子結(jié)構(gòu)計(jì)算的參數(shù)設(shè)置合理才能夠保證后續(xù)的結(jié)構(gòu)優(yōu)化等步驟有一個(gè)堅(jiān)實(shí)的基礎(chǔ)。比如有時(shí)候,很急沖沖地就想要對(duì)體系進(jìn)行結(jié)構(gòu)優(yōu)化,但是忽略了電子步DFT參數(shù)的設(shè)置的合理性,就有可能無法得到好的優(yōu)化結(jié)果。
可見掌握良好合理的單點(diǎn)能計(jì)算參數(shù)的設(shè)置對(duì)于進(jìn)行后續(xù)的各種類型的模擬也是至關(guān)重要的。
單點(diǎn)能計(jì)算的核心也就是進(jìn)行Kohn-Sham方程的一個(gè)自洽求解過程,通常又被稱為自洽場(chǎng)(SCF)過程。在CP2K中,這部分的設(shè)置主要通過FORCE_EVAL輸入模塊進(jìn)行。
完整輸入文件
老傳統(tǒng),先給出完整輸入文件,再一一進(jìn)行解釋。
&GLOBAL PROJECT NaCl-Static RUN_TYPE ENERGY_FORCE PRINT_LEVEL LOW FFTW_PLAN_TYPE ESTIMATE&END GLOBAL?&FORCE_EVAL METHOD QS &SUBSYS &KIND Na BASIS_SET DZVP-MOLOPT-SR-GTH POTENTIAL GTH-PBE &END KIND &KIND Cl BASIS_SET DZVP-MOLOPT-SR-GTH POTENTIAL GTH-PBE &END KIND &CELL A 5.691694000 0.000000000 0.000000000 B 0.000000000 5.691694000 0.000000000 C 0.000000000 0.000000000 5.691694000 PERIODIC XYZ &END CELL &TOPOLOGY COORD_FILE_FORMAT xyz COORD_FILE_NAME nacl.xyz &END TOPOLOGY &END SUBSYS &DFT BASIS_SET_FILE_NAME BASIS_MOLOPT POTENTIAL_FILE_NAME GTH_POTENTIALS &QS METHOD gpw EPS_DEFAULT 1e-14 &END QS &POISSON PERIODIC XYZ POISSON_SOLVER PERIODIC &END POISSON &MGRID CUTOFF 100 REL_CUTOFF 60 NGRIDS 4 &END MGRID &XC &XC_FUNCTIONAL pbe &END XC_FUNCTIONAL &END XC &KPOINTS SCHEME monkhorst-pack 3 3 3 &END KPOINTS &SCF ADDED_MOS 0 SCF_GUESS ATOMIC EPS_SCF 1e-06 MAX_SCF 50 &DIAGONALIZATION TRUE ALGORITHM STANDARD &END DIAGONALIZATION &MIXING TRUE ALPHA 0.4 METHOD BROYDEN_MIXING &END MIXING &END SCF &PRINT &END PRINT &END DFT &PROPERTIES &END PROPERTIES&END FORCE_EVAL其中nacl.xyz文件的內(nèi)容為
8a comment lineNa 0.000000 0.000000 0.000000Na 0.000000 2.845847 2.845847Na 2.845847 0.000000 2.845847Na 2.845847 2.845847 0.000000Cl 0.000000 0.000000 2.845847Cl 0.000000 2.845847 0.000000Cl 2.845847 0.000000 0.000000Cl 2.845847 2.845847 2.845847(將輸入?yún)?shù)文件與坐標(biāo)文件nacl.xyz放在同一個(gè)路徑下就可以運(yùn)行示例)
整個(gè)輸入文件分為兩個(gè)大的部分,即&GLOBAL與&FORCE_EVAL。其中GLOBAL比較簡(jiǎn)單,參數(shù)PROJECT用于指定項(xiàng)目名,其會(huì)被用來輔助cp2k輸出文件的命名,這里不用過多關(guān)心。我們需要關(guān)心的是設(shè)置運(yùn)行類型,即RUN_TYPE為ENERGY_FORCE,或者也可以設(shè)置為ENERGY,兩者都是靜態(tài)計(jì)算,不過后者不會(huì)計(jì)算原子受到的力。另外PRINT_LEVEL決定了程序輸出內(nèi)容的多少,可以為DEBUG、HIGH、LOW、MEDIUM、SILENT五個(gè)選項(xiàng)之一。
好了,該輪到重頭戲&FORCE_EVAL部分了。下面我們按照出現(xiàn)的順序依次進(jìn)行解釋。
首先就是&FORCE_EVAL模塊的參數(shù),常見的設(shè)置就是QS或者叫QUICKSTEP了。Quickstep是CP2K的DFT計(jì)算的核心方法實(shí)現(xiàn)。Quickstep基于高斯平面波(GPW)或高斯綴加平面波(GAPW)基組。關(guān)于這兩種基組的優(yōu)點(diǎn)可以見文章CP2K 菜根譚之簡(jiǎn)介。
然后就需要通過&SUBSYS模塊來設(shè)置計(jì)算體系。通過&KIND &END_KIND組合來為體系中所有的類型的元素定義DFT計(jì)算中使用的贋勢(shì)和基組類型,你可以進(jìn)入你的CP2K安裝目錄下的data中查看贋勢(shì)和基組文件。需要注意的是這里通過BASIS_SET和POTENTIAL定義的基組和贋勢(shì)需要分別出現(xiàn)在后面的通過&DFT中的BASIS_SET_FILE_NAME和POTENTIAL_FILE_NAME定義的基組文件和贋勢(shì)文件中。
&CELL是用來定義超胞的,而&TOPOLOG被用于定義體系的坐標(biāo)幾何。通過COORD_FILE_FORMAT定義坐標(biāo)文件的格式,如這里的xyz格式,通過COORD_FILE_NAME定義坐標(biāo)文件名。得到支持的文件格式包括: cif、crd、g96、pdb、xyz等常見格式。另外除了通過這種引入外部文件的方式來定義體系坐標(biāo)外,也可以直接通過COORD來進(jìn)行坐標(biāo)的定義。比如可以將上面的&TOPOLOGY部分替換為下面的內(nèi)容:
&COORDNa 0.000000 0.000000 0.000000Na 0.000000 2.845847 2.845847Na 2.845847 0.000000 2.845847Na 2.845847 2.845847 0.000000Cl 0.000000 0.000000 2.845847Cl 0.000000 2.845847 0.000000Cl 2.845847 0.000000 0.000000Cl 2.845847 2.845847 2.845847&END COORD解析來就是定義DFT計(jì)算的一系列參數(shù),其中BASIS_SET_FILE_NAME``和POTENTIAL_FILE_NAME在前面已經(jīng)有提到過,用來定義基組和贋勢(shì)文件名。
&QSMETHOD GPWEPS_DEFAULT 1.0E-10&END QS這部分定義QS方法的一些參數(shù),包括使用的方法,如這里的GPW。以及為所有的能量收斂閾值設(shè)置一個(gè)默認(rèn)值EPS_DEFAULT。
&MGRID CUTOFF 100 REL_CUTOFF 60 NGRIDS 4&END MGRID?MGRID定義了實(shí)空間mutltigrid的一些參數(shù),包括實(shí)空間網(wǎng)格的截?cái)嘀礐UTOFF(可以類比為截?cái)嗄?。使用到的multigrid的數(shù)量NGRIDS
&XC &XC_FUNCTIONAL PBE &END XC_FUNCTIONAL&END XC這部分定義了使用的交換關(guān)聯(lián)泛函,如這里使用的是PBE泛函。
&SCF ADDED_MOS 0 SCF_GUESS ATOMIC EPS_SCF 1e-05 MAX_SCF 50 &DIAGONALIZATION TRUE ALGORITHM STANDARD &END DIAGONALIZATION &MIXING TRUE ? ? ALPHA 0.4 ? ? METHOD BROYDEN_MIXING &END MIXING &PRINT &END PRINT&END SCF這里定義了SCF自洽過程的相關(guān)參數(shù)。如ADDED_MOS定義了額外添加到計(jì)算中的軌道的數(shù)量。SCF_GUESS定義了初始波函數(shù)的構(gòu)造方案。EPS_SCF定義了SCF的收斂閾值。MAX_SCF定義了最大的自洽循環(huán)步數(shù)。
&DIAGONALIZATION部分表明使用常規(guī)的正交化求解KS矩陣。至于CP2K中替代傳統(tǒng)正交化方法的OT方法,我們將在后面的文章中進(jìn)行介紹。
&MIXING部分定義了SCF迭代過程中對(duì)密度矩陣進(jìn)行混合的參數(shù)。ALPHA定義了密度矩陣混合的比例,METHOD定義了采取的混合方法,常見的有BROYDEN_MIXING和DIRECT_P_MIXING、PULAY_MIXING。
基本參數(shù)的解釋到這里就結(jié)束了,至于偷偷潛入其中的&PRINT部分,后面在許多地方比如涉及到需要靜態(tài)計(jì)算獲取一些物理性質(zhì)的時(shí)候需要用到它們。現(xiàn)在我們暫時(shí)忽略。
使用Pymatflow高效完成任務(wù)
為了完成上述計(jì)算任務(wù),只需使用Pymatflow一條命令即可:
~$ matflow cp2k -r 0 --cutoff 100 --kpoints-scheme "monkhorst-pack 3 3 3" -d nacl-static上述命令會(huì)在當(dāng)前路徑創(chuàng)建nacl-static目錄,然后在其下自動(dòng)生成輸入文件并進(jìn)行作業(yè)任務(wù)的提交。默認(rèn)使用PBS作業(yè)調(diào)度器。
你也可以通過--server指定其它服務(wù)器類型,比如呂梁天河二號(hào)超算系統(tǒng)請(qǐng)使用--server llhpc參數(shù)。如果你只是想在本地單節(jié)點(diǎn)運(yùn)行,請(qǐng)使用一下參數(shù)組合: --runopt genrun、--auto 0。
等待計(jì)算任務(wù)結(jié)束后,你可以通過postflow命令來進(jìn)行部分計(jì)算結(jié)構(gòu)的后處理:
~$ postflow cp2k -r 0 -d nacl-static上圖為在nacl-static/post-processing目錄下得到的靜態(tài)自洽過程能量的變化。
往期文章
Linux下無法掛載exfat格式的分區(qū)
Linux中那些我們賴以為生的Bash別名
如何實(shí)現(xiàn)更改Linux終端字體的種類和大小
Linux使用圖形界面連接WiFi
Pymatflow是一個(gè)用于第一性原理模擬的工作流自動(dòng)化管理軟件,目前支持的計(jì)算程序有VASP、Qutum ESPRESSO、Abinit、SIESTA、CP2K。
項(xiàng)目文檔地址:
http://pymatflow.readthedocs.org/
中文手冊(cè):
https://pymatflow.readthedocs.io/en/latest/manual_cn.html
歡迎關(guān)注以獲取更多關(guān)于Pymatflow和第一性原理計(jì)算的精彩內(nèi)容。
總結(jié)
以上是生活随笔為你收集整理的利用dft的定义计算dft的matlab程序_CP2K教程系列之静态计算(Pymatflow篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中找不到vim命令
- 下一篇: matlab %3c handle,vo