机器学习力场(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;