def test_functionality_FCCLattice(): lattice = test_construct_FCCLattice() assert lattice.areNeighbors(np.zeros(3, dtype=float), np.array([0.0, -0.5, 0.5])) nbs = lattice.getNeighbors(np.zeros(3, dtype=float)) for p in nbs: assert lattice.areNeighbors(np.zeros(3, dtype=float), p) assert areEqual(lattice.IAD, sqrt(2) / 2, 1e-4) assert areEqual(lattice.FCC111LayerSpacing, 1 / sqrt(3), 1e-4) assert areEqual(lattice.FCC100LayerSpacing, 1 / 2, 1e-4) assert areEqual(lattice.FCC110LayerSpacing, sqrt(2) / 2, 1e-4)
def test_functionality_CubicLattice(): lattice = test_construct_CubicLattice() assert lattice.areNeighbors(np.zeros(3, dtype=float), np.array([1.0, 0.0, 0.0])) nbs = lattice.getNeighbors(np.zeros(3, dtype=float)) for p in nbs: assert lattice.areNeighbors(np.zeros(3, dtype=float), p) assert areEqual(lattice.IAD, 1.0, 1e-4)
def test_functionality_WurtziteLattice(): lattice = test_construct_WurtziteLattice() assert lattice.areNeighbors(np.zeros(3, dtype=float), np.array([0.0, 0.0, -3 / sqrt(24)])) nbs = lattice.getNeighbors(np.zeros(3, dtype=float)) for p in nbs: assert lattice.areNeighbors(np.zeros(3, dtype=float), p) assert lattice.isASite(np.zeros(3, dtype=float)) assert lattice.isBSite(np.array([0.0, 0.0, -3 / sqrt(24)])) assert areEqual(lattice.IAD, sqrt(3 / 8), 1e-4) assert areEqual(lattice.getLayerSpacing('0001'), sqrt(2 / 3), 1e-4) assert areEqual(lattice.getLayerSpacing('1100'), sqrt(3) / 2, 1e-4) assert areEqual(lattice.getLayerSpacing('1120'), 1, 1e-4) assert areEqual(lattice.getShellSpacing('0001'), sqrt(3) / 2, 1e-4) assert areEqual(lattice.getShellSpacing('1100'), 1, 1e-4) assert areEqual(lattice.getShellSpacing('1120'), 1, 1e-4) assert areEqual(lattice.getUniqueLayerCount('0001'), 2, 1e-4) assert areEqual(lattice.getUniqueLayerCount('1100'), 2, 1e-4) assert areEqual(lattice.getUniqueLayerCount('1120'), 1, 1e-4)
def test_functionality_DiamondLattice(): lattice = test_construct_DiamondLattice() assert lattice.areNeighbors(np.zeros(3, dtype=float), np.array([0.25, 0.25, 0.25])) nbs = lattice.getNeighbors(np.zeros(3, dtype=float)) for p in nbs: assert lattice.areNeighbors(np.zeros(3, dtype=float), p) assert lattice.isASite(np.zeros(3, dtype=float)) assert lattice.isBSite(np.array([0.25, 0.25, 0.25])) assert areEqual(lattice.IAD, sqrt(3) / 4, 1e-4) assert areEqual(lattice.getLayerSpacing('100'), 1 / 4, 1e-4) assert areEqual(lattice.getLayerSpacing('110'), sqrt(2) / 4, 1e-4) assert areEqual(lattice.getLayerSpacing('111'), sqrt(3) / 3, 1e-4) assert areEqual(lattice.getLayerSpacing('112'), sqrt(6) / 12, 1e-4) assert areEqual(lattice.getShellSpacing('100'), sqrt(8) / 4, 1e-4) assert areEqual(lattice.getShellSpacing('112'), sqrt(2) / 4, 1e-4) assert areEqual(lattice.getUniqueLayerCount('100'), 4, 1e-4) assert areEqual(lattice.getUniqueLayerCount('110'), 2, 1e-4) assert areEqual(lattice.getUniqueLayerCount('111'), 3, 1e-4) assert areEqual(lattice.getUniqueLayerCount('112'), 6, 1e-4)