
B Computational Verification Code
The following Python script computationally constructs the FCC unit cell and explicitly
verifies the edge lengths, the 3 skew-edge pairs, the 1/4 bond commitment, the triangular
face bounding, and the 1 + 3 symmetry splitting of the tetrahedral void. Evaluates in < 1
second.
# !/ usr / bin / env python3
import numpy as np
from itertools import combinat i ons
a = 1.0 # lattice constant
basis = np . array ([[0 ,0 ,0] , [0.5 ,0.5 ,0] , [0.5 ,0 ,0.5] , [0 ,0.5 ,0.5]]) * a
tet_center = np . array ([0.25 , 0.25 , 0.25]) * a
tet_ver t ices = basis . copy ()
print (" 1. TET R AHEDRA L GEOMETRY & EDGES ")
edges = []
for i , j in com binatio n s ( range (4) , 2) :
d = np . linalg . norm ( te t_verti c es [ i ] - t e t_vert i ces [ j ])
edges . append ((i , j , d ))
print (f " All 6 edges equal a/ sqrt (2) : { all ( abs ( e [2] - a / np . sqrt (2) ) < 1e
-10 for e in edges )} ")
print (" \ n2 . SKEW EDGE PAIRS ( C R O S S INGS )" )
all_edges = list ( c o mbinat i ons ( range (4) , 2) )
oppos i te_pa i rs = [ (e1 , e2 ) for i , e1 in enumerate ( al l _ e dges )
for e2 in all_ e d g es [i +1:] if not set ( e1 ) & set ( e2 ) ]
print (f " Number of opposite ( skew ) edge pairs : { len ( opposit e _pair s )} ")
print (" \ n3 . BOND COMMIT M E NT ")
nn_vectors = []
for dx in [ -1 , 0 , 1]:
for dy in [ -1 , 0 , 1]:
for dz in [ -1 , 0 , 1]:
for b in basis :
pos = np . array ([ dx , dy , dz ]) * a + b
d = np . linalg . norm ( pos )
if abs ( d - a/ np . sqrt (2) ) < 0.01 and d > 0.01:
nn_vectors . append ( pos )
bonds_t o _tet = sum (1 for nn in nn_ v e ctors for ta in tet_v e rtices [1:] if
np . allclose ( nn , ta ) )
print (f " Bonds into tet void per atom : { bond s _to_te t } out of { len (
nn_vectors ) }" )
print (" \ n4 . TRIAN G ULAR FACE TOPOLOGY " )
tri_face = True
for i , j in combi n ations ( range (1 , 4) , 2) :
d = np . linalg . norm ( te t _verti c es [i ] - te t_verti c es [ j ])
if abs ( d - a/ np . sqrt (2) ) > 0.01: t r i _ f ac e = False
print (f " The 3 internal bonds form a closed triangu l a r face : { tri_face } " )
print (" \ n5 . SYMMETRY S PLITTING (1+3) " )
v110 = np . array ([1 ,1 ,0]) / np . sqrt (2)
projs = [ np . dot (v , v110 ) for v in te t _verti c es ]
print (f " Pr ojection s highlight origin vs face - center distinc t ion . " )
9