Post

atomsk 使用

atomsk 使用

介绍

参考资料


使用

命令相关概念:

  • 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 个随机取向&位置的晶粒

image.png

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

image.png

image.png

image.png

image.png

image.png

This post is licensed under CC BY 4.0 by the author.