对于在金刚石晶格结构中结晶的固体的动力学蒙特卡罗模拟,我需要将金刚石晶格有效地表示为整数,以将其存储在某种类似数组的结构中,其中每个数组索引都可以唯一地映射到真实空间中的某个原子:
菱形晶格由两个面心晶格组成,它们彼此相对移动:
到目前为止,我还没有找到非常合适的解决方案。我对这个映射有一些必须满足的要求:
- 我需要知道整数空间中每个原子的最近邻和次近邻。如果可能的话,我想预先计算我需要从当前原子的数组索引中添加或减去的数字,以获得最近的 4 个和 12 个最近的邻居:
- 我需要从底部(在实际空间中)向上填充系统,所以我很乐意至少对于坐标有一些简单的关系。
- 映射越简单,我就越开心。如果它有点直观,那将是一个很大的优势,所以我可以在脑海中想象它。
到目前为止我尝试了什么:
- 我找到了这个网站(最近也找到了这个网站,在该网站上给出了钻石晶格的表示,包括最近邻居的。然而,我找不到从那里到真实空间的映射。(知道我该怎么做吗?)
- 一个可行的选择是使用 fcc 晶格几何,基向量从原点指向面中心的原子。有了这个基础,晶格的每个原子都可以用一组 3 个整数来达到。然而,由于金刚石晶格由两个移位的 fcc 晶格组成,我需要第四个索引来确定每个原子属于哪个晶格。另外,我没有成功找到一个简单的映射,它允许我确定平面左右。
我在问,因为这应该是一个普遍的问题。有很多模拟/模拟出版物,其中模拟了金刚石晶格(Si,GaS,......),这让我感到惊讶,我在互联网上找不到解决我问题的简单方法。
如果您能指出我的一些方向或了解有关如何做到这一点的任何文献,我将非常高兴。