周期性边界条件

周期性边界条件(PBCs)是分子模拟与数学模型中的常用近似方法之一，其思想是用一个称为元胞的周期性盒子来近似地描述宏观的体系。在一个元胞周围有紧密堆积的完全相同的元胞。例如在二维体系中，一个方形元胞四周有相同的元胞(称为"镜像")，若一个粒子从右边边界穿出，操作上左边边界对应位置有相同粒子进入，由此保证了元胞中粒子数目即物理量如动量与能量的守恒。

尽管计算机的计算能力发展迅速，但用其模拟粒子数目非常巨大(阿佛加德罗常数数量级)的宏观体系仍然是不现实的。当今计算机能模拟数百万乃至千万个粒子的体系，要用这有限个粒子数目反映宏观相的热力学性质，只能借助于周期性边界来实现，使用有限个粒子的体系近似地描述宏观体系的性质。分子动力学模拟中，常使用PBC描述气体、液体、溶液及晶态的行为。

实现
PBC算法主要体现在两部分。其一：对体系内粒子坐标的约束。x_size是一个方向上的元胞边长，则粒子坐标区间为[-0.5*x_size, 0.5x_size)，代码如下： 

if (periodic_x) then
  if (x <  -x_size * 0.5) x = x + x_size
  if (x >=  x_size * 0.5) x = x - x_size
end if
其二，粒子间距离计算使用最小镜像法则，代码如下：
if (periodic_x) then
  dx = x(j) - x(i)
  if (dx >   x_size * 0.5) dx = dx - x_size
  if (dx <= -x_size * 0.5) dx = dx + x_size
end if
利用取整运算可写出更为紧凑的代码实现：
! 此时坐标x(i)已更新，但尚未使用PBC
x(i) = x(i) - nint(x(i) / x_size) * x_size  ! 坐标x(i)的PBC校验
! 粒子i与j间的最小镜像距离
dx = x(j) - x(i)
dx = dx - nint(dx / x_size) * x_size
这样两粒子在一个坐标轴方向上的距离总是小于等于半个盒子边长。

元胞的几何
上述PBC算法的元胞是。一般地，PBC选择的元胞需要能填充整个空间，因此球形或椭圆形的晶格是不能用作周期性边界的元胞的。三维下，正方体或长方体是最直观的选择。考虑到立方体边角可能浪费空间，或者说简单立方堆积并不是密堆积，使用截角八面体元胞可以在更少体积的元胞内包含相同数量的粒子。

高维情况
通常，二维和三维的分子模拟，因为实现简单，简单正方/立方元胞是最常用的周期性边界条件。然而，高维的模拟中，超方形边角占总体的体积随维度增加而显著增大，因此简单立方元胞的效率越来越低。从另一个角度看，元胞可被视作某种晶格堆积的维格纳－赛兹原胞。例如，超方形晶格的周期性边界条件对应着高维下的简单立方堆积。使用构建高维下的周期性边界条件元胞可获得理论最优效率。例如，四维的最密堆积是正十六胞体堆砌，八维下则是。高维周期性边界条件的实现等价于信息论中基于高维密堆积的纠错码算法。

性质
PBC的引入不影响体系的动量守恒与能量守恒，但是角动量不再守恒。

PBC作为一种人为的近似，不可避免地对模拟引入偏差，影响计算结果的有效范围。即使对于最简单的兰纳-琼斯流体，PBC的引入对NVE系综下的模拟的取样也有轻微影响，从而对物理量的统计值引入系统误差，故而引入PBC的NVE系综被建议称作NVEPG系综。径向分布函数g(r)在r大于半个盒子边长时是不准确的，r等于盒子边长时更是有人为的尖峰。在固体体系中，涉及振动的研究，声音，冲击波或声子的波长范围受体系大小的限制。对于长程力例如电磁相互作用的计算，需要使用特殊的方法(如Edwald加和，PPPM方法等)。相行为研究中，连续相的取向由于界面能的影响常常沿着盒子边长，体系受限甚至可能得出错误的结论，因此即使引入PBC，体系的大小也应当足够大以尽可能减小引入近似造成的非物理干扰。

参考资料

分子建模