Python aiida-qe-app 包实战案例与常见错误
1. 引言aiida-qe-app 是基于 AiiDA 工作流框架、面向 Quantum ESPRESSOQE第一性原理计算的高层应用包。它把输入文件准备、任务提交、结果解析、数据归档等繁琐步骤封装成可复用的工作流让科研人员可以更专注于物理问题本身。本文将从功能、安装、语法、参数、9 个实际应用案例以及常见错误与注意事项六个方面系统介绍 aiida-qe-app 的使用方法。2. 核心功能aiida-qe-app 的核心功能可以概括为以下四类工作流封装将 Quantum ESPRESSO 的 pw.x、cp.x、ph.x 等计算任务封装为 AiiDA 工作流支持结构优化、自洽计算、能带计算、态密度计算等常见场景。数据管理自动记录输入结构、参数、伪势、输出结果等 provenance 信息保证计算可追溯、可复现。结果解析内置解析器自动提取能量、力、应力、能带、态密度等物理量并存入 AiiDA 数据库。批量与参数扫描支持对截断能、k 点密度、晶格常数等参数进行批量扫描便于收敛性测试和相图计算。3. 安装与环境配置aiida-qe-app 依赖 AiiDA 核心、Quantum ESPRESSO 可执行文件以及若干 Python 库。推荐使用 conda 或 pip 安装。# 创建并激活 conda 环境 conda create -n aiida-qe python3.10 conda activate aiida-qe 安装 AiiDA 核心推荐使用 2.x 版本 pip install aiida-core2.5.0 安装 aiida-qe-app pip install aiida-qe-app 初始化 AiiDA 配置文件 aiida-ctl profile init --profile qe-profile 安装 Quantum ESPRESSO 可执行文件以 Ubuntu 为例 sudo apt install quantum-espresso安装完成后需要把 QE 可执行文件注册到 AiiDA 中并配置伪势库。伪势建议使用 SSSP 库可通过 aiida-pseudo 插件安装。# 注册 pw.x 可执行文件 aiida-ctl code setup --label pw --computer localhost --remote-abs-path /usr/bin/pw.x 安装 SSSP 伪势库 aiida-pseudo install sssp --version 1.3.0 --family SSSP/1.3/PBE4. 基本语法与工作流调用aiida-qe-app 的核心入口是QeAppWorkchain及其子类。用户通过构建输入字典并调用工作流即可提交计算。下面是一个最基础的自洽计算示例。from aiida import load_profile from aiida.orm import StructureData, Dict, KpointsData from aiida.plugins import WorkflowFactory load_profile() 构建结构以硅为例 import numpy as np cell np.array([ [0.0, 2.735, 2.735], [2.735, 0.0, 2.735], [2.735, 2.735, 0.0], ]) structure StructureData(cellcell) structure.append_atom(position(0.0, 0.0, 0.0), symbolsSi) structure.append_atom(position(0.25, 0.25, 0.25), symbolsSi) 构建参数 parameters Dict(dict{ CONTROL: {calculation: scf, restart_mode: from_scratch}, SYSTEM: {ecutwfc: 40.0, ecutrho: 320.0, occupations: smearing, smearing: gaussian, degauss: 0.01}, ELECTRONS: {conv_thr: 1e-8, mixing_beta: 0.7}, }) 构建 k 点 kpoints KpointsData() kpoints.set_kpoints_mesh([4, 4, 4]) 提交工作流 QeAppWorkchain WorkflowFactory(quantum_espresso.app) inputs { structure: structure, parameters: parameters, kpoints: kpoints, pseudos: {Si: SSSP/1.3/PBE}, code: pwlocalhost, metadata: {label: Si-scf-test}, } result QeAppWorkchain.submit(inputs) print(f工作流提交成功PK {result.pk})工作流提交后可以通过verdi process list查看状态通过verdi process show pk查看详情通过verdi calcjob output pk查看输出文件。5. 常用参数详解aiida-qe-app 的参数体系与 Quantum ESPRESSO 的输入卡片一一对应同时增加了一些 AiiDA 特有的控制参数。下面按类别说明。5.1 结构相关参数structureAiiDA 的 StructureData 对象包含晶胞和原子坐标。pseudos字典键为元素符号值为伪势家族名或 UUID。5.2 计算控制参数parametersDict 对象对应 QE 的 CONTROL、SYSTEM、ELECTRONS 等卡片。kpointsKpointsData 对象定义 k 点网格或路径。code字符串或 Code 对象指定使用的 QE 可执行文件。5.3 工作流级参数relax_type可选 none、positions、cell、positions_cell控制结构优化类型。max_iterations结构优化最大迭代次数。convergence_threshold力与应力的收敛阈值。protocol预置的精度协议如 fast、moderate、precise可快速设置截断能和 k 点密度。下表总结了常用参数及其默认值。参数名类型默认值说明relax_typestrnone结构优化类型protocolstrmoderate精度协议ecutwfcfloat由 protocol 决定平面波截断能Ryecutrhofloat由 protocol 决定电荷密度截断能Rykpoints_meshlist由 protocol 决定k 点网格conv_thrfloat1e-8电子自洽收敛阈值smearingstrgaussian展宽方法degaussfloat0.01展宽宽度Ry6. 9 个实际应用案例案例 1硅的晶格常数优化通过扫描晶格常数找到能量最低点确定平衡晶格常数。这是最基础的收敛性测试。from aiida.orm import load_node from aiida.plugins import WorkflowFactory QeAppWorkchain WorkflowFactory(quantum_espresso.app) lattice_constants [5.40, 5.43, 5.46, 5.49, 5.52] for a in lattice_constants: structure StructureData(cell[[0, a/2, a/2], [a/2, 0, a/2], [a/2, a/2, 0]]) structure.append_atom(position(0, 0, 0), symbolsSi) structure.append_atom(position(a/4, a/4, a/4), symbolsSi) inputs { structure: structure, parameters: Dict(dict{CONTROL: {calculation: scf}, SYSTEM: {ecutwfc: 40, ecutrho: 320}}), kpoints: KpointsData().set_kpoints_mesh([6, 6, 6]), pseudos: {Si: SSSP/1.3/PBE}, code: pwlocalhost, metadata: {label: fSi-a-{a}}, } QeAppWorkchain.submit(inputs)案例 2水的结构优化对水分子进行结构优化固定晶胞只优化原子位置。# 构建水分子结构 structure StructureData(cell[[10, 0, 0], [0, 10, 0], [0, 0, 10]]) structure.append_atom(position(0, 0, 0), symbolsO) structure.append_atom(position(0.957, 0, 0), symbolsH) structure.append_atom(position(-0.240, 0.927, 0), symbolsH) inputs { structure: structure, parameters: Dict(dict{ CONTROL: {calculation: relax}, SYSTEM: {ecutwfc: 50, ecutrho: 400, occupations: fixed}, ELECTRONS: {conv_thr: 1e-8}, }), kpoints: KpointsData().set_kpoints_mesh([1, 1, 1]), pseudos: {O: SSSP/1.3/PBE, H: SSSP/1.3/PBE}, code: pwlocalhost, relax_type: positions, metadata: {label: H2O-relax}, } QeAppWorkchain.submit(inputs)案例 3能带结构计算先做自洽计算再沿高对称路径计算能带。aiida-qe-app 提供了专门的能带工作流。from aiida.plugins import WorkflowFactory BandsWorkchain WorkflowFactory(quantum_espresso.app.bands) inputs { structure: structure, parameters: Dict(dict{CONTROL: {calculation: scf}, SYSTEM: {ecutwfc: 40}}), kpoints: KpointsData().set_kpoints_mesh([6, 6, 6]), pseudos: {Si: SSSP/1.3/PBE}, code: pwlocalhost, metadata: {label: Si-bands}, } BandsWorkchain.submit(inputs)案例 4态密度DOS计算在自洽计算基础上用更密的 k 点网格计算态密度。DosWorkchain WorkflowFactory(quantum_espresso.app.dos) inputs { structure: structure, parameters: Dict(dict{CONTROL: {calculation: scf}, SYSTEM: {ecutwfc: 40}}), kpoints: KpointsData().set_kpoints_mesh([12, 12, 12]), pseudos: {Si: SSSP/1.3/PBE}, code: pwlocalhost, metadata: {label: Si-dos}, } DosWorkchain.submit(inputs)案例 5截断能收敛性测试扫描不同 ecutwfc观察总能量变化确定收敛的截断能。ecutwfc_list [20, 30, 40, 50, 60] for ecut in ecutwfc_list: inputs { structure: structure, parameters: Dict(dict{CONTROL: {calculation: scf}, SYSTEM: {ecutwfc: ecut, ecutrho: 8*ecut}}), kpoints: KpointsData().set_kpoints_mesh([6, 6, 6]), pseudos: {Si: SSSP/1.3/PBE}, code: pwlocalhost, metadata: {label: fSi-ecut-{ecut}}, } QeAppWorkchain.submit(inputs)案例 6k 点密度收敛性测试扫描不同 k 点网格密度检查总能和力的收敛情况。kmesh_list [[2, 2, 2], [4, 4, 4], [6, 6, 6], [8, 8, 8]] for kmesh in kmesh_list: inputs { structure: structure, parameters: Dict(dict{CONTROL: {calculation: scf}, SYSTEM: {ecutwfc: 40}}), kpoints: KpointsData().set_kpoints_mesh(kmesh), pseudos: {Si: SSSP/1.3/PBE}, code: pwlocalhost, metadata: {label: fSi-kmesh-{kmesh[0]}}, } QeAppWorkchain.submit(inputs)案例 7表面能计算构建 slab 模型计算表面能。需要先优化 slab 结构再计算体相能量。# 构建 Al(100) 表面 slab structure StructureData(cell[[4.05, 0, 0], [0, 4.05, 0], [0, 0, 20]]) # 添加 Al 原子层此处省略具体坐标 # ... inputs { structure: structure, parameters: Dict(dict{CONTROL: {calculation: relax}, SYSTEM: {ecutwfc: 40}}), kpoints: KpointsData().set_kpoints_mesh([6, 6, 1]), pseudos: {Al: SSSP/1.3/PBE}, code: pwlocalhost, relax_type: positions, metadata: {label: Al-100-slab}, } QeAppWorkchain.submit(inputs)案例 8吸附能计算计算分子在表面的吸附能需要分别计算吸附体系、干净表面和自由分子的能量。# 吸附体系 inputs_ads { structure: structure_ads, # 吸附结构 parameters: Dict(dict{CONTROL: {calculation: relax}, SYSTEM: {ecutwfc: 40}}), kpoints: KpointsData().set_kpoints_mesh([4, 4, 1]), pseudos: {Al: SSSP/1.3/PBE, H: SSSP/1.3/PBE}, code: pwlocalhost, relax_type: positions, metadata: {label: H-ads-on-Al}, } QeAppWorkchain.submit(inputs_ads) # 干净表面和自由分子的计算类似此处省略《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。

