OCP库3步拿到催化剂吸附能

OCP库3步拿到催化剂吸附能

【免费下载链接】ocpFAIR Chemistry's library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp

你在筛非均相催化剂,需要 CO 在 Cu(100) 表面的吸附能。DFT 跑完一组候选位点是小时级工作量,而一个表面还有 ontop、bridge、hollow 等几十个候选位点要枚举。OCP库(fairchem)是 FAIR Chemistry 的机器学习化学工具包,用 UMA 机器学习势直接输出能量和力,"位点枚举 → 逐点弛豫 → 吸附能"整条流程在 GPU 上分钟级完成。

fairchem 三层能力:数据、模型、应用

fairchem 是 FAIR Chemistry 的中心仓库,把材料科学与量子化学的数据、模型、应用代码收在一个仓库里,可以拆成三层看:

  • 数据层:OC20/OC22/OC25(催化)、OMol25(分子与聚合物)、OMat24(无机材料)、ODAC(MOF)等数据集的配置与生成代码;src/fairchem/data/oc/ 提供 Bulk/Slab/Adsorbate 对象,从一个体相 id 就能构建候选吸附-表面构型。
  • 模型层:UMA 是等变 GNN,在 5 亿条 DFT 样本上训练,用 MoLE(Mixture of Linear Experts)路由架构;uma-s-1p2p1(6.6M 激活/290M 总参数)与uma-m-1p1(50M 激活/1.4B 总参数)两个模型覆盖 oc20、oc22、oc25、omat、omol、odac、omc 共 7 个任务,定义在 src/fairchem/core/models/uma/。
  • 应用层:AdsorbML(最低吸附能)、Cattsunami(催化反应路径)、FastCSP(晶体结构预测)等 pip 子包,按需安装。

精度与速度看官方基准:UMA-S 1.2.1 在 OMol25 验证集上力 MAE 约 7.5 meV/Å,1296 原子水体系的 NVE 动力学约 45 ms/step(NVIDIA H200)。

从结构到吸附能:三步拆解

task_name 怎么选:1 个模型对应 7 套 DFT 理论水平

输入是 ASEAtoms结构加task_name。UMA 以任务、元素组成、总电荷、总自旋作为 MoLE 路由输入,选中对应专家分支,输出能量与力(omat 任务还输出应力)。任务不是"领域开关",而是不同的 DFT 泛函:oc20 用 RPBE(无色散,训练数据不含氧化物与溶剂),oc25 用 RPBE+D3,omat 用 PBE/PBE+U,omol 用 ORCA6 的 wB97M-V 且要求atoms.info里给出总电荷与自旋多重度(默认 0/1);oc22、oc25 仅在 UMA 1.2 提供。跨任务比较能量没有意义,它们来自不同参考计算。

候选位点枚举:Bulk 到 AdsorbateSlabConfig 的 4 个对象

输入是一个 bulk id。处理分四步:Bulk生成体相参考结构,Slab.from_bulk_get_specific_millers按密勒指数切出表面,Adsorbate从 SMILES 数据库取吸附质,AdsorbateSlabConfig用启发式加随机放置枚举 ontop/bridge/hollow 位点。输出是Atoms列表,每个构型可单独挂 calculator 弛豫:

slab = Slab.from_bulk_get_specific_millers(bulk, specific_millers=(1, 1, 1)) ads = Adsorbate(adsorbate_smiles_from_db="*H", adsorbate_db_path=db) configs = AdsorbateSlabConfig(slab[0], ads, mode="random_site_heuristic_placement", num_sites=20)

轨迹异常检测:滤掉 4 类无效吸附能

弛豫过程中如果吸附质脱附、解离、插层,或表面重构了,末帧能量差就不再是吸附能。DetectTrajAnomaly(见 src/fairchem/data/oc/utils/flag_anomaly.py)用轨迹首末帧加原子 tag(0=体相,1=表面,2=吸附质)输出 4 个布尔值,统计前先过滤;算吸附能时还要减去弛豫后的 slab 能量与气相原子参考能:

