利用dft的定義計算dft的matlab程序_CP2K教程系列之靜態計算(Pymatflow篇)

bbadd92b514ad565494ee1fc93459625.png

本系列CP2K教程是《CP2K菜根譚》的升級版,在舊版基礎上添加了如何結合Pymatflow工具簡化計算流程的內容。話不多說,本文將為您帶來CP2K系列教程中的靜態計算部分。

靜態計算設置

靜態計算是大多數人接觸第一性原理計算后第一次運行的計算類型。很多其它類型的計算的參數設置與靜態計算參數的設置緊密相關,比如結構優化,AIMD,過渡態搜索等。

只有靜態電子結構計算的參數設置合理才能夠保證后續的結構優化等步驟有一個堅實的基礎。比如有時候,很急沖沖地就想要對體系進行結構優化,但是忽略了電子步DFT參數的設置的合理性,就有可能無法得到好的優化結果。

可見掌握良好合理的單點能計算參數的設置對于進行后續的各種類型的模擬也是至關重要的。

單點能計算的核心也就是進行Kohn-Sham方程的一個自洽求解過程,通常又被稱為自洽場(SCF)過程。在CP2K中,這部分的設置主要通過FORCE_EVAL輸入模塊進行。

完整輸入文件

老傳統,先給出完整輸入文件,再一一進行解釋。

&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文件的內容為

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

(將輸入參數文件與坐標文件nacl.xyz放在同一個路徑下就可以運行示例)

整個輸入文件分為兩個大的部分,即&GLOBAL與&FORCE_EVAL。其中GLOBAL比較簡單,參數PROJECT用于指定項目名,其會被用來輔助cp2k輸出文件的命名,這里不用過多關心。我們需要關心的是設置運行類型,即RUN_TYPE為ENERGY_FORCE,或者也可以設置為ENERGY,兩者都是靜態計算,不過后者不會計算原子受到的力。另外PRINT_LEVEL決定了程序輸出內容的多少,可以為DEBUG、HIGH、LOW、MEDIUM、SILENT五個選項之一。

好了,該輪到重頭戲&FORCE_EVAL部分了。下面我們按照出現的順序依次進行解釋。

首先就是&FORCE_EVAL模塊的參數,常見的設置就是QS或者叫QUICKSTEP了。Quickstep是CP2K的DFT計算的核心方法實現。Quickstep基于高斯平面波(GPW)或高斯綴加平面波(GAPW)基組。關于這兩種基組的優點可以見文章CP2K 菜根譚之簡介。

然后就需要通過&SUBSYS模塊來設置計算體系。通過&KIND &END_KIND組合來為體系中所有的類型的元素定義DFT計算中使用的贋勢和基組類型,你可以進入你的CP2K安裝目錄下的data中查看贋勢和基組文件。需要注意的是這里通過BASIS_SET和POTENTIAL定義的基組和贋勢需要分別出現在后面的通過&DFT中的BASIS_SET_FILE_NAME和POTENTIAL_FILE_NAME定義的基組文件和贋勢文件中。

&CELL是用來定義超胞的,而&TOPOLOG被用于定義體系的坐標幾何。通過COORD_FILE_FORMAT定義坐標文件的格式,如這里的xyz格式,通過COORD_FILE_NAME定義坐標文件名。得到支持的文件格式包括: cif、crd、g96、pdb、xyz等常見格式。另外除了通過這種引入外部文件的方式來定義體系坐標外,也可以直接通過COORD來進行坐標的定義。比如可以將上面的&TOPOLOGY部分替換為下面的內容:

&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計算的一系列參數,其中BASIS_SET_FILE_NAME``和POTENTIAL_FILE_NAME在前面已經有提到過,用來定義基組和贋勢文件名。

&QSMETHOD GPWEPS_DEFAULT 1.0E-10&END QS

這部分定義QS方法的一些參數,包括使用的方法,如這里的GPW。以及為所有的能量收斂閾值設置一個默認值EPS_DEFAULT。

&MGRID  CUTOFF 100  REL_CUTOFF 60  NGRIDS 4&END MGRID?

MGRID定義了實空間mutltigrid的一些參數,包括實空間網格的截斷值CUTOFF(可以類比為截斷能)。使用到的multigrid的數量NGRIDS

&XC  &XC_FUNCTIONAL PBE  &END XC_FUNCTIONAL&END XC

這部分定義了使用的交換關聯泛函,如這里使用的是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自洽過程的相關參數。如ADDED_MOS定義了額外添加到計算中的軌道的數量。SCF_GUESS定義了初始波函數的構造方案。EPS_SCF定義了SCF的收斂閾值。MAX_SCF定義了最大的自洽循環步數。