相关新闻

篡改猴5.1.6193 Chrome 127+兼容性修复指南

篡改猴5.1.6193 Chrome 127+兼容性修复指南

简介:篡改猴测试版 5.1.6193 是一款面向前端开发者、自动化脚本编写者及浏览器扩展爱好者的轻量级用户脚本(UserScript)开发与管理工具,专为快速编辑、调试和部署网页增强脚本而设计。资源包共82个文件,涵盖11个核心JS…

2026/10/18 6:11:48 阅读更多 →
context-mode:用 React Context 统一模式状态,告别权限判断混乱

context-mode:用 React Context 统一模式状态,告别权限判断混乱

1. 从一次“角色模式混乱”说起:context-mode 到底在解决什么我最近在处理一个后台项目时,被同一个问题反复折腾:同一个页面,管理员进来能看到完整操作区,编辑者进来只能看到部分字段,访客进来直接是一张只…

2026/10/18 6:11:48 阅读更多 →
Linux网络基础详解:IP、子网、网关、DNS、路由

Linux网络基础详解:IP、子网、网关、DNS、路由

服务连不上、域名解析失败、能 ping 通 IP 却打不开网页——这些网络问题的根源,大多出在四个基本概念上:IP、子网、网关、DNS,再叠加一层路由。很多人对它们是「知道名字、说不清原理」的状态,所以排障时只能靠重启和猜。这一篇把…

