ATAT蒙特卡洛的尺寸、升降温与组分控制
用统一采样参数比较216/512格点,做半巨正则和相边界重复。
阅读本篇目录
下载本批输入、参考结果、数据图和运行脚本。从解压后的附件根目录操作,结果进入独立work目录;已有目录拒绝覆盖。使用申请的计算资源运行,CPU程序并不因模板选择P100分区而自动获得GPU加速。
1. 先区分三类模型#
二元MC使用ATAT给定哈密顿量的4个原始输入文件;其Cu/Au标签不代表已经得到实验Cu–Au的定量相图,也不同于新24结构DFT拟合。三元约束MC使用本批Cu–Au–Al的EMT簇展开。
先在已申请资源中加载:
module load atat/3.52-8173m gpumdkit/1.5.8
2. 统一参数后比较尺寸和方向#
python -B run_mc.py canonical-er6-heating-s20261028
python -B run_mc.py canonical-er6-cooling-s20261028
python -B run_mc.py canonical-er8-heating-s20261028
python -B run_mc.py canonical-er8-cooling-s20261028
其他种子为20261029、20261030,每个任务目录独立。er6/er8的最终快照分别核对为216/512格点。本批两种尺寸都固定平衡100passes、统计500passes;这样不再把采样长度变化混入尺寸比较。
升温为100→900K,每100K一点;降温为900→100K,用-dT=-100。正则模式-cm和-x=-0.5固定第二物种分数c=(x+1)/2=0.25。passes不是MD时间,也不是电子迭代步。
emc2 -cm -x=-0.5 -gs=1 -mu0=0 -keV -T0=100 -T1=900 -dT=100 -er=6 -eq=100 -n=500 -sd=20261028 -tstat=0 -g2c -o=mc.out
降温起始也先在900K平衡。每一方向按温度依次继承上一点状态;三种子之间独立。均值和阴影是三次结果的均值/样本标准差,不是已完成自相关修正或临界有限尺寸标度后的误差界。
3. 半巨正则中组分可以变#
python -B run_mc.py semigrand-s20261028
本例300、600、900K,每个温度扫描μ=−0.08、0、0.08eV/自旋坐标,使用-abs指定绝对化学势。没有-cm,也不固定组分。
emc2 -gs=1 -T0=300 -T1=900 -dT=300 -abs -mu0=-0.08 -mu1=0.08 -dmu=0.08 -er=6 -eq=100 -n=500 -keV -sd=20261028 -tstat=0 -g2c -o=mc.out
不加-abs时,ATAT默认化学势输入按基态共存点作无量纲标度;不能把默认的mu0=1理解成1eV。读取二元第4列x后仍按c=(x+1)/2换算。
个别LTE/MF近似列会用极大数标记不可用,本例读实际MC的能量和组分,不把这些占位值拿去拟合自由能。
4. 相边界只比较共同区间#
python -B run_mc.py phb-er8-s20261030
phb采用-gs1=0、-gs2=1、-dT=25、-dx=0.02、-dmu=0.002、-ltep=0.001和-keV。er6/er8各三个种子均有0–350K共同区间,因此比较使用这15个温度点。
两相接近后,某些种子不能稳定继续追踪;这里保留原始轨迹,不把它的结束位置认作临界点,也不只挑一条看起来平滑的曲线。需要定量相图时再增加尺寸、采样和分辨率,并检查其他可能相。
5. 三元固定组分#
python -B run_mc.py 20261028
输入initial.out是4格点FCC常规胞,Al₂AuCu;conccons.in为:
1.0*Al = 0.5
1.0*Au = 0.25
-is=initial.out指定初态,第三种Cu由归一化确定为0.25。约束数值使用可精确表示的有理组分;任意不相容小数可能无法构成合法翻转。control.in如下,-il包含终点:
300 0 0 0
1500 0 0 0 7
实际7点和3种子始终保持Al0.5/Au0.25/Cu0.25。多元输出必须按mcheader.out查找x_mc(Al)、x_mc(Au)、x_mc(Cu),不能套二元第4列。这里Egc_mc位于第18列,化学势为零时与E相同。

原MC教程保留更长采样和原phb结果;两批参数与模型来源分别说明,不能把不同设置直接拼成同一条收敛曲线。