VASP 教程:VASP 機器學習力場微調

機器學習力場(Machine-Learned Force Fields, MLFFs)作為一種新興的計算方法,已在第一性原理分子動力學(Ab Initio Molecular Dynamics, AIMD)模擬中展現出獨特優勢(參見 VASP Wiki:Category:Machine-learned force fields)。該方法既保持了基于量子力學基本原理的物理準確性,又顯著降低了傳統 AIMD 模擬的計算成本,使得長時間尺度的分子動力學模擬成為可能。
傳統 AIMD 模擬(如基于密度泛函理論 DFT 的方法)由于需要對電子結構進行精確求解,單步計算代價極為昂貴。而經典分子動力學雖然采用經驗力場大幅提升計算效率,但其準確性嚴重依賴于預先設定的原子間勢能函數,這些勢能通常基于實驗數據構建,并經驗性地納入范德華力、靜電相互作用等關鍵物理因素。這種建模方式使得力場性能受限于研究者對特定體系相互作用的認知程度。
VASP 提供的實時機器學習力場技術有效解決了上述兩難問題。本教程將系統性地演示如何通過調整機器學習超參數來優化聲子譜計算結果,最終獲得最優的力場參數文件。通過本教程,您將了解如下 VASP 機器學習的超參數:

  • ML_IWEIGHT #權重選取模式
  • ML_WTSIF #權重系數
  • ML_WTOTEN #總能權重系數
  • ML_WIFOR #力權重系數
  • ML_SIGW0 #擬合步長精度
  • ML_RCUT1 #徑向截斷距離
  • ML_RCUT2 #夾角截斷距離
  • ML_EPS_LOW #擬合精度

通過合理地調整參數,我們最終將得到與 DFT 幾乎一模一樣的結果。


教程鏈接:https://go.openbayes.com/OzP7A

該教程將在云平臺?http://OpenBayes.com?上使用 RTX 4090 進行演示,使用下方邀請鏈接注冊即可獲得 4 小時 RTX 4090 免費使用時長:
https://openbayes.com/console/signup?r=Dennis9801_1ohB

一、輸入文件說明

輸入文件包含

├── dft_phonon
│ ├── band.yaml (DFT參考聲子譜)
├── ml_phonon (機器學習聲子譜計算文件夾)
├── refit (微調文件夾)
│ ├── INCAR
│ ├── KPOINTS
│ ├── ML_AB
│ ├── POSCAR
│ ├── POTCAR
│ ├── clean.sh
│ └── run.sh
├── t.py
本教程只關注 ~/refit 文件夾下的輸入文件即可

run.sh

#進行機器學習擬合
mpirun -n 1 vasp_std
#將力場參數文件轉移到聲子計算文件夾中
cp ML_FFN ../ml_phonon/ml/ML_FF
#進行聲子機器學習計算
cd ../ml_phonon/
chmod 777 *.sh
./run.sh
cd ../
#繪制對比圖
python t.py

INCAR 機器學習擬合設置

SYSTEM = SiIVDW   = 11     #范德華力
ISMEAR = 0      #費米展寬
SIGMA  = 0.02  #展寬
LWAVE  = F #不保留波函數
LCHARG = F #不保留電荷
IBRION = 0      #MD (treat ionic degrees of freedom)
NSW    = 1       #機器學習需要設置成 1
POTIM  = 1      #MD time step in fs
ISIF   = 3          #
機器學習
ML_LMLFF  = T        #啟用機器學習力場
ML_ISTART  = 3       #重新擬合模式(微調模式)
ML_IWEIGHT = 3       #權重選取模式
ML_WTSIF  = 1        #權重系數
ML_WTOTEN = 1        #總能權重系數
ML_WIFOR =  1        #力權重系數
ML_SIGW0 = 1E-20   #擬合步長精度
ML_RCUT1 = 8.         #徑向截斷距離
ML_RCUT2 = 6.         #夾角截斷距離
ML_EPS_LOW = 1E-20 #擬合精度
ML_MB = 5000      #運行內存設置

KPOINTS(啟用機器學習時不使用,隨便設置一個即可)

K-Spacing Value to Generate K-Mesh: 0.040
0
Gamma4   4   4
0.0  0.0  0.0

POSCAR

機器學習訓練的超胞大小,可參考教程:使用 VASP 進行機器學習力場訓練

POTCAR

系統對應元素的贗勢組合,這里為 Si 的贗勢

ML_AB

這是事先計算好的系統對應的分子動力學數據,具體訓練流程可參考教程:使用 VASP 進行機器學習力場訓練,然后將 ML_ABN 重命名為 ML_AB,這里為 Si 的分子動力學數據,已經事先準備好了。

二、操作步驟

1. 克隆并啟動容器

