目录

周期边界条件

重要性

这个知识点,对分子动力学模拟、晶体DFT计算,是必备基础知识,这个点不掌握,后续导致无穷无尽的理解方面的问题、模型的错乱问题。如果这个知识点不懂,建议不要进行分子动力学模拟,以及晶体的DFT计算,因为你在浪费自己和他人的时间!

前言

有一类材料,比如NaCl单晶,也许在宏观上它是一个小颗粒,但是在微观上,几乎就是以一个重复单元,在三个维度上重复约阿伏伽德罗常数那么多次,对微观机理研究来说,就可以认为是无限重复的。在材料的性质研究中,人们发现材料的很多方面的宏观、微观、电子结构性质,只与其重复单元的状况有关,而与重复具体是阿伏伽德罗常数次,还是阿伏伽德罗常数的2倍那么多次,并没有太大关系。

从而基于第一性原理的研究,以及大部分的分子动力学研究,产生了基于重复单元的计算,得到整体性质的这个思路。这种思路下,模型是一个重复单元,但是这个重复单元的边界是具有周期性特征的。那么何为周期性边界条件?详见下文,从各个不同的角度进行描述。

1,我的体系是一个明明是三维的,有厚度,怎么叫二维材料?

倘若这是定义材料维度的方式,那所有材料都是三维的,没有一、二维材料。

一般说的一、二、三维材料,是指在几个维度上具有周期性。一维材料是只在 X 方向有周期性,通俗的说,无限长;二维材料在 X、Y 两个方向有周期性,通俗的说,是一个无限大的面板,具有一定厚度;三维材料是指在 X、Y、Z 三个维度均有周期性,即长宽高无限大的块体。

三维、二维、一维周期边界,在 AMSinput 中 Periodicity 中分别对应 Bulk、Slab、Chain。Periodicity 为 None,则没有周期性,整个体系之外,为无限大真空,对这种体系进行分子动力学模拟,分子有可能扩撒到无穷远处。

2,单胞(Cell)与超胞(SuperCell)

2.1 单胞

单胞指一个重复单元。对一维周期结构而言,单包是一个线段内的原子;二维材料的单包,由一个四边形围成区域内的原子;三维材料的单包是一个六边形盒子围成的区域内的原子。

对于 DFT 而言:

对基于力场的分子动力学而言:

2.2 超胞

超胞是相对于单胞而言的。对于一个单胞,我们有时候希望它加倍,例如在A、B、C三个方向各自放大整数倍,例如分别2、3、5倍,那么❄按钮 → Generate Supercell会给出一个矩阵(如果是三维周期体系,则是3×3的矩阵,如果是二维周期体系则是2×2矩阵,如果是一维周期体系则是一个数字),矩阵的对角元,对应A、B、C三个方向,分别改为2、3、5则会在A方向放大2倍,B方向放大3倍,C方向放大5倍。不想放大的方向设为1即可。

默认下,该面板上的数字是2,即对于三维周期体系,A、B、C各放大2倍,对于二维周期体系,A、B个放大2倍,对于一位体系A放大2倍。

3,怎么创建盒子?

盒子不是创建出来的。只要设置了周期性Periodicity为Bulk,Cell 就自然存在,只是默认不显示。如何显示“盒子”? View → Periodic → Show Unitcell

Moldel → Lattice可以显示Cell的尺寸信息。

4,如何修改盒子的大小?

对已经创建好的模型,严禁在存在周期性的方向直接修改 Cell 的大小,否则与现有周期性不匹配。

如果是固相材料和分子混合的情况(在 ReaxFF 分子动力学模拟中常见),在添加分子前,可以修改 C 方向的尺寸,因为 C 方向添加了真空层,修改 C 值就会修改真空层的厚度。如果扩大 A、B 方向的尺寸,材料就成了周期排列的团簇,团簇之间存在空隙。如果缩小A、B方向尺寸,会导致原子重叠。

AMSinput → Model → Lattice 上半部分窗口,以 3✖3 矩阵的方式显示Cell,也可以在下半部分更直观地看到Cell的 A、B、C 与 α、β、γ 角,对于二维 Cell,则是 2✖2 矩阵,或 A、B 与 γ;一维 Cell 则只有 A 值(矩阵中第一个数字即 A)。

如果要改变密度或 Cell 大小,可以采用 NPT 系综压缩体积。压强不能太大,也不能太小,需要反复尝试。压强太大,压缩速度太快,会导致分子被撞碎;压强太小会导致压缩速度太慢。也可以用 NVT 系综迅速压缩,参考:【入门基础教程】创建高密度大分子固体、分子动力学压缩与拉伸

5,周期边界条件一定要检查