&DIAGONALIZATION部分表明使用常規的正交化求解KS矩陣。至于CP2K中替代傳統正交化方法的OT方法,我們將在后面的文章中進行介紹。

&MIXING部分定義了SCF迭代過程中對密度矩陣進行混合的參數。ALPHA定義了密度矩陣混合的比例,METHOD定義了采取的混合方法,常見的有BROYDEN_MIXING和DIRECT_P_MIXING、PULAY_MIXING。


基本參數的解釋到這里就結束了,至于偷偷潛入其中的&PRINT部分,后面在許多地方比如涉及到需要靜態計算獲取一些物理性質的時候需要用到它們。現在我們暫時忽略。

使用Pymatflow高效完成任務

為了完成上述計算任務,只需使用Pymatflow一條命令即可:

~$ matflow cp2k -r 0 --cutoff 100 --kpoints-scheme "monkhorst-pack 3 3 3" -d nacl-static

上述命令會在當前路徑創建nacl-static目錄,然后在其下自動生成輸入文件并進行作業任務的提交。默認使用PBS作業調度器。

你也可以通過--server指定其它服務器類型,比如呂梁天河二號超算系統請使用--server llhpc參數。如果你只是想在本地單節點運行,請使用一下參數組合: --runopt genrun、--auto 0。

等待計算任務結束后,你可以通過postflow命令來進行部分計算結構的后處理:

~$ postflow cp2k -r 0 -d nacl-static
d5e7f37c54b48a6e1b230b5f3486f099.png

上圖為在nacl-static/post-processing目錄下得到的靜態自洽過程能量的變化。

往期文章

Linux下無法掛載exfat格式的分區

Linux中那些我們賴以為生的Bash別名

如何實現更改Linux終端字體的種類和大小

Linux使用圖形界面連接WiFi

Pymatflow是一個用于第一性原理模擬的工作流自動化管理軟件,目前支持的計算程序有VASP、Qutum ESPRESSO、Abinit、SIESTA、CP2K。

項目文檔地址:

http://pymatflow.readthedocs.org/

中文手冊:

https://pymatflow.readthedocs.io/en/latest/manual_cn.html

歡迎關注以獲取更多關于Pymatflow和第一性原理計算的精彩內容。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457875.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457875.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習:最大似然估計與最大后驗概率估計

在機器學習領域,概率估計是經常用到的一種模型,而概率估計中,我們經常會看到兩種估計模型,一種是最大似然估計,即 Maximum likelihood, 另外一種就是最大后驗概率估計,即 Maximum posterior &am…

ubuntu14.04安裝git

參考教程:git介紹:安裝,使用,創建分支 安裝的方法有兩種,一種直接是通過ubuntu的APT安裝,這種方法最簡便,缺點是版本可能不是最新的。所有還有另一種方法是下載源碼進行安裝,這種能…

微軟是如何戲耍程序員們的

2019獨角獸企業重金招聘Python工程師標準>>> 別用微軟的東西。商業目的性太強,千萬別被微軟牽著鼻子走,血淋淋的教訓。微軟推出的垃圾多了去了。它什么都想做,很多都沒做好: MFC:Win31時代出生,…

3d立體相冊特效html網頁代碼_新聞類網頁正文通用抽取器

項目起源開發這個項目,源自于我在知網發現了一篇關于自動化抽取新聞類網站正文的算法論文——《基于文本及符號密度的網頁正文提取方法》這篇論文中描述的算法看起來簡潔清晰,并且符合邏輯。但由于論文中只講了算法原理,并沒有具體的語言實現…

ubuntu14.04安裝 R16 Tina Linux SDK

第一步:由于是14.04系統所以這樣$sudo -i $cd /etc/apt/sources.list.d $echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" > ia32-libs-raring.list $apt-get update $apt-get install ia32-libs $r…

分答

用戶在分答上可以自我介紹或描述擅長的領域,設置付費問答的價格,其他用戶感興趣就可以付費向其提問。分答的收入分配機制增加了信息的價值,分答中信息接收者被區分成了兩種身份。首先提問的人是一種付費懸賞模式,當回答完畢內容沉…

字節數組轉換為圖片_每日一課 | Python 3 TypeError:無法將“字節”對象隱式轉換為str...

將Python 2套接字示例轉換為Python 3whois.py import sysimport sockets socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(("whois.arin.net", 43))s.send((sys.argv[1] "\r\n").encode())response ""while True: data s.re…

php版redis插件,SSDB數據庫,增強型的Redis管理api實例