登錄?http://OpenBayes.com,在「公共教程」頁面,選擇「VASP 機器學習力場微調」教程。

頁面跳轉后,點擊右上角「克隆」,將該教程克隆至自己的容器中。

選擇「NVIDIA GeForce RTX 4090」以及「vasp」鏡像,OpenBayes 平臺提供了 4 種計費方式,大家可以按照需求選擇「按量付費」或「包日/周/月」,點擊「繼續執行」。可以使用文章開頭的邀請鏈接,獲得 RTX 4090 使用時長!

待系統分配好資源,當狀態變為「運行中」后,點擊「打開工作空間」。

2. 上傳文件

首先打開「終端」,輸入以下命令進入 refit 文件夾。

cd refit

然后上傳準備好的硅贗勢,這里可以使用「官網例子」里的贗勢 POTCAR。把 POTCAR 放到目錄中,并復制到「ml_phonon/ml」中。


3. 安裝 phonopy 環境

輸入以下命令安裝 phonopy 環境。

conda install -c conda-forge phonopy

當模型運行到以下階段,輸入「y」同意安裝。

4. 運行腳本

輸入以下命令運行腳本。

chmod 777 *.sh./run.sh

5. 微調參數

最后計算的結果將輸出在 pdf 中,查看文件 ml.png

回到「refit」文件夾,更改權重模式為「ML_IWEIGHT = 2」,再次運行腳本查看結果。

最后得到的輸出結果為下圖。可以看到結果更差了,回頭更改權重模式「ML_IWEIGHT = 1 再觀察結果。

得到結果如下圖。綜合比較可以發現 1 和 3 的結果差不多,甚至 1 的細節更好(光學支),接下來在「ML_IWEIGHT = 1」的情況下,進行改進。我們嘗試單獨增加擬合力的精度,將「ML_WIFOR」改小。

可以發現變化不大,這說明我們應該嘗試增加截斷距離,給予更多擬合空間。

可以看到,結果反而更差(光學支),那這說明參數空間過大,找到的極值點反而不是最小值點。我們應當反過來減小截斷距離。

更改參數,重新運行后,我們最后得到了能生成與 DFT 一模一樣聲子譜的機器學習力場參數。

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

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

相關文章

Java+Vue開發的倉庫管理系統,實時監控庫存,精準統籌貨物出入與調配

前言: 在當今競爭激烈的商業環境中,高效的倉庫管理對于企業的運營和成本控制至關重要。一個完善的倉庫管理系統能夠幫助企業實現貨物的精準存儲、快速出入庫、實時庫存監控以及全面的數據分析,從而提升整體運營效率、降低庫存成本、增強客戶…

【王陽明代數】熱門問答,什么是張量?

【王陽明代數】熱門問答,什么是張量? 流形學習基礎概念前情提要,張量概念的提出,王船山流形與信息容量的概念回答:什么是張量前,對王船山流形,意氣實體的定義再表述;王船山流形分析1…

差分壓縮算法(增量更新)

差分壓縮算法是一種數據壓縮技術,它的核心思想是通過找出數據之間的差異來減少需要存儲或傳輸的數據量。下面從基本原理、常見應用場景、算法示例等方面詳細介紹差分壓縮算法。 基本原理 差分壓縮算法的基本原理是比較相鄰數據元素之間的差異,并只記錄…

Html5支持的視頻文件格式和音頻文件格式有哪些?

視頻文件格式 MP4:MPEG-4 Part 14,支持H.264編碼。幾乎所有的瀏覽器都支持該格式。 WebM:谷歌開發的格式,使用VP8或VP9編碼,可以在大多數現代瀏覽器中播放 Ogg:開放媒體格式,使用Vorbis編碼&…

J20250704 算法題5道

題目一覽: 606. 根據二叉樹創建字符串 - 力扣(LeetCode) 506. 相對名次 - 力扣(LeetCode) 1. 兩數之和 - 力扣(LeetCode) 100. 相同的樹 - 力扣(LeetCode) 101. 對稱…

UNet改進(15):分組注意力機制在UNet中的應用探索

引言 注意力機制已成為現代深度學習架構中不可或缺的組成部分,特別是在計算機視覺領域。近年來,各種注意力機制的變體被提出,以解決不同場景下的特定問題。本文將深入探討一種稱為分組注意力(Grouped Attention)的機制,以及它如何被集成到經典的UNet架構中,從而提升模型在…

C++之路:類基礎、構造析構、拷貝構造函數

目錄 前言從結構體到類類的聲明與使用基礎聲明繼承聲明數據與函數聲明與調用聲明調用 類的訪問修飾符類對象的內存分布類內數據相關靜態變量非靜態變量 類成員函數相關普通成員函數友元函數構造與析構函數構造函數析構函數 拷貝構造函數總結 前言 面向對象編程有三大特性&#…

