结构建模
结构建模
结构建模常用工具
atomsk:Atomsk - GitHub、Atomsk 官网
Material Studio(Win + Linux)
其他:
缺陷构型生成:GitHub - nanyanshouhu/Defect_generator
- 计算材料数据库
构型可视化工具
用于晶体、分子结构可视化的 Jupyter 组件:GitHub - nglviewer/nglview: Jupyter widget to interactively view molecular structures and trajectories
结构可视化
HCP 结构单胞原子位置有两种形式:
- 一个原子在原点,另一个在胞内:latgen 和 ase,(0.0 0.0 0.0)、(2/3 1/3 0.5)
- 两个原子均在胞内:pymatgen 和 PyXtal,(1/3 2/3 1/4)、(2/3 1/3 3/4)
- 两种形式无本质区别,两者可通过过周期性平移进行互相转化
- Hexagonal close packing - hcp: Interactive 3D Structure 有这两种形式的可视化
HCP 除 (001) 面的结构是六方,其他面的结构均为四方或正交
分析工具
crysinfo 程序(孔老师):6a 选项查看 Assign Wyckoff letter(等同位点)
含缺陷超胞生成、前/后处理和分析:Doped code 介绍
Crystal Toolkit 可视化构型:
AFLOW 线上工具:AFlow - Automatic - FLOW for Materials Discovery;功能
- 构型文件转换
- 对称性
- 结构对比
- Coordination corrected enthalpies (CCE)
- K 点
- Partial OCCupation (POCC)
- 间隙
- XRD
cifcell:将 CIF 构型格式文件转换成其他计算程序格式(较实用)
1 | cif2cell input.cif -p vasp --vasp-cartesian-positions |
- findsym:生成有对称性的 cif 文件(ISOTROPY 中的工具之一)
1 | findsym_cifinput input.cif > input1.cif # 让 findsym 读起来更方便 |
构型文件格式
注意事项:
- CIF 格式有含对称性、不含对称性两种格式(前者晶体学信息更全),大部分程序将构型格式转换成 CIF 都是不含对称性的(空间群为 P1,写入所有原子)
- xyz 格式构型文件通过 ase 读取,其 pbc 为 False(extxyz 格式的 pbc 为 True),保存成 xyz 格式时无晶格参数信息;posconv 转换成 xyz 文件格式会在每行的原子位置后面附加晶格参数信息,第二行有注释信息
- vaspkit 可将 xsd 文件转换成 POSCAR
- posconv 添加 xsd 转换成其他格式的代码(Fortran)
常见构型文件格式文件名及其后缀:File input and output — ASE documentation
1 | POSCAR # VASP |
- xyz 格式内容示例
1 | 2 |
- extxyz 格式内容示例(第二行有信息)
1 | # 其他构型文件转换成 extxyz |
- LAMMPS data 文件格式内容示例
1 | # atom_style 为 atomic 时的内容 |
- LAMMPS dump 文件格式内容示例
1 | ITEM: TIMESTEP # 第 N 个时间步长时输出的构型 |
结构建模
元素周期表里元素的晶体结构:Periodic table (crystal structure) - Wikipedia
Springer Materials:https://materials.springer.com/
MP 等材料数据库中的结构文件有时对称性不一定正确,查看该数据库中已计算的性质是否与文献中的接近,以及最好进行静态计算检验一下
复杂结构
方法 1:在文献中查找该结构的晶体学信息,若提到 prototype structure(原型结构),可在数据库(AFLOW、MP、Springer Materials、ICSD 等)中找到对应的 cif 文件(需留意 Wyckoff position 是否一致或接近,某些含有变量,不同的具体结构变量值会不同),再将晶格常数和原子种类进行替换,替换为要构建结构的信息
方法 2: 手动构建,需以下晶体学信息,使用 PyXtal,ASE,pymatgen 或 Material Studio 构建
- 晶体结构(crystal structure)
- 点阵参数(lattice parameter)
- 空间群(space group number)
- 原子位置(Wyckoff letter & Wyckoff position)
表面
切复杂结构/高指数面的表面时,可优先使用 Material Studio 的 Build surface 功能,清晰直观,且能快速得到具体的坐标轴(用于 atomsk)
不同方法生成常见低指数面的表面模型的区别
- FCC:(100)、(110) 面正交/立方,(111) 面六方
- BCC:(100) 面正交/立方,(110)、(111) 面六方
- atomsk 构建时,需要求坐标轴正交,因此生成的表面模型总是正交胞
- ASE 中的部分表面模型总是正交胞,部分可指定为非正交或正交胞
- latgen 可指定生成的表面模型为非正交或正交胞
- pymatgen 生成的表面模型总不是正交胞(没有前三个工具好用)
BCC、FCC、HCP 常见指数面的表面模型示意图
- BCC/FCC (100)、(110) 面一个最小完整单元有 2 个原子层,(111) 面有 3 个原子层(正常是六方)
- 1.3: Surface Structures- fcc Metals - Chemistry LibreTexts
- 1.4: Surface Structures- hcp Metals - Chemistry LibreTexts
- 1.5: Surface Structures- bcc metals - Chemistry LibreTexts
添加真空层
- vaspkit 添加真空层,先加真空层数值,再将原子层移至 z 方向中间(1 * vac)
- ASE 中的
center()
函数添加真空层是分别往两边加(2 * vac) - atomsk 添加的真空层是在上半部分(1 * vac)
表面模型中 z 方向晶格常数数值计算(n 为 layer 数目,d 为层间距,vac 为真空层厚度)
- ASE:(n-1) * d + vac
- atomsk:n * d + vac
- latgen:n * d + vac(可指定为 n 或 n-1)
BCC、FCC、Diamond、HCP 常见表面/位向的具体坐标轴
1 | # BCC、FCC、Diamond |
使用 VESTA 构建不同位向(本质还是找到晶向的具体坐标轴值):VASP 高级教程[8]使用 VESTA 切表面 surface slab
LAMMPS 内置命令构建不同位向出现的问题:好文:从源代码看 lammps 的建模 BUG
- LAMMPS 的建模源代码里面没有提供对于特殊晶体取向的判断以修正最小周期长度,而 atomsk 提供了
- 某些特殊的晶向指数, 在计算其最小的单位边长时, 是需要除以 2 的;BCC:1/2[111]、1/2[531];FCC:1/2[110]、1/2[112]
界面/异质结
[建模与可视化] 求助Si和α-Al2O3材料界面计算的界面搭建问题 - 第一性原理 (First Principle) - 计算化学公社
GitHub - rzk1/heterojunction: Create surfaces and heterojunctions from two crystal structures
生成界面模型(Fortran 代码):Hepplestone / Artemis · GitLab
在 latgen、VASPKIT 和 MS 中,称为 build layer
VASPKIT 804 选项,会根据用户输入的错配度要求生成满足条件的系列界面构型 POSCAR 文件,并输出 log 信息
非晶
晶界
aimsgb 程序:aimsgb documentation、aimsgb - GitHub
GitHub - ab5424/agility: Repository for the Atomistic Grain Boundary and Interface Utility.
GitHub - oekosheri/GB_code: A grain boundary generation code
含晶界构建
aimsgb 程序使用
1 | # 指定旋转轴、sigma、晶面 生成晶界 |
(Coincidence Site Lattice, CSL) 重合位置点阵理论
对称倾侧(斜)晶界 (Symmetrical Tilting Grain Boundaries, STGB)
tilted grain boundaries 晶界面平行于旋转轴
twisted grain boundary 晶界面垂直于旋转轴
1 | m, n # 整数 |
根据特定晶界构建
寻找晶界
碳纳米管
-
- 先构建纳米带,再使其卷曲形成纳米管
其他:
石墨烯
二维;六方结构;最近邻原子间距约为 1.42 埃
注:
- 对于六方结构,其中的原子位置坐标随基矢的选择会有些许不同,但本质一样都是一样的;
- 基矢以逆时针为正方向;
- C 的 ENMAX 为 400(所有元素中最大,所以 pymatgen 中 ENCUT 的默认设置为 520)。
CASTRO NETO A H, GUINEA F, PERES N M R, 等, 2009. The electronic properties of graphene[J/OL]. Reviews of Modern Physics, 81(1): 109-162. DOI:10.1103/RevModPhys.81.109.
石墨烯 POSCAR 文件
1 | graphene hexagonal |
石墨
- 六方结构;z 轴方向长度约为 6.7 埃
石墨 POSCAR 文件
1 | graphite |
晶体学相关
了解 aflow prototype 中的 primitive vectors 的公式及其含义,及如何实现 unit 与 primitive 互相转变的
D019 结构(Ti3Al)原子位点,mp 与 latgen 两者有区别(和 hcp 类似的问题)
D019 Ti3Al 结构:https://next-gen.materialsproject.org/materials/mp-1823?chemsys=Ti-Al&crystal_system=Hexagonal
α2 相晶体学信息:晶体结构:D019;空间群:P63/mmc
有序 B2/β 相晶体学信息:空间群:Pm-3m(3 的上面有横线) CsCl 原型结构
O 相晶体学信息:晶体结构:三元有序 orthorhombic;空间群:Cmcm, oC16
其他
BCC 的第 N 近邻距离:solid state chemistry - Calculate the third and fourth nearest neighbours in bcc - Chemistry Stack Exchange
金刚石结构 Si 原胞原子位点位置(latgen、ASE):(0.0 0.0 0.0)、(0.25 0.25 0.25);pymatgen 对应的原胞位置是 (0.0 0.0 0.0)、(0.75 0.75 0.75)
- 原子半径没有统一值?
晶胞正交化、等长化:晶胞正方化 - Jerkwin
钙钛矿、半导体、绝缘体的点缺陷比金属或金属间化合物的点缺陷要复杂很多
C60 POSCAR 文件:C60.POSCAR.vasp
HCP 结构位错类型:a 型、a+c 型
钙钛矿晶体结构:八面体扭转理论
1 | A Handbook of Lattice Spacings and Structures of Metals and Alloys Volume 4 in International Series of Monographs on Metal Physics and Physical Metallurgy Book • 1958 |
晶胞转换(介绍了几种工具;内容一般):晶胞之间相互转换 - ZSaying
A15 A3B 型
B1 NaCl 型
D019 hcp 结构
D022 正交结构
Pearson 符号
3 个符号表示
晶系 +(P I R F SABC I)+ 数字(原子数)
225 FCC 结构
原型结构(最早发现的晶体)