Mech2d:二维弹性高通量计算框架


mech2d:快速上手指南

mech2d 是一个用于计算二维材料力学性质的 Python 工具,支持弹性常数张量、应力-应变曲线以及方向依赖性质的自动计算。
它将结构生成 → DFT任务 → 结果拟合整合为一个完整流程。


✨ 核心特点(简要)

  • 📐 自动生成形变结构

  • ⚙️ 自动准备并提交 DFT(VASP)任务

  • 📊 自动拟合:

    • 弹性常数(Elastic constants)
    • 应力-应变曲线(Stress-strain)
  • 🔄 完整工作流:init → run → post

  • 🧩 支持 dpdispatcher / 手动模式

  • 📉 可直接生成力学性质图(极坐标等)


📦 安装

1️⃣ 创建环境(推荐)

id
conda create -n mech2d python=3.11 conda activate mech2d

2️⃣ 安装

id
git clone https://gitee.com/haidi-hfut/mech2d.git cd mech2d pip install .

开发测试:

id
pip install -e ".[test]" pytest -q

🚀 基本使用流程

mech2d 的核心流程分为三步:

init → run → post

🧱 Step 1:生成形变结构(init)

id
m2d 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
    ├── ...

👉 每个子目录对应一个形变结构


📌 其他常见用法

能量拟合:

id
m2d init -c POSCAR -n 9 -m 0.05 -a energy

应力-应变曲线:

id
m2d init -c POSCAR -n 21 -r 0.0 0.2 -a stress -d xx yy -p ssc

⚙️ Step 2:生成 & 提交计算(run)

id
m2d run -a stress input.yaml

🧾 input.yaml 结构

主要包含四部分:

id
machine: resources: tasks: code:

核心内容:

  • machine:运行环境(本地 / 集群)
  • resources:CPU / 队列 / 模块
  • tasks:执行命令(VASP)
  • code:DFT 输入设置

📌 示例(关键部分)

id
tasks: command: "mpirun -np 48 vasp_std"

🔧 只生成输入(不提交)

id
m2d run -a stress --manual input.yaml

👉 适合手动提交任务


📊 Step 3:后处理(post)

id
m2d 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 设计清晰


🚀 如果你在做二维材料力学计算,这个工具可以显著减少重复工作。


文章作者: ustc-haidi
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ustc-haidi !
  目录