2026/10/18 6:10:48 阅读更多 →

最新新闻

从手工到自动:做 PPT 的 10 步改造记录

从手工到自动:做 PPT 的 10 步改造记录

## 背景在团队协作场景里,做 PPT 找模板排版到半夜是效率的主要损耗点。## 核心能力- 文本素材自动梳理大纲- 大纲支持二次编辑- 多套配色模板可选- 渲染16:9标准PPTX文件## 落地场景团队协作等场景都能直接搬进工作流,输入是散乱的原始材料,…

2026/10/18 8:12:12 阅读更多 →
钱包技术演进:从私钥管理到Web3入口的身份跃迁

钱包技术演进:从私钥管理到Web3入口的身份跃迁

老实说,很多人对“钱包”这个词的理解是从转账开始的。我最初也以为钱包就是“放币”的地方,直到有一次帮别人恢复一个旧地址,折腾了大半个晚上,才发现钱包技术真正管的是私钥,而不是资产本身。钱包技术这几年最明显的…

2026/10/18 8:12:12 阅读更多 →
macOS上配置Git与SSH密钥推送代码到码云完整教程

macOS上配置Git与SSH密钥推送代码到码云完整教程

从Windows换到Mac之后,我第一件头疼的事就是把本地代码推到码云上去。之前习惯了图形界面,突然面对终端里的git命令,确实有点手足无措。这篇博客就是我在macOS上折腾Git上传代码到码云的完整记录,从环境准备、SSH配置,…