初学者不熟悉周期性边界条件,因此经常出现模型错误,有时候块体材料被创建成了纳米颗粒,有时候出现原子重叠,这两种问题通过周期边界条件的检查均可得到解决:AMSinput 右下角有四个圈的按钮,这个按钮是切换单/多周期显示(注意只是切换了显示的方式,并未改变模型)。可以清楚的看到是否出现了上述问题。

如果 Bulk 做成了这种周期性的团簇,DFT计算能带是一条条直线,实际变成了能级,具有了团簇特征。如果原子重叠,不管是 DFT 也好,力场分子动力学模拟也好,都无法正常计算,会报错 Atoms too close。

6,晶格矢量与坐标轴

一般默认情况下,周期性体系默认不显示坐标轴,但是显示晶格矢量。对于三维周期性体系,晶格矢量有红、绿、蓝三条线,分别代表A、B、C三个方向。晶格矢量是描述周期性的方向,沿着晶格矢量方向具有周期重复性。二维体系则晶格矢量只有2个,一维体系只有1个。

7,避免误解

AMS2022 以及以前的版本中,大多数误解,都可以在该例第 2、3 条中得以澄清:低温弛豫发生化学键的断键/成键

AMS2023 用户可以修改周期边界的显示,从而避免上述误解,例如默认显示如此: 修改一下显示的方式,如此把这个完整的分子显示出来,超出 Cell 的部分用虚影显示:

如果选择 view outside,则会显示 Cell 外部一定距离的原子情况,用户可以自行尝试。

即,在Cell边界上的“棍”是指该Cell中的原子,和相邻Cell中的原子是成键的,但由于周期性的原因,只显示一个Cell的原子即可,因此相邻Cell的原子不再显示,而相邻周期的原子,实际上就是本Cell平移一个周期的位置上的那个原子。而此除显示为虚影,就是告诉用户,虚影处是有原子的,但是不显示,因为在隔壁Cell。

8,如何显示完整分子?

这是典型的一个20个完整苯分子的体系,只是有的分子处于Cell的边界,所以看起来很碎。 AMS2024版增加了将完整分子显示出来,但是不改变Cell原子数的功能: Edit → Crystal → Map Molecules Complete,于是显示如下:

9,典型错误操作

如果充分理解以上,则不可能犯下面的错误:

9.1 直接修改Cell尺寸

9.1.1 如何修改Cell尺寸

AMSinput → 切换到BAND、ReaxFF、QuantumEspresso等支持周期性的模块 → Model → Lattice下方: 图中绿色框所示的部分,可以修改A、B、C长度,以及它们之间的夹角α、β、γ。

9.1.2 粘贴一个有周期性的体系到AMSinput

另外需要注意的是,当你的AMSinput本身是有周期性体系(例如一个晶体)存在,而你从其他地方复制了另一个有周期性的东西进来,那粘贴的时候,AMS就会询问你,是要保留本有周期性,还是用外来周期性覆盖本有周期性——这种情况需要特别注意,且自己特别清楚自己在干什么!

9.1.2 修改Cell尺寸需要注意的

一个体系,无论是Slab、Bulk,还是气相混合物,弛豫完成之后,直接修改Cell尺寸。这是一个对周期性完全不理解,导致的错误操作。拿二维体系来说,例如一个石墨烯,直接扩大Cell,就成了石墨烯豆腐块,中间隔几十埃的真空。——为什么?因为Cell边界附近的原子,和隔壁Cell的原子是成键的,直接加几十埃的真空,就相当于把这个键拉伸到几十埃长,对ReaxFF、DFTB、DFT而言,那就是断键了。

跨越Cell边界的分子,也是类似!

简而言之,直接扩大Cell,令跨越Cell边界的分子碎裂,令跨越Cell边界的二维材料被切割开,令跨越Cell边界的晶体,成为了团簇。

9.2 直接去掉周期性

就好像一条无穷长的铁轨,你只保留一个重复单元,那就意味着存在截断面。截断,对晶体、分子都存在严重问题。

9.2.1 如何去掉周期性?

在BAND、ReaxFF、Quantum Espresso等模块,都是支持各种周期性的,Periodicity可以修改周期性。例如原本是Bulk的体系,你直接改为None,周期性就丢失了。ADF不支持周期性,当你从其他模块切换到ADF模块时,周期性也自动丢失了。

9.2.2 去掉周期性时需要注意的地方

如果有分子跨越Cell边界,直接去掉周期性,会导致产生分子碎片,而这是不希望的,需要去掉分子碎片。如果是晶体,直接去掉周期性就会产生悬空键,以及一些尖角,这些都是化学性质非常活跃的地方——与事实严重不符,需要进行表面的修饰。