ATAT 结构与对称性命令
结构生成、坐标转换、近邻、原型、路径、缺陷及离散磁态等21个命令。
阅读本篇目录
结构生成、坐标转换、近邻、原型、路径、缺陷及离散磁态等21个命令。 每条列出用途、输入输出、调用格式和使用条件;展开参数表可查看 ATAT 3.52 的原始英文选项与默认值。
[int] 表示整数,[real] 表示实数,[string] 表示文件名或文本;同名参数在不同命令中的含义可能不同。调用前应准备对应输入文件。
结构、晶格与对称性#
makelat#
按元素和已有晶格原型创建母晶格目录。
输入与结果: 元素列表、晶格名称;读取随包晶格与原子半径 → 体系_晶格/lat.in。
调用格式:
makelat Cu,Au fcc,bcc
冒号分隔不同子晶格,例如 Ca,Mg:O。默认尺寸来自原子半径,只是初始几何;实际缩放参数写作 -s 数值,当前脚本并不按帮助中的 -s=数值 解析。-o 输出到标准输出。
展开本命令的完整参数表
MAKE LATtice, by Axel van de Walle
Utility setting up directories with maps input files for a given alloy system
and for one or multiple lattices.
Syntax: makelat [-o] [-s=scale] atom1,atom2,... lattice1,lattice2,...
Make sure that there are commas but no spaces between atoms and similarly between the lattices.
Examples:
makelat Al,Ni bcc,fcc
makelat Ca,Mg:O rocksalt
(note the : to separate sublattices)
The default scale is 1. It can be changed to allow for units other than angstroms.
The -o option outputs to strout.
Lattices available:
B2 bcc bcc-oct bcc-tet diamond fcc fcc-oct fcc-octtet fcc-tet hcp hcp-oct hcp-tet L11 rocksalt sc wurtzite zincblende
Other lattices can be added in the /public/software/atat/3.52/gcc-13.3/8173m/share/atat/data/ directory or
new atomic radius can be added in the /public/software/atat/3.52/gcc-13.3/8173m/share/atat/data/radii.in file.
genstr#
枚举在给定母晶格上对称不等价的周期结构。
输入与结果: lat.in → 标准输出中的多个结构,以 end 分隔。
调用格式:
genstr -n=4 > genstr.out
-n 是最大晶胞原子数;枚举空间随组分和规模迅速增长。固定物种的输入会转为超胞枚举。-2d 限制为 a、b 平面的超胞。它不会计算结构能量。
展开本命令的完整参数表
GENerate STRuctures 3.52, by Axel van de Walle
-n=[int] maximum nb of atom/unit cell (Default: 0)
-z=[real] Tolerance for finding symmetry operations (default: 1e-3)
-sig=[int] Number of significant digits to print in output files (Default: 6)
-2d Find supercells along a and b axes only (Default: Off)
-l=[string] Input file defining the lattice (default: lat.in)
cellcvrt#
改变坐标表示、超胞、尺度、原点,或查询结构几何。
输入与结果: 标准输入中的 ATAT 结构 → 转换后的结构或所选统计量。
调用格式:
cellcvrt -c < str.out > cartesian.out
-c 笛卡尔;-f 分数;-abc 晶格常数表示;-ss/-uss 超胞;-sc 尺度;-wi 回卷;-pn 原子数;-pv 体积;-sym/-ppg/-pbv 对称信息。不要用 > 覆盖同一输入文件。
展开本命令的完整参数表
cellcvrt 3.52, by Axel van de Walle
Performs various conversions/changes on structure (or lattices).
Reads from stdin, writes to stdout.
-c Use cartesian coordinates (Default: Off)
-f Use fractional coordinates (Default: Off)
-cc Find conventional cell and use it as coordinate system (Default: Off)
-abc Use a b c alpha beta gamma format to specify axes (Default: Off)
-noabc Use cartesian format to specify the axes (the default) (Default: Off)
-ro Read fractional Occupation (Default: Off)
-u=[string] User-specified coordinate system input file (optional) (Default: )
-uss=[string] User-specified supercell (Default: )
-ss=[int] Simple supercell (multiple of axes in all directions) (Default: 0)
-fc Fix cell (to make it as symmetric as possible) (Default: Off)
-s Look for smaller unit cell (Default: Off)
-sh=[string] Shift all atoms (default 0,0,0).
-ja=[real] Jitter all atoms positions by a random amount less than specified (Default: 0)
-jc=[real] Jitter all cell parameters by a random amount less than the fraction specified (Default: 0)
-sd=[int] Seed for random number generation (default: use clock)
-sg=[string] Space group file (Default: )
-gsg Generate Space Group (Default: Off)
-wi Wrap all atoms inside unit cell (Default: Off)
-wiu Wrap all atoms inside unit cell and undo shift (Default: Off)
-rr Remove redundant atoms (Default: Off)
-rra Remove redundant atoms and average (Default: Off)
-ar Add redundant atoms (Default: Off)
-osf=[string] Original setting file (optional) (Default: )
-fsf=[string] Final setting file (optional) (Default: )
-r Print reciprocal unit cell (Default: Off)
-fs=[int] Index of first structure to process (default: 1)
-ns=[int] Number of structures to process (Default: 2147483647)
-slf=[string] Structure list file (Default: )
-pn Print the number of atoms in the structure only (Default: Off)
-pv Print volume of cell only (Default: Off)
-sym Print spacegroup (Default: Off)
-ppg Print point group name (Default: Off)
-pbv Print Bravais Lattice name (Default: Off)
-sc=[real] Scale factor (default: 1)
-sig=[int] Number of significant digits to print in output files (Default: 6)
-z=[real] Tolerance for checking overlap (Default 1e-3)
fixcell#
把给定晶胞改写为更适合对称性识别的等价晶胞。
输入与结果: 标准输入中的晶胞几何 → 调整后的晶胞;-b 可查询 Bravais 类型。
调用格式:
fixcell -c < cell.in > cell.out
-c 表示输入输出只用三条笛卡尔晶胞矢量。它不是结构能量弛豫,也不直接替代对原子位置的同步变换。完整结构更适合 cellcvrt -fc。
展开本命令的完整参数表
fixcell 3.52, by Axel van de Walle
-d Use all default values (Default: Off)
-c read and print cell in cartesian only (no axes specified) (Default: Off)
-z=[real] Tolerance for finding symmetry operations (default: 1e-3)
-b print bravais lattice type only and conventional (potentially not primitive) cell (Default: Off)
-sig=[int] Number of significant digits to print in output files (Default: 6)
checkcell#
比较两个晶胞的形变,辅助判断晶格映射是否仍合适。
输入与结果: 两套晶胞矩阵,前后共六行 → 形变度量或应变信息。
调用格式:
checkcell -p < two-cells.in
-q 简化输出,-p 输出应变。检查的是晶胞几何,不代表电子收敛、原子对应或动力学稳定性。
展开本命令的完整参数表
check cell distortion 3.52, by Axel van de Walle
-d default (Default: Off)
-q be quiet (Default: Off)
-p print strain (Default: Off)
checkrelax#
比较结构弛豫前后的晶胞形变。
输入与结果: str.out 或 str_sup.out 与 str_relax.out → 形变指标;无参数可扫描下一层目录。
调用格式:
checkrelax -1
-1 是数字 1。指标忽略整体旋转与等比例伸缩;数值很大时应重新检查母晶格映射,不能仅凭一个阈值机械删除材料结构。
str2poscar#
在 ATAT 结构和 VASP POSCAR 之间转换。
输入与结果: 标准输入 → 标准输出。
调用格式:
str2poscar < str.out > POSCAR
-r 反向;-old 输出无元素名的旧格式。正向会按元素分组并排序,POTCAR 必须跟随输出元素顺序。反向读取旧式 POSCAR 后要补回真实元素标签。
str2cif#
输出可用于晶体查看器的 CIF。
输入与结果: ATAT 结构标准输入 → CIF 标准输出。
调用格式:
str2cif < bestsqs.out > structure.cif
适合检查超胞形状与原子占据;不要仅凭查看器的自动成键线判定真实键合。
str2xyz#
把结构及其周期复制写成 XYZ。
输入与结果: 重复次数 na nb nc、可选缩放和 ATAT 文件 → XYZ。
调用格式:
str2xyz 1 1 1 str.out > structure.xyz
-v 会尝试调用 rasmol。XYZ 本身不完整保存一般周期晶胞信息,跨程序交换周期结构优先 POSCAR/CIF。
展开本命令的完整参数表
Utility to convert structure files into xyz files suitable for viewing with rasmol
Syntax: str2xyz [-v] na nb nc [scale] infile
-v (optional) calls rasmol (otherwise, xyz file is written to stdout
na nb nc define the number of periodic repetition to plot
scale (optional) scales the structure to adjust which bonds are plotted
nnshell#
查找近邻壳层或列出可能的键类型。
输入与结果: lat.in 或 -l 指定结构 → 距离、相对位置、物种和配位信息。
调用格式:
nnshell -l=lat.in
-r 手动指定邻域半径;-lb 列键类型。可用于为 SQS 截断或力常数范围选择一个合理起点。
展开本命令的完整参数表
Nearest Neighbor Shell 3.52, by Axel van de Walle and Paul Dalach
-l=[string] Input file defining the lattice (default: lat.in)
-lb List bond types in given structures (Default: Off)
-sig=[int] Number of significant digits to print in output files (Default: 5)
-r=[real] Define a max radius for neighbor search (Default: 0)
-d Use all default values (Default: Off)
nntouch#
按给定原子半径对几何作均匀缩放,使最近邻接触。
输入与结果: 晶格文件、元素半径文件 → 缩放后的晶格。
调用格式:
nntouch -l=lat.in -r=rad.in > scaled.in
-s 是额外的乘法比例。此方法只用于生成初始晶格,不等于平衡晶格常数优化。
展开本命令的完整参数表
nntouch 3.52, by Axel van de Walle
Scales a lattice so that nearest neighbor atom just touch.
-l=[string] Input file defining the lattice (default: lat.in) Use filename - to specify stdin
-r=[string] Input file defining the atomic radii (default: rad.in)
-s=[real] Multiplicative scaling factor (Default: 1)
-sig=[int] Number of significant digits to print in output files (Default: 6)
-d Use all default values (Default: Off)
mindist#
检查结构中是否存在小于阈值的原子间距。
输入与结果: -s 指定结构、-r 指定最小距离 → 退出状态。
调用格式:
mindist -r=2.5 -s=str.out
满足最小距离条件返回 0;发现过近原子返回 1。空屏幕可能是正常的,不能把退出码 1 混同于程序崩溃。
展开本命令的完整参数表
Test if MINimum DISTance between two atoms is less than a given threshold, version 3.52, by Axel van de Walle
-s=[string] Input file defining the structure (Default: stdin)
-r=[real] Threshold radius (Default: 0)
-e Create error file atoms are too close (Default: Off)
-h Display more help (Default: Off)
kmesh#
根据目标 k 点数和晶胞估算各方向网格。
输入与结果: 标准输入:目标点数,再接三条笛卡尔晶胞矢量 → 三个网格数。
调用格式:
kmesh -q -r < kmesh.in
-q 去提示;-r 向上取整;-e 使用偶数;-z1 让第三方向为 1。它接受的目标是整个网格点数,VASP 接口会先把 KPPRA 除以原子数。
展开本命令的完整参数表
-d Use all default options (Default: Off)
-q Quiet! (Default: Off)
-r Round output to next largest integer (Default: Off)
-z1 Force 1 k-point along 3rd axis (Default: Off)
-e Force nb of kpoints to be an even number (Default: Off)
wycked#
根据空间群及 Wyckoff 位置生成可编辑的结构模板。
输入与结果: 空间群、位置字母 → 含 #const 的模板;sspp 处理后成为 ATAT 结构。
调用格式:
wycked 225 a > fcc.sspp
先填写 a、b、c、内部坐标和元素等自由参数,再运行 sspp。-r 依赖 GULP 并执行软球预弛豫;不能把 GULP 当作 ATAT 内置程序。
展开本命令的完整参数表
WYCKoff position EDitor, by Axel van de Walle
Syntax:
wycked spcgrp [-r] list_of_wyckoff_position_letter_without_seperators [species1:species2:...]
The output is meant to first be edited to set the free parameters a,b,c,alpha,beta,gamma,x,y,z,etc
in each of the lines starting with #const
and processed by sspp to create a valid ATAT structure file.
If the -r option is specified, then:
the structure is relaxed using a soft-sphere model (of radius 1.5 A) by invoking the GULP code
(multiple times (10) with randomized initial positions).
In that case, you can also specify a colon-separated list of species that will populate each wyckoff position.
Also, the structure will be isotropically re-scaled so that the nearest neighbor distance are consistent
with atom radii from the atat/data/radii.in file.
ACKNOWLEDGEMENTS
This code makes use of a Wyckoff position database downloaded from the Bilbao Crystallographic Server
at http://www.cryst.ehu.es/
Accordingly, if you use this code, you should cite, in addition to the usual ATAT citations,
the following papers:
M. I. Aroyo, J. M. Perez-Mato, D. Orobengoa, E. Tasci, G. de la Flor, A. Kirov
"Crystallography online: Bilbao Crystallographic Server"
Bulg. Chem. Commun. 43(2) 183-197 (2011).
M. I. Aroyo, J. M. Perez-Mato, C. Capillas, E. Kroumova, S. Ivantchev, G. Madariaga,
A. Kirov and H. Wondratschek,
"Bilbao Crystallographic Server I: Databases and crystallographic computing programs"
Z. Krist. 221, 1, 15-27 (2006). doi:10.1524/zkri.2006.221.1.15
M. I. Aroyo, A. Kirov, C. Capillas, J. M. Perez-Mato and H. Wondratschek
"Bilbao Crystallographic Server II: Representations of crystallographic point groups and
space groups", Acta Cryst. A62, 115-128 (2006). doi:10.1107/S0108767305040286
If you use the -r option, you should also acknowledge the GULP code:
"GULP - a computer program for the symmetry adapted simulation of solids", J.D. Gale, JCS Faraday Trans., 93, 629 (1997)
"The General Utility Lattice Program", J.D. Gale and A.L. Rohl, Mol. Simul., 29, 291-341 (2003)
"GULP: Capabilities and prospects", J.D. Gale, Z. Krist., 220, 552-554 (2005)
getproto#
查询并输出晶体结构原型数据库中的条目。
输入与结果: 单独获得的 prototypes.in 与检索条件 → 原型信息或结构模板。
调用格式:
getproto -s -1 -w '^A3'
检索字符串支持正则表达式;-s 按对称性降序,-1 只取第一项,-w 只输出空间群与 Wyckoff 位置。需要相应原型数据库的访问资格;当前随包没有可直接使用的 prototypes.in。它不是下载任意数据库的命令。使用时按原型数据库和作者要求取得数据,不以空结果判断材料没有该结构。
sspp#
处理带参数的结构文本,计算简单表达式。
输入与结果: 含 #const、宏和花括号表达式的标准输入 → 展开后的文本。
调用格式:
sspp -nb < edited.sspp > str.out
-nb 去空行。表达式使用 awk/C 预处理器约定;不要把外来未知模板当成纯数据直接执行,因为其中可以包含预处理和 awk 指令。
pdef#
为母晶格上允许的点缺陷生成对称不等价结构。
输入与结果: lat.in 的允许物种、无缺陷 str.out、-er 间距 → pdef* 目录。
调用格式:
pdef -er=6
可用物种列表中加入 Vac 表示空位。-p 改目录前缀。它负责结构生成;缺陷形成能仍需化学势、荷电修正和独立能量计算等适合体系的处理。
展开本命令的完整参数表
Point DEFect generator 3.52, by Axel van de Walle
-l=[string] Input file defining the lattice (default: lat.in)
-s=[string] Input file defining the undefected structure (default: str.out)
-p=[string] Prefix of the directories that will contain the defected structures (Default pdef)
-er=[real] Minimum distance between point defects (Default: 0.00000)
-sig=[int] Number of significant digits printed (default: 5)
-h Display more help (Default: Off)
strpath#
在两端结构之间插值,或构造结构路径/双像。
输入与结果: str1.out、str2.out → 单个插值结构或编号图像目录。
调用格式:
strpath -s1=str.out -s2=str_relax.out -ni=5
-f 指定单点插值分数;-df 为双像相关设置;-ci/-cil 用于能量路径的拐点处理。两端原子物种与对应顺序要一致,生成图像不等于已经完成 NEB。
展开本命令的完整参数表
STRucture PATH generator 3.52, by Axel van de Walle
-s1=[string] Input file defining structure 1 (default: str1.out)
-s2=[string] Input file defining structure 2 (default: str2.out)
-ni=[int] Number of images (Default: 0)
-f=[real] Interpolation fraction in [0,1] (Default: 0.5)
-df=[real] Dimer distance [0,1] (Default: 0)
-dp=[string] Directory name pattern (default 00)
-ci Calculate inflection point (Default: Off)
-cil Calculate inflection point location (Default: Off)
-sig=[int] Number of significant digits printed (default: 5)
-h Display more help (Default: Off)
-d Use all default values (Default: Off)
surfbond#
根据晶面取向和键截断估计断键统计。
输入与结果: 结构、Miller 指数或角度网格、键长截断 → 取向相关的断键数据。
调用格式:
surfbond -s=str.out -m=1,0,0 -b=2.8
-m 指定晶面,-mm 或 -nph/-nth 控制取向扫描。断键数是几何模型,不是已经计算好的表面自由能。
展开本命令的完整参数表
SURFace BOND counting 3.52, by Helena Liu and Axel van de Walle
-h Display more help (Default: Off)
-s=[string] Input file defining a structure (Default: str.in)
-m=[real],... Miller indices (Default: )
-mm=[int] Max Miller index (Default: 0)
-b=[real] max bond length (Default: 0)
-nph=[int] Nb of mesh points along phi (Default: 24)
-nth=[int] Nb of mesh points along theta (Default: 48)
-sig=[int] Number of significant digits printed (Default: 5)
-z=[real] Tolerance for comparing coordinates (default: 1e-3)
-a new broken bond counting Algorithm (Default: Off)
-d Use all default values (Default: Off)
symbrklib#
沿已知晶格失稳路径产生轻微畸变的参考结构。
输入与结果: 元素、初末晶格及可选 -s 分数 → str_hint.out、str_sup.out。
调用格式:
symbrklib -s 0.05 Fe bcc fcc
当前库包含 bcc/fcc/hcp 之间的指定路径。常与 robustrelax 配合;输出只提供初始结构,不能据此判断相稳定性。
展开本命令的完整参数表
Usage: symbrklib [-s fraction] [element] [initial_structure] [final_structure]
Currently, the initial and final structures can be one of bcc,fcc,hcp.
The -s option (optional) indicates to just generate a small distortion (a given fraction along the instability path).
This command is intended to be run before robustrelax_xxxx
icamag#
枚举固定超胞中对称不等价的离散占据/磁态。
输入与结果: 每格点列出 Fe+3,Fe-3 等两种磁标签的 lat.in → 构型及简并度。
调用格式:
icamag -d > magnetic-configs.out
默认按二值自旋并去掉全局翻转等价构型;-nm 取消磁性翻转等价并允许多物种占据。它不计算各态能量或自动得到 Curie 温度。
展开本命令的完整参数表
Independent Cell Approximation for MAGnetic systems 3.52, by Axel van de Walle
-h Display more help (Default: Off)
-l=[string] Input file defining the lattice (Default: lat.in)
-nm No Magnetism (Default: Off)
-sig=[int] Number of significant digits printed (Default: 5)
-d Use all default values (Default: Off)
原始参数表来自 ATAT 3.52,作者 Axel van de Walle 及相应贡献者。中文说明由鸢算科技编写;算法出处与论文引用。