2026/10/18 8:12:12 阅读更多 →
2025 Web开发课程设计:静态到移动三阶段进阶路径

2025 Web开发课程设计:静态到移动三阶段进阶路径

简介:文档以2025年Web开发课程设计为背景,面向计算机专业学生与初级Web开发者,系统梳理了静态网站、动态交互、移动端专项三类案例。静态部分涵盖旅游主题网站与大学官网仿制,涉及DIVCSS布局、响应式设计、CSS3动画及BEM命名规范&…

2026/10/18 8:12:12 阅读更多 →
基于LogicFlow的自定义边实现发光流动动画,打造动态流程高亮

基于LogicFlow的自定义边实现发光流动动画,打造动态流程高亮

前几天在做一个合同审批流可视化面板的时候,产品抛了个比较“魂牵梦绕”的需求:能不能让正在执行的那条连线自己亮起来,像电流一样流动?当时画布上已经铺了一百多条默认折线边,如果全部高亮肯定花掉,但只高…

2026/10/18 8:12:12 阅读更多 →
从极简命名到工程化落地:响应式实时数据处理项目实战

从极简命名到工程化落地:响应式实时数据处理项目实战

1. 从“rea”这个标题说起:一个极简命名背后的完整项目思维第一次看到“rea”这个标题,很多人会愣一下——三个字母,没有上下文,没有说明,甚至连大小写都没区分。但恰恰是这种极简命名,在真实的项目开发中非…

2026/10/18 8:11:12 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →