我尝试在python中构造一个最近邻列表,它将节点的最近邻存储在有限的三维六边形最近填充(HCP)晶格中。我已经用一个2d正方形晶格来定义结构了。我不需要坐标,只需要一种快速的方法,从整数列表中为HCP创建最近邻列表。下面是我如何用正方形格子来完成这个任务的示例代码。在
N = int #number of nodes
L = side # a 32x32 graph, L would be 32
for i in range(N):
nearNeighbor[i][0] = (i + 1 ) % N
nearNeighbor[i][1] = (i + (N - 1)) % N
nearNeighbor[i][2] = (i + L) % N
nearNeighbor[i][3] = (i + N - L) % N
if (i-L < 0):
nearNeighbor[i][3] = -2
if (i+L >= N):
nearNeighbor[i][2] = -2
if (i%L) == 0:
nearNeighbor[i][1] = -2
if ((i+1)%L) == 0:
nearN[eighbori][0] = -2
就这样。现在一个HCP晶格,当可视化时,就像一个巨大的球体立方体,紧密地聚集在一起。每个节点最多应该有12个最近的邻居,他们应该出来做一个立方体。我想我主要想知道如何使用整数和模运算来表示HCP格,就像我对平方格所做的那样。你能帮我叠一下吗?在
这个问题的答案取决于如何截短HCP晶格并为其编制索引。一个选择是
使用此选项,以下代码将返回给定站点的邻居列表。在
为了确保逻辑正确,我在编写上述函数时使用了以下测试
^{pr2}$请注意,测试并没有涵盖所有独特类型的网站,因此,可能仍然有一个角落的情况是错误的。在
相关问题 更多 >
编程相关推荐