SPPARKS 晶体取向与四元数
对比cubic和hcp晶体对称性,输出完整四元数并重建晶界错配角与Read–Shockley能量。
阅读本篇目录
下载模型实操包。包含46个真实原生条件、完整输入、原始统计/轨迹、独立提取脚本和16张结构与数据图。使用SPPARKS08Oct25、Intel oneAPI C++2024.2.1 / IntelMPI2021.13;CPU入口要求兼容AVX512。可选模块 spparks/08Oct25-appfix-8173m 支持本组特殊模型,原默认模块仍保留。
1. 晶粒编号不等于晶体取向#
普通Potts标签不能告诉你两个晶粒的夹角。potts/quaternion额外保存四元数d1–d4,标量分量在前,结合cubic或hcp晶体对称性计算错配角,再按Read–Shockley关系给出晶界能。示例12³站点,set site unique让初始每个站点有唯一取向标签,避免同一标签混入不同四元数。
cubic低角阈值15°,hcp例用25°;阈值是能量模型参数,不是删除高角晶界。四个条件各保存ASCII和完整精度的二进制dump。
按顺序运行#
在申请到的CPU资源内,从新的解压目录执行。每个条件只运行一次,程序会保护已有结果目录。下面的短命令实际调用原生SPPARKS,每个条件1个MPI进程、1线程。
module purge
module load spparks/08Oct25-appfix-8173m
bash run.sh quaternion-cubic-s81001-full
bash run.sh quaternion-hcp-s81001-full
tail -n 16 work/quaternion-cubic-s81001-full/stdout.log
inputs/quaternion-cubic-s81001-full/in.mc:
seed 81001
app_style potts/quaternion 1728 cubic 15
dimension 3
lattice sc/26n 1.0
region box block 0 12 0 12 0 12
create_box box
create_sites box
set site unique
sweep random
sector yes
temperature 0.25
diag_style energy
stats 1.0
dump 1 text 1.0 dump.sites id i1 d1 d2 d3 d4 x y z
dump 2 text 1.0 dump-full.bin id i1 d1 d2 d3 d4 x y z
run 10
inputs/quaternion-hcp-s81001-full/in.mc:
seed 81001
app_style potts/quaternion 1728 hcp 25
dimension 3
lattice sc/26n 1.0
region box block 0 12 0 12 0 12
create_box box
create_sites box
set site unique
sweep random
sector yes
temperature 0.25
diag_style energy
stats 1.0
dump 1 text 1.0 dump.sites id i1 d1 d2 d3 d4 x y z
dump 2 text 1.0 dump-full.bin id i1 d1 d2 d3 d4 x y z
run 10
2. 读取四元数与能量#
本输入二进制dump每站点9个字段,64位浮点保留四元数精度。包内read_native.py按这次实际单进程输出格式读取;它不是任意SPPARKS版本/多进程格式的通用解析器。
model_math.py用SciPy构造cubic的24个与hcp的12个正旋转操作,独立计算对称化错配角与能量;不把两个裸四元数的角度直接当晶界角。四元数单位范数及同一标签对应同一取向分别检查。
3. 真实结构与随机性#
这四条小盒短轨迹均在最终采样时成为单取向,晶界能为0;图给出整个过程。这是有限模型快速粗化,不说明实际材料会在相同时间成为单晶。图中RGB为旋转后z方向分量的绝对值,只是取向可视化,不能当作标准IPF颜色键。
此版本初始四元数另用系统时钟初始化,设置相同seed也不保证另一轮得到相同初始取向。参考包保留原始完整四元数;新跑结果应检查范数、标签一致性和本次能量,而不是要求逐位复现颜色。当前采用的rKMC实现也不用于声称已得到平衡取向统计。

cubic真实初末取向、能量和剩余取向数。

hcp真实取向演化;初始取向由原始二进制数据读取。
提取数据和画图#
若只希望先看实际参考结果,在另一份新解压目录执行:
bash analyze.sh
head -n 12 analysis-reference/case-summary.csv
ls figures-reference
这一步读取包内原始 reference/work/,重新提取并绘图。若要分析自己完整重算的数据,在新目录内运行 bash run-all.sh;全部46个条件完成后生成 analysis/ 和 figures/。只单独跑一项时,先阅读该项 stdout.log 与 dump.sites,不要将少数目录冒充整包分析输入。
相关入口:SPPARKS专题、原生命令手册。取向模型。完整输入以下载包的08Oct25版本为准;不同模型的时间、能量与状态定义分别解释,不能直接套用为某种材料的秒、电子伏或微米。