LAMMPS 专题

LAMMPS 位错识别与 Burgers 矢量

用OVITO实际提取镍的完整及部分位错,导出CA网络、粒子标签和Burgers矢量,区分晶格与空间坐标。

更新于 2026-11-10约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

本篇接续镍位错建模与松弛,使用同一份完整资料包。先完成 bash run.sh,下面在 Ni-dislocation 目录分析已有输出,不重新提交最小化。

1. 运行 OVITO 的终端分析#

module load ovito/3.16.1
python work/analyze_dxa.py

脚本读取八组结构的初态和末态,使用 FCC 作为 DXA 参考晶格,输出 work/dxa/、work/DXA-VALIDATION.json 和相关数值。x、y 是自由边界,z 是周期方向;这是三维模型,不能套用二维薄片分析中的 is2D=True。

head -n 6 tables/Ni-DXA-Burgers.csv
head -n 6 work/dxa/p100-edge-dislocation-final-particles.csv
ls work/dxa/*.ca

粒子 CSV 包含 ID、坐标和 DXA 局部结构标签。.ca 保存完整位错网络,可下载到本地用 OVITO 打开;reference-networks/ 另提供教程最初的原始网络,便于直接查看。本次新分析产生的文件以 work/dxa/ 为准。

2. 实际识别出了什么#

镍刃型和螺型位错松弛后的真实DXA位错线

两个完美晶体对照在初态和末态都没有识别出位错。刃型与螺型位错在初始结构中各有一条完整位错线,松弛后各识别出两条 1/6⟨112⟩ Shockley 部分位错。

P100 刃型末态两条线总长约 34.580 Å,周期 z 长度为 17.244 Å;螺型末态总长约 29.888 Å,周期 z 长度为 14.934 Å。两条线的总长接近两个周期长度,不表示一条位错凭空变长一倍,而是分解后存在两条线。

图中线段采用 OVITO 的连续、未包回主胞的坐标,z 可能小于 0 或超过盒长;它保持跨周期线的连续性,不表示原子丢失。局部 HCP 标签常对应 FCC 中的层错环境,不能单凭几颗 HCP 标签宣布整个晶体发生相变。

3. 三种矢量不要混在一起#

数据 坐标与单位 怎样理解
Atomsk 输入的 Burgers 幅值 Å 本例完整位错幅值 a/√2=2.48901587 Å
true_burgers_vector 所属晶体簇的局部 Bravais 晶格单位 例如 1/6[−2 −1 −1],不是直接的 Å 数值
spatial_burgers_vector 全局模拟坐标,Å 用于与盒子 x、y、z 方向比较

CSV 同时导出两种 DXA 矢量与 cluster_id。不同晶体簇的局部晶格坐标可能不同,不能直接逐分量相加其 true 矢量。 需要跨线段或跨簇比较时,先转到共同的空间坐标,并保持线方向与 Burgers 回路约定一致。

本例通过三个 z 截面,把穿过截面的位错线按有向交叉计数,再相加其空间 Burgers 矢量。刃型净矢量沿 x 轴,大小约 2.4914 Å;螺型沿 z,大小约 2.4890 Å。与 2.48901587 Å 输入幅值相容,刃型的微小差异包含 DXA 平均弹性变形映射的影响。

本工具约定下净矢量可显示为负 x 或负 z;Atomsk 参数给的是幅值,判断符号时还须明确切面、线方向与回路约定,不能仅把正的输入幅值和负的输出分量作比较。

全局Burgers矢量组合和能量有限差分力比较

4. 刃型和螺型分解后的线为什么带混合特征#

可以用位错线切向 t 与空间 Burgers 矢量 b 的夹角描述局部特征:cosθ=|t·b|/(|t||b|)。本例原始完整刃型满足 b 垂直位错线,完整螺型满足 b 平行位错线;但分解后,每条部分位错不必保持完整位错的纯刃型或纯螺型。

实际刃型两条部分位错的 |cosθ| 约 0.4997,对应约 60°;螺型约 0.8660,对应约 30°。两条部分位错的分量共同恢复原来的完整 Burgers 矢量。CSV 的 absolute_line_B_cosine 保留本次测量值;本例线较直,曲线较弯时应按局部切向逐段分析。

5. 如何理解 GPU 对照与有限差分#

两套 GPU 各自松弛时,舍入会影响共轭梯度路径和最终细微位置。本例 P100/V100 的刃型位错线总长约 34.580/34.516 Å,线网的离散位置也可略有不同。因此比较计算精度时,脚本还把 同一份 P100 末态几何交给 V100 做单点计算。

同几何的最大力差约 10⁻¹⁵ eV/Å;选取三个粒子、三个方向,共 36 个分量,使用 ±10⁻⁵ Å 的位移做能量有限差分,最大力差约 5.5×10⁻⁷ eV/Å。这里选取了 mobile 与 fixed 粒子,固定粒子的最终力虽然被清零,能量导数应与约束前原子间力比较。

这些比较用于理解同几何、原始力和约束的含义,不表示 EAM 模型获得了相同数量级的真实材料精度,也不是性能计时结果。tables/Ni-force-finite-difference.csv 保留每个比较分量。

6. 重新整理和画图#

使用本次计算的原生输出重新分析:

bash analyze.sh work

只练习教程附带的实际输出,可直接运行:

bash analyze.sh

后者不执行新的 Atomsk 建模、LAMMPS 最小化或单点计算,只读取 reference/ 的实际数据。两种分析均输出 figures/ 和 tables/,切换前如需同时保留两套图表,请先另存。

明确重画教程最初的原始图表:

bash plot.sh reference

这个命令使用不可变的原始绘图数组,不代表再次计算了位错。原生 work/ 输出会保留。

本例的尺寸、固定外层、各向同性初始位移场和经典 Ni 势均会影响核心与部分位错间距。没有计算收敛的核心能、Peierls 应力、温度驱动迁移或位错速度。继续研究滑移时,应先设计相容的边界和加载方式,不能把此固定外边界直接当作可无限滑移的周期胞。DXA 和矢量坐标的定义参考OVITO 官方分析说明与位错网络 Python 接口。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