pos = np.array([[0,0],[2.5,0],[5.0,0],[1.25,2.2]])
elem = ["Ni","Fe","Ni","H"]
h = one_hot(elem) # 初始特徵
adj = neighbors_within(pos, r_cut=3.0) # 建圖
for round_ in range(2): # 兩輪 message passing
for i, nbrs in enumerate(adj):
m = h[nbrs].sum(axis=0) # 聚合:鄰居特徵求和
h_new[i] = (h[i] + m) / (1 + len(nbrs)) # 更新:含自己取平均
h = h_new
# 每列 = 一個原子「打聽完」的環境組成