flag = DetectTrajAnomaly(traj[0], traj[-1], traj[0].get_tags()) ok = not (flag.is_adsorbate_desorbed() or flag.is_adsorbate_dissociated() or flag.has_surface_changed())

最小可运行示例:弛豫 Cu(100) 上的 CO

安装两行(Python 3.10+)。UMA 检查点在 HuggingFace 上是 gated 仓库,需先用 token 登录;如需阅读或修改源码,先git clone https://gitcode.com/GitHub_Trending/oc/ocp:

pip install fairchem-core huggingface-cli login # 先在 HF 申请 UMA 仓库访问权限
from ase.build import fcc100, add_adsorbate, molecule from ase.optimize import LBFGS from fairchem.core import pretrained_mlip, FAIRChemCalculator predictor = pretrained_mlip.get_predict_unit("uma-s-1p2p1", device="cuda") calc = FAIRChemCalculator(predictor, task_name="oc20") slab = fcc100("Cu", (3, 3, 3), vacuum=8) # 8 Å 真空层 add_adsorbate(slab, molecule("CO"), 2.0, "bridge") # CO 放在距表面 2 Å 的桥位 slab.calc = calc LBFGS(slab).run(0.05, 100) # 弛豫到最大力 < 0.05 eV/Å print(slab.get_potential_energy())

常见坑与解法

首次运行报 401 或权限错误。原因:UMA 检查点在 gated 仓库,匿名下载被拒。解法:在 HuggingFace 申请 UMA 仓库访问权限,然后huggingface-cli login或设置HF_TOKEN环境变量。

前几次推理很快,之后突然变慢并打印警告。原因:default 与 turbo 快速路径(merge_mole + compile)要求组成、任务、电荷、自旋在多次求值间保持不变,一旦变化会永久回退到未编译路径。解法:同质体系放同一批;异构批量用inference_settings="batch"。

吸附能数值明显偏大。原因:参考减错了——漏减弛豫后的 slab 能量或气相原子参考能,或跨任务直接比较能量。解法:E_ads = E_adslab − E_slab(弛豫后) − Σ气相原子参考能(OC20 论文参考值或自行 DFT 计算);只在同一任务内比较。

MOF 体系(odac 任务)另注意:训练数据只有 CO2/H2O 吸附,新框架需谨慎:

资源索引

  • docs/core/quickstart.md:UMA 快速上手与任务选择表
  • docs/core/uma.md:7 个任务与 DFT 理论水平对照
  • docs/catalysts/examples_tutorials/adsorption_energies/adsorption_energies.md:完整吸附能教程,从位点枚举到文献对比
  • docs/core/common_tasks/ase_calculator.md:default/batch/turbo 推理模式细节
  • src/fairchem/data/oc/:位点枚举代码与吸附质数据库

从 quickstart 拿到第一个能量与力,再到吸附能教程跑通一次完整筛选流程。

【免费下载链接】ocpFAIR Chemistry's library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

STM32驱动DS1302实时时钟:GPIO模拟三线时序与掉电走时实战

STM32驱动DS1302实时时钟:GPIO模拟三线时序与掉电走时实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:56:36 阅读更多 →
CSS加载光效实战指南:从渐变原理到性能优化的完整方案

CSS加载光效实战指南:从渐变原理到性能优化的完整方案

先说句实在话&#xff1a;CSS加载光效这东西&#xff0c;我做前端这几年几乎每个项目都会碰到。小到按钮 loading&#xff0c;大到后台管理系统整页骨架屏&#xff0c;总得有点“光”在动&#xff0c;用户才觉得页面没死。这个标题看着简单&#xff0c;背后其实堆了不少细节——…

2026/10/21 1:56:36 阅读更多 →
SSM+Vue教学资源库系统开发实战:从上传审核到在线预览