php版redis插件,SSDB數據庫,增強型的Redis管理api實例 SSDB是一套基于LevelDB存儲引擎的非關系型數據庫(NOSQL),可用于取代Redis,更適合海量數據的存儲。另外,rocksdb是FB在LevelDB的二次開發版本,因此也存…

加速度計和陀螺儀數據融合

本帖翻譯自 IMU(加速度計和陀螺儀設備)在嵌入式應用中使用的指南。這篇文章主要介紹加速度計和陀螺儀的數學模型和基本算法,以及如何融合這兩者,側重算法、思想的討論介紹本指南旨在向興趣者介紹慣性MEMS(微機電系統&a…

循環嵌套練習題

//BOSS://讓用戶輸入一個奇數,打印菱形,最長的行內容個數為用戶輸入的個數,并且由英文字母拼接而成//比如用戶輸入了7// A// ABA// ABCBA// ABCDCBA// ABCBA// ABA// A//1、接收并判斷用戶輸入的是不是數字 try{#region 解法一…

python leetcode_leetcode 介紹和 python 數據結構與算法學習資料

for (剛入門的編程)的高中 or 大學生leetcode 介紹leetcode 可以說是 cs 最核心的一門“課程”了,雖然不是大學開設的,但基本上每一個現代的高水平的程序員都修過這門“課程”(或者類似的課程,比如數據結構…

平衡小車卡爾曼濾波算法

最近研究STM32的自平衡小車,發現有兩座必過的大山,一為卡爾曼濾波,二為PID算法。 網上看了很多關于卡爾曼濾波的代碼,感覺寫得真不咋地。一怒之下,自己重寫,不廢話,貼代碼 [pre lang"C&quo…

IOS 為UILabel添加長按復制功能

IOS 為UILabel添加長按復制功能 在iOS中下面三個控件,自身就有復制-粘貼的功能: 1、UITextView 2、UITextField 3、UIWebView UIKit framework提供了幾個類和協議方便我們在自己的應用程序中實現剪貼板的功能。 1、UIPasteboard:我們可以向其…

navicat 的查詢功能

navicat的查詢的位置在&#xff1a; 在編輯器界面寫代碼&#xff0c;代碼完成后點左上角的運行。 代碼&#xff1a; create&#xff08;創建&#xff09; table&#xff08;一個表&#xff09; <xxx>尖括號內的內容必填——我要創建并查詢一個名叫做xxx的表 &#xff08…

c++ sleep函數_Linux 多線程應用中如何編寫安全的信號處理函數

關于代碼的可重入性&#xff0c;設計開發人員一般只考慮到線程安全&#xff0c;異步信號處理函數的安全卻往往被忽略。本文首先介紹如何編寫安全的異步信號處理函數&#xff1b;然后舉例說明在多線程應用中如何構建模型讓異步信號在指定的線程中以同步的方式處理。Linux 多線程…

css特殊情況

如果一個父級div和一個子級div&#xff0c;要給父級div加&#xff08;opacity&#xff09;透明度那子級div也會繼承父級元素的透明度。那給父級元素加透明度就不用opacity加透明度&#xff0c;使用background:rgba(120,120,120,0.7);實現效果&#xff0c;r,g,b分別代表紅&#…

CoreAnimation (CALayer 動畫)

CoreAnimation基本介紹&#xff1a; CoreAnimation動畫位于iOS框架的Media層CoreAnimation動畫實現需要添加QuartzCore.FrameworkCoreAnimation基本上是LayerAnimationCoreAnimation分類&#xff1a; CoreAnimation作用&#xff1a; CoreAnimation CALayer基本介紹 CALayer的常…

匯編為什么分段執行總是執行不了_iOS匯編教程(六)CPU 指令重排與內存屏障...

系列文章iOS 匯編入門教程(一)ARM64 匯編基礎iOS 匯編入門教程(二)在 Xcode 工程中嵌入匯編代碼iOS 匯編入門教程(三)匯編中的 Section 與數據存取iOS 匯編教程(四)基于 LLDB 動態調試快速分析系統函數的實現iOS 匯編教程(五)Objc Block 的內存布局和匯編表示前言具有 ARM 體系…

GD32 使用stm32 固件庫

1、 系統 1) 晶振起振區別 描述&#xff1a;啟動時間&#xff0c;GD32 與STM32 啟動時間都是2ms&#xff0c;實際上GD 的執行效率快&#xff0c;所以ST 的HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)是2ms&#xff0c;但是這個宏定義值在GD 上時間就更加短了&#xff0c;所以要加大…

干將莫邪

干將莫邪也為凡鐵鑄成&#xff0c;只是善加鍛造、融入心神&#xff0c;而成上古神兵。寶劍從來都是雙刃&#xff0c;正邪之道&#xff0c;存乎一心。