atomsk 使用
atomsk 使用
介绍
参考资料
- atomsk 官方教程:Atomsk - Tutorials
- Atomsk Cheat Sheet
- 查看所有的 options 和 modes 及其用法:Documentioin - Atomsk
- 层错构建:Atomsk - Tutorial - Stacking fault
- VESTA 中如何变换点阵(六方转正交):crystallography - How to transform lattice in VESTA - Matter Modeling Stack Exchange
- 六方胞的正交化(里面的示意图可供参考):Orthogonalization of a hexagonal unit cell of AlN)
- VESTA 可以读取原子位置分数占据的构型文件(可以导出 cif 格式):Atomsk - Tutorial - Importation of CIF files
- atomsk 中的 cfg 格式文件用 ovito 打开,VESTA 无法打开
- 晶界构建(symmetric tilt、twist):Atomsk - Tutorial - Grain Boundaries
- 位错构建(刃、螺位错):Atomsk - Tutorial - Edge Dislocation in Aluminium、Atomsk - Tutorial - Screw Dislocation in Aluminium
使用
命令相关概念:
options
:应用于体系的变换(transformations),用-
区分。modes
:允许执行特定的操作,构造,分析或操纵多个数据文件(operations, constructions, analysis, manipulate),用--
区分。
常用命令实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 构建晶体结构
atomsk --create fcc 4.02 Al vasp
# 构建不同晶体取向的构型
# zsh [] 中括号需添加引号
atomsk --create fcc 3.53 Ni -orient [1-10] [11-2] [111] vasp
# 构建超胞
atomsk Ni.cfg -duplicate 1 1 4 vasp
# 原子 Z 轴坐标低于一定值,其 Z 轴被固定
atomsk Ni.cfg -fix Z below 4.05 Z vasp
# 线性插值;用于 NEB
atomsk --interpolate initial.cfg final.cfg 7 cfg
# 将六方胞变成正交胞
atomsk POSCAR -orthogonal-cell -sort species pack vasp
# 笛卡尔、分数坐标互相转换
echo y | atomsk POSCAR vasp
echo y | atomsk POSCAR -fractional vasp
# 常用 options
-orient # 晶体取向
-rmatom N # 删除原子
-rotate Z 45 # 旋转轴
-orthogonal-cell # 转变为正交胞
-fractional # 分数坐标;VASP 格式下
-sort species pack # 使相同元素在 POSCAR 中是连续的
-fix Z # 固定原子坐标轴;Z/all
-substitute 1 Cu # 原子类型替换成某种元素
-wrap # 将胞外原子施加 PBC 移至胞内
-cell add 10 y # 在 y 方向上增加 10 埃,原子位置不变;x y z 可分别写成 H1 H2 H3;作用相当于添加真空层
-center 0/com # 移动所有原子,使其质心在 box 中心;会使位于 box 边缘的原子位点稍微往胞里靠,和 ase Atoms 的 center方法效果不同
# 常用 modes
--create # 构建晶体结构
# 格式转换
# 输出文件可以是具体的文件名,也可以是文件格式
# 输出文件可以是多个
# 写入 cif 文件时,总是假设空间群为 P1,写入所有原子位置
atomsk XXX.cfg xyz # xyz lammps vasp/pos cif
# atomsk 支持的构型文件格式
atsk abin bop bx cfg cel cif coo csv d12
dat dd dlp fdf gin imd jems lmp mol
pdb pos pw str vesta xmd xsf xv
xyz exyz sxyz
其他
- atomsk 可否建立界面模型?
基于 Voronoi tessellation 算法 生成多晶模型
1
2
3
4
5
6
7
atomsk --create fcc 4.04 Al Al_unitcell.lmp
atomsk --polycrystal Al_unitcell.lmp poly.txt -wrap Al_polycrystal.lmp
# poly.txt
box 200 100 100 # 盒子大小
random 6 # 生成 6 个随机取向&位置的晶粒
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
atomsk --create fcc 3.48 Ni -duplicate 5 5 5 Ni_host.lmp
# 有问题
atomsk Ni_host.lmp -select random 30% Ni -substitute Ni Fe -properties props.txt Fe_Ni.lmp
atomsk Fe_Ni.lmp -select random 20% Ni -substitute Ni Cr -properties props.txt Fe_Cr_Ni.lmp
atomsk --polycrystal Fe_Cr_Ni.lmp poly.txt -wrap incoloy_poly.lmp
# props.txt
Type
Fe 1
Cr 2
Ni 3
# poly.txt
box 100 100 300
random 12
This post is licensed under
CC BY 4.0
by the author.