1. 引言aiida-lsmo 是基于 AiiDA 工作流框架开发的 Python 包专门用于自动化高通量分子模拟与材料筛选。它把「结构准备、力场分配、能量最小化、分子动力学、性质计算」等步骤封装成可复用的工作流帮助科研人员在超算集群上批量、可复现地完成计算。本文从功能、安装、语法、参数、9 个实际应用案例以及常见错误与注意事项六个方面系统介绍 aiida-lsmo 的使用方法。2. 功能概述aiida-lsmo 的核心价值在于「把复杂的分子模拟流程变成可追踪、可复现、可并行的工作流」。它主要提供以下能力结构生成与修饰自动构建 MOF、COF、多孔聚合物等周期性结构支持官能团修饰、金属节点替换、配体裁剪。力场自动分配集成多种力场如 UFF、DREIDING、GAFF、OPLS-AA根据原子类型自动匹配参数减少人工输入。能量最小化与分子动力学封装 RASPA、LAMMPS 等引擎的输入生成、任务提交、结果解析支持 NPT/NVT 系综。性质计算自动计算比表面积BET、孔体积、孔径分布、亨利系数、吸附等温线、扩散系数等关键指标。高通量筛选基于 AiiDA 的数据库与进程管理对数百上千个结构批量提交计算并自动汇总结果。可复现性所有输入、输出、参数、环境信息都存入 AiiDA 数据库保证结果可追溯。3. 安装与环境配置aiida-lsmo 依赖 AiiDA 核心框架安装前需要先准备 Python 环境与 AiiDA 数据库。推荐使用 conda 创建独立环境避免依赖冲突。3.1 环境准备conda create -n aiida-lsmo python3.9 -y conda activate aiida-lsmo pip install aiida-core aiida-lsmo安装完成后需要初始化 AiiDA 数据库并创建计算配置文件verdi quicksetup verdi profile list3.2 安装计算引擎aiida-lsmo 默认调用 RASPA 进行吸附模拟调用 LAMMPS 进行分子动力学模拟。需要单独安装并注册到 AiiDA# 安装 RASPA conda install -c conda-forge raspa2 安装 LAMMPS conda install -c conda-forge lammps 在 AiiDA 中注册计算插件 verdi computer setup --label localhost --hostname localhost --transport core.local --scheduler direct --work-dir /tmp/aiida_work verdi computer configure core.local localhost verdi code setup --label raspa --computer localhost --filepath $(which raspa) --input-plugin raspa verdi code setup --label lammps --computer localhost --filepath $(which lmp) --input-plugin lammps验证安装是否成功verdi code list verdi daemon start4. 核心语法与参数aiida-lsmo 的编程接口围绕「结构StructureData」「工作流WorkChain」「参数Dict」三个核心对象展开。下面介绍最常用的语法与参数。4.1 创建结构from aiida.orm import StructureData from ase.io import read 从 CIF 文件读取结构 atoms read(MOF-5.cif) structure StructureData(aseatoms) structure.store()4.2 提交吸附工作流from aiida.orm import Dict, load_code from aiida_lsmo.workchains import IsothermWorkChain code load_code(raspalocalhost) params Dict(dict{ ff_framework: UFF, ff_guest: UFF, temperature: 298.0, pressure: [1e3, 1e4, 1e5], # 单位 Pa molecule: CO2, n_cycles: 5000, n_equilibration: 1000, }) builder IsothermWorkChain.get_builder() builder.structure structure builder.code code builder.parameters params builder.metadata.label CO2-isotherm-MOF5 from aiida.engine import submit node submit(builder) print(f提交成功进程 ID{node.pk})4.3 常用参数说明参数名类型说明示例值ff_frameworkstr骨架力场UFF / DREIDINGff_gueststr客体分子力场UFF / TraPPEtemperaturefloat模拟温度K298.0pressurelist压力点列表Pa[1e3, 1e5]moleculestr吸附质分子CO2 / CH4 / N2n_cyclesint生产循环数5000n_equilibrationint平衡循环数1000n_componentsint混合物组分数1cutofffloat截断半径Å12.0n_cycles_per_cycleint每循环采样步数10004.4 查询计算结果from aiida.orm import load_node node load_node(进程ID) outputs node.outputs isotherm outputs[isotherm] # 吸附等温线数据 print(isotherm.get_dict())5. 9 个实际应用案例5.1 案例一MOF-5 的 CO2 吸附等温线计算这是最基础的入门案例用于验证 aiida-lsmo 环境是否配置正确。通过 IsothermWorkChain 计算 MOF-5 在 298 K 下对 CO2 的吸附等温线并与实验数据对比。from aiida.orm import Dict, load_code from aiida_lsmo.workchains import IsothermWorkChain from aiida.engine import submit code load_code(raspalocalhost) params Dict(dict{ ff_framework: UFF, ff_guest: TraPPE, temperature: 298.0, pressure: [1e3, 5e3, 1e4, 5e4, 1e5], molecule: CO2, n_cycles: 5000, n_equilibration: 1000, }) builder IsothermWorkChain.get_builder() builder.structure structure_mof5 builder.code code builder.parameters params submit(builder)5.2 案例二CH4 存储容量高通量筛选对 100 个不同 MOF 结构批量提交 CH4 吸附计算筛选出高容量候选材料。利用 AiiDA 的进程管理实现并行提交大幅缩短筛选周期。from aiida.engine import submit from aiida.orm import Dict, load_code code load_code(raspalocalhost) for structure in structure_list: # 100 个结构 params Dict(dict{ ff_framework: UFF, ff_guest: UFF, temperature: 298.0, pressure: [6.5e6], # 65 bar molecule: CH4, n_cycles: 3000, n_equilibration: 500, }) builder IsothermWorkChain.get_builder() builder.structure structure builder.code code builder.parameters params submit(builder)5.3 案例三N2 吸附与 BET 比表面积计算通过计算 N2 在 77 K 下的吸附等温线结合 BET 模型自动提取比表面积。aiida-lsmo 内置了 BET 分析模块可直接从等温线数据计算。from aiida_lsmo.workchains import IsothermWorkChain from aiida_lsmo.analysis import bet_analysis 提交 N2 吸附计算 params Dict(dict{ ff_framework: UFF, ff_guest: UFF, temperature: 77.0, pressure: [1e2, 5e2, 1e3, 5e3, 1e4], molecule: N2, n_cycles: 4000, n_equilibration: 1000, }) 计算完成后进行 BET 分析 bet_area bet_analysis(isotherm_node) print(fBET 比表面积{bet_area:.2f} m²/g)5.4 案例四CO2/N2 混合气选择性计算在烟气分离场景中需要计算 CO2/N2 混合气的吸附选择性。通过设置 n_components2 并指定混合物组成计算两组分在 MOF 中的竞争吸附。params Dict(dict{ ff_framework: UFF, ff_guest: TraPPE, temperature: 298.0, pressure: [1e5], molecule: CO2, n_components: 2, mixture_composition: {CO2: 0.15, N2: 0.85}, n_cycles: 6000, n_equilibration: 1500, })5.5 案例五官能团修饰对吸附性能的影响在 UiO-66 骨架上分别引入 -NH2、-OH、-NO2 官能团比较不同修饰对 CO2 吸附量的影响。利用 aiida-lsmo 的结构修饰模块批量生成修饰结构。from aiida_lsmo.utils import functionalize_structure 生成三种修饰结构 for group in [NH2, OH, NO2]: modified functionalize_structure(uio66, group) # 提交吸附计算 builder.structure modified submit(builder)5.6 案例六分子动力学模拟气体扩散使用 LAMMPS 引擎计算 CH4 在 MOF 中的自扩散系数。通过 MolecularDynamicsWorkChain 设置 NPT 系综运行足够长的轨迹后分析均方位移MSD。from aiida_lsmo.workchains import MolecularDynamicsWorkChain md_params Dict(dict{ ff_framework: UFF, ff_guest: UFF, temperature: 298.0, pressure: 1e5, n_steps: 500000, timestep: 1.0, # fs ensemble: npt, thermo_output_interval: 1000, }) builder MolecularDynamicsWorkChain.get_builder() builder.structure structure builder.code load_code(lammpslocalhost) builder.parameters md_params submit(builder)5.7 案例七孔径分布计算利用几何分析方法计算 MOF 的孔径分布为理解吸附选择性提供结构依据。aiida-lsmo 提供 PoreSizeDistribution 工作流基于 Voronoi 网络分析。from aiida_lsmo.workchains import PoreSizeDistributionWorkChain psd_params Dict(dict{ probe_radius: 1.65, # 探针半径Å n_samples: 10000, }) builder PoreSizeDistributionWorkChain.get_builder() builder.structure structure builder.parameters psd_params submit(builder)5.8 案例八金属节点替换筛选在 M-MOF-74 系列中将金属节点从 Mg 替换为 Ni、Co、Zn比较不同金属对 H2 吸附的影响。利用结构替换模块批量生成并计算。from aiida_lsmo.utils import substitute_metal for metal in [Ni, Co, Zn]: new_structure substitute_metal(m_mof74, metal) # 提交 H2 吸附计算 params Dict(dict{ ff_framework: UFF, ff_guest: UFF, temperature: 77.0, pressure: [1e4, 1e5], molecule: H2, n_cycles: 4000, n_equilibration: 1000, }) builder.structure new_structure submit(builder)5.9 案例九多孔聚合物COF的气体分离性能评估对 COF-300 等共价有机框架进行 CO2/CH4 分离性能评估结合吸附等温线与选择性计算判断材料在天然气提纯中的应用潜力。# 构建 COF 结构 cof300 read_cof(COF-300.cif) 计算 CO2 和 CH4 单组分吸附 for molecule in [CO2, CH4]: params Dict(dict{ ff_framework: DREIDING, ff_guest: TraPPE, temperature: 298.0, pressure: [1e3, 1e4, 1e5, 5e5], molecule: molecule, n_cycles: 5000, n_equilibration: 1000, }) builder.structure cof300 submit(builder) 计算结束后用理想吸附溶液理论IAST评估分离选择性6. 常见错误与使用注意事项6.1 常见错误错误现象可能原因解决方法verdi 命令找不到未激活 conda 环境执行 conda activate aiida-lsmo结构加载失败CIF 文件格式错误或原子类型不识别用 ASE 检查结构修正原子类型力场参数缺失原子类型不在所选力场中更换力场或补充自定义力场参数计算任务一直 pendingdaemon 未启动或计算资源不足执行 verdi daemon start检查队列状态内存溢出结构过大或循环数过多减小结构、降低 n_cycles 或增加节点内存结果解析失败RASPA 输出格式与预期不符检查 RASPA 版本查看日志文《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。