mech2d:快速上手指南
mech2d 是一个用于计算二维材料力学性质的 Python 工具,支持弹性常数张量、应力-应变曲线以及方向依赖性质的自动计算。
它将结构生成 → DFT任务 → 结果拟合整合为一个完整流程。
✨ 核心特点(简要)
📐 自动生成形变结构
⚙️ 自动准备并提交 DFT(VASP)任务
📊 自动拟合:
- 弹性常数(Elastic constants)
- 应力-应变曲线(Stress-strain)
🔄 完整工作流:init → run → post
🧩 支持 dpdispatcher / 手动模式
📉 可直接生成力学性质图(极坐标等)
📦 安装
1️⃣ 创建环境(推荐)
idconda create -n mech2d python=3.11 conda activate mech2d
2️⃣ 安装
idgit clone https://gitee.com/haidi-hfut/mech2d.git cd mech2d pip install .
开发测试:
idpip install -e ".[test]" pytest -q
🚀 基本使用流程
mech2d 的核心流程分为三步:
init → run → post
🧱 Step 1:生成形变结构(init)
idm2d init -c POSCAR -n 9 -m 0.02 -a stress
常用参数说明:
-c:输入结构(POSCAR / CIF / XSF)-n:形变结构数量(建议奇数 > 4)-m:最大应变(范围 [-m, +m])-a:拟合方式(stress / energy)
📁 输出结构示例
elc_stress/
├── Def_1/
│ ├── Def_1_001
│ ├── ...
└── Def_2/
├── Def_2_001
├── ...
👉 每个子目录对应一个形变结构
📌 其他常见用法
能量拟合:
idm2d init -c POSCAR -n 9 -m 0.05 -a energy
应力-应变曲线:
idm2d init -c POSCAR -n 21 -r 0.0 0.2 -a stress -d xx yy -p ssc
⚙️ Step 2:生成 & 提交计算(run)
idm2d run -a stress input.yaml
🧾 input.yaml 结构
主要包含四部分:
idmachine: resources: tasks: code:
核心内容:
- machine:运行环境(本地 / 集群)
- resources:CPU / 队列 / 模块
- tasks:执行命令(VASP)
- code:DFT 输入设置
📌 示例(关键部分)
idtasks: command: "mpirun -np 48 vasp_std"
🔧 只生成输入(不提交)
idm2d run -a stress --manual input.yaml
👉 适合手动提交任务
📊 Step 3:后处理(post)
idm2d post -a stress --plot
功能:
- 解析 VASP 输出(OUTCAR 等)
- 拟合弹性张量
- 计算力学性质
- 生成图像
输出示例:
- 弹性常数
- 应力-应变曲线
- 图像文件(png)
📈 力学性质(简单说明)
mech2d 支持计算:
- 杨氏模量(Young’s modulus)
- 泊松比(Poisson ratio)
- 各向异性(极坐标)
👉 支持角度依赖分析(0 ~ 2π)
🧠 使用总结
mech2d 的设计理念可以总结为:
结构 → 形变 → DFT → 拟合 → 力学性质
🎯 适用场景
- 二维材料(graphene / MoS₂ / MXene 等)
- 弹性性质研究
- 高通量力学筛选
- DFT 自动化流程
🔗 项目地址
📌 小结
mech2d 的优势:
✔ 自动化程度高(几乎一键流程)
✔ 专注二维材料力学
✔ 与 VASP / HPC 无缝结合
✔ CLI 设计清晰
🚀 如果你在做二维材料力学计算,这个工具可以显著减少重复工作。