ATAT 专题

ATAT 入门与输入文件

从加载环境、提交任务和读懂结构文件开始,按顺序进入SQS、簇展开和热力学工作流。

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

ATAT 将结构生成、簇展开与有限温度统计连接起来。本专题按实际操作拆成 11 篇教程与 7 篇命令参考;包含真实计算的表格、16 张图片和可重跑附件。先从环境与结构文件开始,再按自己的任务选择阅读。

下载完整 PDF · 下载算例与全部资料(约 4.9 MB,含输入、参考输出、作业脚本与重绘脚本)。

操作与实算阅读顺序#

顺序 内容 学到什么
01 ATAT 入门与输入文件 从加载环境、提交任务和读懂结构文件开始,按顺序进入SQS、簇展开和热力学工作流。
02 ATAT SQS 结构生成 生成16/32/64原子Cu–Au、三元Nb–Mo–Ta及固定N子晶格SQS,检查关联误差并导出结构。
03 ATAT 与 VASP 自动计算 准备vasp.wrap,理解结构、赝势、总能和受力的传递,连接自动结构计算。
04 ATAT 二元簇展开实算 用29个Cu–Au的实际VASP能量建立簇展开,阅读形成能、交叉验证及参数精度对照。
05 ATAT 蒙特卡洛与相边界 用给定哈密顿量执行独立重复采样和phb追踪,读懂浓度、关联函数和统计误差。
06 ATAT 多元簇展开与统计 以Cu–Au–Al的30个EMT结构说明mmaps、memc2及多元化学势与组分设置。
07 ATAT 声子与振动自由能 从Al的实际EMT位移受力计算出发,完成fitfc色散及fitsvsl/svsl自由能。
08 ATAT 电子自由能与温度 ECI 用实际VASP态密度计算电子自由能,并通过clusterexpand和mkteci构建温度相关模型。
09 ATAT 体模量、应变与缺陷 包含Al五点VASP扫描、Cu–Au的150个EMT应变结构,以及模型APB和缺陷生成。
10 ATAT SQS 到 CALPHAD 逐步复制SQS、计算静态能量、选择拟合项并输出TDB,说明模型的材料覆盖范围。
11 ATAT 常用操作与问题排查 查结构、拟合、文件处理和常见运行问题,并将流程用于自己的材料与结果分析。

按用途查命令#

以下从环境和输入文件开始。全部参数以当前模块 atat/3.52-8173m 为准;命令参考覆盖其 78 个入口。完整材料计算还需相应能量程序、数据与方法设置。

ATAT 能解决什么问题#

ATAT 是一组相互配合的合金理论工具。它既能寻找代表无序固溶体的原子排列,也能把许多结构的能量组织为簇展开,再用蒙特卡洛研究有限温度下的构型行为。

你想做的事情 主要程序 得到什么
给定晶格和组分,生成无序合金超胞 mcsqs bestsqs.out、关联函数误差
列出对称性不同的有序结构 genstr 多个 ATAT 结构
用结构能量建立二元/多元簇展开 maps / mmaps ECI、拟合误差、基态候选
计算温度、化学势变化下的构型性质 emc2 / memc2 能量、浓度、关联函数等
跟踪两个相之间的共存边界 phb 两相浓度随温度的变化
从位移—受力数据计算声子 fitfc 力常数、声子谱、振动自由能
用键刚度随键长的关系近似声子 fitsvsl + svsl 可迁移的弹簧模型、振动自由能
加入电子自由能 felec、clusterexpand、mkteci 温度相关 ECI
生成 CALPHAD 数据库 sqs2tdb 由 SQS 数据拟合的 .tdb 文件

从结构到热力学性质的 ATAT 工作流

ATAT 本身不会自动把一种元素组合变成可靠的相图。结构能量或受力需要由 VASP 等电子结构程序或适合该材料的势函数提供;晶格选择、磁性、弛豫方式、能量一致性、训练集覆盖和统计收敛都影响最终结果。

本文明确区分三类数据:Cu–Au 能量和 Al 体积扫描使用 VASP/PBE;Al 声子、三元合金和应变能的部分教学例使用 ASE 的 EMT 势;二元蒙特卡洛使用 ATAT 自带 examples/mc 的已给定哈密顿量。这些方法都实际执行过,但不能把它们互相替代,也不能将教学模型曲线称为实验相图。

开始使用:环境、目录和任务提交#

加载环境#

module load atat/3.52-8173m
yskit atat-init

也可以输入 yskit,在软件环境配置入口中完成 ATAT 初始化。初始化只创建缺失的个人配置,已有配置保持不变。

软件部分 本文使用的环境
ATAT 3.52,GNU G++ 13.3.0,常规 CPU 构建
ATAT MPI 程序 独立 OpenMPI 5.0.10
VASP 接口 CPU 普通版 VASP 6.4.2,Intel oneAPI 2024.2
势函数教学例 ASE 3.29.0,EMT;需要时加载 ase/3.29.0

ATAT 的常规搜索与蒙特卡洛没有通用的 GPU 加速开关。MPI 版 ATAT 与 VASP 使用的 MPI 环境不同,分别使用对应作业模板,避免在同一终端反复混装 MPI。不要在 atat-vasp 或 atat-mpigenstr 外面再套一层 mpirun。

