SPPARKS 增材制造扫描模型
分别运行ellipsoid、Bezier和teardrop熔池模型,设置扫描道、层与热影响区。
阅读本篇目录
下载模型实操包。包含46个真实原生条件、完整输入、原始统计/轨迹、独立提取脚本和16张结构与数据图。使用SPPARKS08Oct25、Intel oneAPI C++2024.2.1 / IntelMPI2021.13;CPU入口要求兼容AVX512。可选模块 spparks/08Oct25-appfix-8173m 支持本组特殊模型,原默认模块仍保留。
1. 三种熔池轮廓,共用扫描流程#
am/ellipsoid、potts/am/bezier、potts/am/weld各有两种子,使用32×32×1、XY非周期的薄层盒(teardrop的z方向周期);Q=64。先定义熔池和HAZ,再定义am pass、am cartesian_layer与am build,最后推进组织演化。
ellipsoid输入参数依次为取向数、熔池宽、后沿长、深、前沿高、HAZ宽/后沿长/深/前沿高和衰减因子。这里取64、8、6、3、4、12、10、5、6、0.1;不是把几何数字自动当作微米。Bezier模型另指定控制点,保持包内完整控制点序列后再逐项调整。
当前08Oct25的potts/am/weld示例使用weld_shape_teardrop width 8 case I。普通potts/weld的ellipse语法不能直接照搬到这个AM派生模型。
按顺序运行#
在申请到的CPU资源内,从新的解压目录执行。每个条件只运行一次,程序会保护已有结果目录。下面的短命令实际调用原生SPPARKS,每个条件1个MPI进程、1线程。
module purge
module load spparks/08Oct25-appfix-8173m
bash run.sh am-ellipsoid-s83001
bash run.sh am-bezier-s83001
bash run.sh am-weld-teardrop-s83001
tail -n 16 work/am-ellipsoid-s83001/stdout.log
inputs/am-ellipsoid-s83001/in.mc:
seed 83001
app_style am/ellipsoid 64 8 6 3 4 12 10 5 6 0.1
dimension 3
boundary n n n
lattice sc/26n 1.0
region box block 0 32 0 32 0 1
create_box box
create_sites box
set i1 range 1 64
set d1 value 0.0
am pass 1 dir X speed 4 hatch 8
am cartesian_layer 1 start LL pass_id 1 thickness 1 offset -10.0 0.0
am build start 0.0 num_layers 1
sweep random mask no
sector yes
temperature 0.0
diag_style energy
stats 1.0
dump 1 text 1.0 dump.sites id i1 d1 x y z
run 10.0
inputs/am-bezier-s83001/in.mc:
seed 83001
app_style potts/am/bezier 64 8 3 2 2 1.5
potts/am/bezier control_points x -2.2597 -2.2597 1.29865 2.23368 2.23368
potts/am/bezier control_points y 0.85711 1.50644 0.88308
potts/am/bezier control_points z -0.78114 -1.62087 -1.78114
potts/am/bezier beta 1.0 0.5
dimension 3
boundary n n n
lattice sc/26n 1.0
region box block 0 32 0 32 0 1
create_box box
create_sites box
set i1 range 1 64
set d1 value 0.0
am pass 1 dir X speed 4 hatch 8
am cartesian_layer 1 start LL pass_id 1 thickness 1 offset -10.0 0.0
am build start 0.0 num_layers 1
sweep random mask no
sector yes
temperature 0.0
diag_style energy
stats 1.0
dump 1 text 1.0 dump.sites id i1 d1 x y z
run 10.0
inputs/am-weld-teardrop-s83001/in.mc:
seed 83001
app_style potts/am/weld 64 .75 .5 6.0
weld_shape_teardrop width 8.0 case I
dimension 3
boundary n n p
lattice sc/26n 1.0
region box block 0 32 0 32 0 1
create_box box
create_sites box
set i1 range 1 64
set d1 value 0.0
am pass 1 dir X speed 4 hatch 8
am cartesian_layer 1 start LL pass_id 1 thickness 1 offset -10.0 0.0
am build start 0.0 num_layers 1
sweep random mask no
sector yes
temperature 0.0
diag_style energy
stats 1.0
dump 1 text 1.0 dump.sites id i1 d1 x y z
run 10.0
2. 不要把run 10当作扫描截止10#
本例扫描速度4、道间距8,扫描路径越过盒边。三个模型的扫描构建按AM模式决定时长,真实最后打印t=64.9615,最后dump为64;并非run行写10就停在10。比较两个案例前先读实际时间列和扫描层设置。
图里颜色是晶粒标签;d1在AM派生模型中可记录与熔池有关的距离,不能见到浮点场就称为温度或迁移率。改变熔池/HAZ前,确认模型对应字段含义与空间尺寸。
这三种终点边界能分别666、1716、792。不同几何的这些数只描述当前有限模型组织状态,不能转为熔池热力学或材料强度。

ellipsoid扫描初末组织与真实时间轴。

Bezier熔池模型的原始晶粒结构与能量。

AM teardrop模型使用本版本支持的形状命令。
提取数据和画图#
若只希望先看实际参考结果,在另一份新解压目录执行:
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专题、原生命令手册。ellipsoid、Bezier。完整输入以下载包的08Oct25版本为准;不同模型的时间、能量与状态定义分别解释,不能直接套用为某种材料的秒、电子伏或微米。