黑神話悟空游戲輿情分析

完整項目包點擊文末名片 黑神話悟空上線初期輿情分析 背景 《黑神話:悟空》在上線首日便創下了全球游戲行業的多項新紀錄,包括Steam同時在線人數超過222萬,全渠道總銷量超過450萬份,總銷售額超過15億元。本項目旨在對 3A 游戲《黑…

python的or-tools算法踩坑

debug模式代碼好的,然后正常運行不行(用的PyCharm) 不知道為什么debug模式這個可以的,但是正常模式不行 用or-tools算路徑的時候 因為要多次到達同一個點,但是or-tools不支持,所以弄了虛擬點和真實點的距離是0,但是實際上如果虛擬點到真實點為0的話or-tools結果秒出,但是實…

docker-compose一鍵部署全棧項目。springboot后端,react前端

部署總覽前端打包: 我們將配置 package.json,使用 npm run build (內部調用 vite build) 來打包。這個過程將完全在 Docker 構建鏡像的過程中自動完成,你的主機上甚至不需要安裝 Node.js。后端打包: 我們將配置 pom.xml,使用 mvn clean packa…

MCMC:高維概率采樣的“隨機游走”藝術

MCMC(馬爾可夫鏈蒙特卡洛) 是一種從復雜概率分布中高效采樣的核心算法,它解決了傳統采樣方法在高維空間中的“維度災難”問題。以下是其技術本質、關鍵算法及實踐的深度解析: 本文由「大千AI助手」原創發布,專注用真話…

HarmonyOS免密認證方案 助力應用登錄安全升級

6月21日,2025年華為開發者大會"安全與隱私分論壇"在松山湖順利舉辦。本論壇聚焦App治理與監管、星盾安全2.0的核心能力等進行深度分享與探討。其中,HarmonyOS Passkey免密認證方案作為安全技術創新成果備受矚目。該方案基于FIDO協議實現&#…

flutter flutter_vlc_player播放視頻設置循環播放失效、初始化后獲取不到視頻寬高

插件:flutter_vlc_player: ^7.4.3 問題1:設置循環播放_controller.setLooping(true);無用。 解決方法: //vlcPlayer設置循環播放失效,以這種方式失效循環播放 _setLoopListener() async {if (_videoController!.value.hasError…

React與Vue的主要區別

React和Vue都是當今最流行、最強大的前端Javascript框架,它們都能構建出色的單頁面應用。 以下是React和Vue的主要區別: React: React官方自稱是一個用于構建用戶界面的JavaScript庫(尤其是UI組件)。它專注于視圖層。…

瀏覽器原生控件上傳PDF導致hash值不同

用戶要求對上傳的pdf計算hash排重,上線后發現排重失敗 1、postman直接調用接口沒有發現問題,每次獲取的hash值是一樣的 2、apifox網頁版,調用接口發現問題,清除緩存后(將選擇的文件刪除重新選擇)&#xf…

.net 的依賴注入

依賴注入(Dependency Injection,簡稱 DI)是一種軟件設計模式,旨在將對象之間的依賴關系從代碼內部解耦出來,通過外部提供的方式來建立依賴關系,從而提高軟件的可維護性、可測試性和可擴展性。以下從概念、工作原理、常見類型、在不同框架中的應用等方面進行詳細解釋: 概…

【unitrix】 4.17 類型級別右移運算實現解析(shr.rs)

一、源碼 這段代碼實現了類型級別的右移運算(>>),包括對整數和定點數的支持。 /*類型級別的右移運算實現* 編制人: $ource* 修改版次:0版完成版* 本版次創建時間: 2025年6月27日* 最后修改時間: 2025年7月2日 Sub1修改* 待完善問題&a…

Java 并發核心:AQS(AbstractQueuedSynchronizer) 詳解

一、什么是 AQS? AbstractQueuedSynchronizer(簡稱 AQS)是 Java 并發包 java.util.concurrent.locks 中的一個核心同步框架,用于構建鎖和同步器,如: ReentrantLockReentrantReadWriteLockCountDownLatchS…

LoRA 實戰指南:NLP 與 CV 場景的高效微調方法全解析

大模型已成 AI 應用的“標配”,但高昂的訓練和部署成本讓很多企業望而卻步。LoRA(Low-Rank Adaptation)作為一種輕量級微調方案,正成為 NLP 與 CV 場景中低成本定制的利器。本文詳細通過詳細介紹 LoRA 的核心原理、在文本與圖像任…

centos指令

一、python 1、查詢運行中腳本 ps aux | grep python2、關閉腳本進程 kill -15 <PID> # 優雅終止&#xff08;SIGTERM&#xff09; kill -9 <PID> # 強制終止&#xff08;SIGKILL&#xff09;