下载算例后如何使用#

先解压算例包。在某个算例的副本中工作,保留原来的输入和参考结果:

cp -r examples my-atat
cd my-atat/01-sqs-fcc32

算例包将 input/ 与 reference/ 分开。保留相邻的 common/ 目录,它提供随文的能量、受力和拟合接口。在算例根目录提交 sbatch submit.sh,脚本会自动进入 input/。如果逐条操作正文命令,再手动进入干净的 input/;不要把 stop、stopsqs、旧 bestsqs.out、旧 error 等状态文件带入新计算。

在集群里提交#

普通计算通过 Slurm 提交。yskit 能找到对应的 ATAT 脚本;核时用户的模板位于:

/public/slurm_scripts/hs_user/atat/3.52/8173m/

套餐用户使用同层的 tc_user 入口。通常先把对应模板复制到自己的算例目录,再使用短命令提交:

sbatch sub_mcsqs_multi.sh 32 250000

这里 32 是 SQS 总原子数,250000 是每个搜索进程的步数上限,都不是申请的 CPU 核数。现行 CPU 模板默认申请 56 核整节点;sub_mcsqs_single.sh 是历史文件名,目前也按模板设置启动多个搜索进程,不能仅凭文件名判断资源数量。

任务 拷贝后提交的脚本
多个独立 SQS 搜索并选优 sub_mcsqs_multi.sh
单个结构的 VASP 能量/受力 sub_atat_vasp.sh
二元簇展开与 VASP 自动配合 sub_maps_vasp.sh
MPI 枚举结构 sub_mpigenstr.sh
MPI 多元簇展开 sub_mpimmaps.sh

正文展示的 mcsqs、maps、fitfc 等科学计算命令,应放在获得计算资源的作业里运行。不能因为某个程序只开一个进程,就默认适合在登录终端长时间运行。

先读懂 ATAT 的结构文件#

lat.in:允许出现哪些原子排列#

下面是 FCC Cu–Au 母晶格:

3.85 3.85 3.85 90 90 90
0   0.5 0.5
0.5 0   0.5
0.5 0.5 0
0 0 0 Cu,Au

第一行定义参考坐标轴:三个轴长及其夹角。接下来的三行定义晶胞矢量,使用这些参考轴作基底。最后一行给出一个格点的位置,以及该位置可以放置的元素。逗号表示可替换的物种,不能写成带空格的 Cu, Au。

这不是“第一行已经给出了晶胞,下面三行可以随便填”的格式。上例的实际晶胞是 FCC 原胞,体积为 3.85³/4,每个原胞只有一个可替换格点。原子坐标也相对于第一行定义的参考轴,不自动等于相对于后面三条晶胞矢量的分数坐标。

参考轴也可以写成三行笛卡尔向量;这时一个结构通常有六行几何信息,之后才是原子列表。看见 str.out 的六行开头不要误删前三行。

str.out:一个已经确定的结构#

例如 Cu₃Au 的 L1₂ 常规胞:

3.8 3.8 3.8 90 90 90
1 0 0
0 1 0
0 0 1
0   0   0   Au
0   0.5 0.5 Cu
0.5 0   0.5 Cu
0.5 0.5 0   Cu

lat.in 写“允许 Cu 或 Au”,str.out 写“这里实际是 Cu”。固定子晶格只写一种元素,例如 N;空位可以使用 Vac。同一项研究中的元素命名、格点允许占据种类和坐标轴要保持一致。

rndstr.in:目标无序态#

SQS 输入把最后一行改成概率:

0 0 0 Cu=0.5,Au=0.5

每个可替换子晶格上的概率和应为 1,超胞中的各元素数还必须能取整数。例如三元等比例 24 原子对应 8/8/8;10 原子的三元等比例超胞不能严格满足这个组分。固定 N 子晶格也占总原子数,不能从 -n 中漏掉。

转换、检查和可视化#

cellcvrt -pn < str.out
cellcvrt -pv < str.out
str2poscar < str.out > POSCAR
str2cif < str.out > structure.cif
str2xyz 1 1 1 str.out > structure.xyz

前两条分别输出原子数和晶胞体积;后三条用于 VASP、晶体可视化软件和 XYZ 查看器。str2poscar 会按物种组织原子顺序,拼接 POTCAR 时必须使用输出 POSCAR 的元素顺序。str2poscar -r < POSCAR > str.out 可以反向转换,但旧式 POSCAR 没有元素名,反向结果的物种标签需要核对。

cellcvrt -c 输出笛卡尔坐标;-f 把晶胞用作分数坐标基底;-ss=2 按参考轴方向生成超胞。对于非正交原胞,不要想当然地把 -ss=2 理解为“恰好 8 倍的原胞”——先检查原子数和晶胞矢量,再决定是否使用 -uss=文件 给定超胞。

数据和配套算例#

下载完整实算资料包,保留 examples/common,进入所需算例目录执行 sbatch submit.sh。输入、参考结果、科学设置和重跑方式均在各目录的 README 中。

实算数据下载#

下列CSV可在Python、Origin等工具中直接读取;数值单位和方法设置见对应文章,结构与完整输出在资料包中。

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

查看配图

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

100%查看原图 ↗