资讯详情

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

📅 2026/10/21 1:56:35 | 华诺云谱 👁 阅读
OCP库3步拿到催化剂吸附能
OCP库3步拿到催化剂吸附能【免费下载链接】ocpFAIR Chemistrys 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无机材料、ODACMOF等数据集的配置与生成代码src/fairchem/data/oc/ 提供 Bulk/Slab/Adsorbate 对象从一个体相 id 就能构建候选吸附-表面构型。模型层UMA 是等变 GNN在 5 亿条 DFT 样本上训练用 MoLEMixture of Linear Experts路由架构uma-s-1p2p16.6M 激活/290M 总参数与uma-m-1p150M 激活/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/stepNVIDIA H200。从结构到吸附能三步拆解task_name 怎么选1 个模型对应 7 套 DFT 理论水平输入是 ASEAtoms结构加task_name。UMA 以任务、元素组成、总电荷、总自旋作为 MoLE 路由输入选中对应专家分支输出能量与力omat 任务还输出应力。任务不是领域开关而是不同的 DFT 泛函oc20 用 RPBE无色散训练数据不含氧化物与溶剂oc25 用 RPBED3omat 用 PBE/PBEUomol 用 ORCA6 的 wB97M-V 且要求atoms.info里给出总电荷与自旋多重度默认 0/1oc22、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_pathdb) configs AdsorbateSlabConfig(slab[0], ads, moderandom_site_heuristic_placement, num_sites20)轨迹异常检测滤掉 4 类无效吸附能弛豫过程中如果吸附质脱附、解离、插层或表面重构了末帧能量差就不再是吸附能。DetectTrajAnomaly见 src/fairchem/data/oc/utils/flag_anomaly.py用轨迹首末帧加原子 tag0体相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/ocppip 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, devicecuda) calc FAIRChemCalculator(predictor, task_nameoc20) slab fcc100(Cu, (3, 3, 3), vacuum8) # 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_settingsbatch。吸附能数值明显偏大。原因参考减错了——漏减弛豫后的 slab 能量或气相原子参考能或跨任务直接比较能量。解法E_ads E_adslab − E_slab(弛豫后) − Σ气相原子参考能OC20 论文参考值或自行 DFT 计算只在同一任务内比较。MOF 体系odac 任务另注意训练数据只有 CO2/H2O 吸附新框架需谨慎资源索引docs/core/quickstart.mdUMA 快速上手与任务选择表docs/core/uma.md7 个任务与 DFT 理论水平对照docs/catalysts/examples_tutorials/adsorption_energies/adsorption_energies.md完整吸附能教程从位点枚举到文献对比docs/core/common_tasks/ase_calculator.mddefault/batch/turbo 推理模式细节src/fairchem/data/oc/位点枚举代码与吸附质数据库从 quickstart 拿到第一个能量与力再到吸附能教程跑通一次完整筛选流程。【免费下载链接】ocpFAIR Chemistrys library of machine learning methods for chemistry项目地址: https://gitcode.com/GitHub_Trending/oc/ocp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