SPPARKS 第一次计算
从16×16的Ising输入开始,了解建模、运行、统计和轨迹文件的具体顺序。
阅读本篇目录
下载SPPARKS实操包。包内含78个真实计算条件、原始输入/轨迹/统计、独立提取脚本和11张结构与数据图。每篇建议从新的解压目录开始;已经完整计算过的目录不要再次执行同名条件,以免混入旧结果。
1. 加载程序#
module purge
module load spparks/08Oct25-8173m
export OMP_NUM_THREADS=1
export I_MPI_PIN=0
export I_MPI_FABRICS=shm
这里的 shm 用于本页同一台机器内的MPI示例;跨节点任务需要按实际互联方式重新安排,不能照搬为跨节点设置。
2. 读完整输入#
示例文件 inputs/ising-pilot-L16/in.mc:
seed 56789
app_style ising
dimension 2
lattice sq/4n 1.0
region box block 0 16 0 16 -0.5 0.5
create_box box
create_sites box
set site range 1 2
solve_style tree
sector yes
diag_style energy
temperature 0.5
stats 0.5
dump 1 text 0.5 dump.sites
run 2.0
app_style先定义站点状态和动力学;lattice/region/create_sites建立晶格;set设置初态;求解器或扫描方式决定怎样推进;stats/dump决定输出;最后 run 开始演化。
temperature是这个模型的温度参数,不是随意加上K就成为开尔文。seed让随机初始化和事件选择可追踪。换种子会产生不同轨迹。
3. 跑这一项#
bash run.sh ising-pilot-L16
ls work/ising-pilot-L16
head -n 12 work/ising-pilot-L16/dump.sites
tail -n 15 work/ising-pilot-L16/stdout.log
短入口调用真实 mpirun -np 1 spparks -in in.mc,并把每个条件隔离到自己的结果目录。想学习不经包装的原生用法,可以在另一份新解压目录里做:
mkdir my-ising
cp inputs/ising-pilot-L16/in.mc my-ising/
cd my-ising
mpirun -np 1 spparks -in in.mc
运行后主要看 log.spparks、标准输出和 dump.sites。参考包里的 EXECUTION.json额外记录本例的输入SHA、命令和运行身份,自己建模型时不需要手工编写它。
4. 时间不要读错#
dump中 ITEM: TIMESTEP 后一行有两列:前面是输出序号,后面才是实际模型时间。本例请求run到2,实际统计时间为0、1.18118和2;即使设置 stats 0.5,也不保证每行恰好相差0.5。KMC事件和rKMC分区扫描的推进方式不同,后续绘图要读取原文件的实际时间。
5. 最后得到什么#
现在已经有实际站点状态和能量统计。下一步阅读Ising能量与磁化,再在另一份新解压目录运行完整包,得到 analysis/case-summary.csv、analysis/SERIES.json和11张图。
相关入口:SPPARKS专题、官方文档、08Oct25源码版本。本专题使用有限小模型解释操作和输出,不把这些数字当作已收敛材料参数。