SSM+Vue教学资源库系统开发实战:从上传审核到在线预览

1. 起因&#xff1a;教学资源乱成一锅粥&#xff0c;才决定动手做这个库先交代一下背景。我们这边是搞创客教育的团队&#xff0c;课程横跨图形化编程、开源硬件、3D建模几个方向&#xff0c;老师和助教加起来十几号人&#xff0c;积累的教案、课件、代码示例、电路图、视频素材…

2026/10/21 1:55:36 阅读更多 →

最新新闻

前端表格公式能力新选择|智表 ZCell 公式引擎深度剖析

前端表格公式能力新选择|智表 ZCell 公式引擎深度剖析

前言做填报系统、财务测算、报表平台&#xff0c;在线表格的公式计算能力是绕不开的硬需求。很多前端表格组件只实现简单加减运算&#xff0c;函数支持寥寥无几&#xff1b;跨表引用、命名区域、自定义函数能力缺失&#xff1b;导入导出 Excel 时公式直接丢失&#xff0c;业务流…

2026/10/21 2:37:57 阅读更多 →
AI 生图人物不一致?从参考图输入到结果审核的排查清单

AI 生图人物不一致?从参考图输入到结果审核的排查清单

给同一个角色做一组图片&#xff0c;第一张在室内&#xff0c;第二张换到街上&#xff0c;脸也跟着变了。继续往提示词里加“同一个人”“保持一致”&#xff0c;仍然未必有用。 先检查参考图有没有真正参与生成&#xff0c;再看它和文字要求是否一致。 第一&#xff0c;模型…

2026/10/21 2:37:57 阅读更多 →
实验操作开启DHCP和Telnet

实验操作开启DHCP和Telnet

一&#xff5c;DHCP 动态 IP 分配实验完整实操记录 &#x1f4cc;实验拓扑&#xff1a;Router路由器 1 台 S3700 二层交换机 2 台 PC 终端 4 台 R1-G0/0/0 连接左侧交换机&#xff0c;接入 PC1、PC2&#xff08;网段&#xff1a;192.168.1.0/24&#xff09; R1-G0/0/1 连接右…

2026/10/21 2:37:57 阅读更多 →
鸿蒙第9篇——Image组件

鸿蒙第9篇——Image组件

图片是APP不可缺少的组件,少了它就显得很枯燥。 先看效果图 1. 创建 Image组件 使用以下方法创建一个Image组件 Image(src: PixelMap | ResourceStr | DrawableDescriptor) src 是图片的数据源, 加载时分几种情况: 使用ResourceStr, 包括本地资源、网络资…

2026/10/21 2:37:57 阅读更多 →
AI智能化项目管理(二):AI如何拆分需求文档,让需求颗粒度更一致?

AI智能化项目管理(二):AI如何拆分需求文档,让需求颗粒度更一致?

摘要&#xff1a;同一份需求文档&#xff0c;有人拆成3条&#xff0c;有人拆成十几条。拆得太粗&#xff0c;交付范围不清&#xff1b;拆得太细&#xff0c;后续管理又变得琐碎。AI智能需求条目化&#xff0c;旨在结合组织规则与文档上下文&#xff0c;辅助识别可独立管理的业务…

2026/10/21 2:37:57 阅读更多 →
遥感图像数据集 海陆遥感分割图像语义分割数据集 UNet、DeepLabV3框架处理

遥感图像数据集 海陆遥感分割图像语义分割数据集 UNet、DeepLabV3框架处理

如何使用深度学习模型对海陆分割&#xff08;sea-land&#xff09;遥感图像进行语义分割 文章目录如何使用深度学习模型对海陆分割&#xff08;sea-land&#xff09;遥感图像进行语义分割1. 数据集准备2. 安装依赖库3. 自定义数据集类4. 模型定义与训练训练脚本5. 推理与结果可…

2026/10/21 2:36:57 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →