def test_3b(): """ Tests triplet generation. """ from pylada.ce._single_site_factory import factory from pylada.crystal import bravais lattice = bravais.fcc() lattice[0].type = ['A', 'B'] results = factory(lattice, B3=1) assert len(results) == 4 results = factory(lattice, B3=2) assert len(results) == 9
def test_pairs(): """ Tests pair generation. """ from numpy import all, sum from pylada.ce._single_site_factory import factory from pylada.crystal import bravais from pylada.error import ValueError lattice = bravais.fcc() try: results = factory(lattice, B2=1) except ValueError: pass else: raise Exception() lattice[0].type = ['A', 'B'] results = factory(lattice, B2=1) assert len(results) == 1 assert all(results[0].spins['position'][0] == [0,0,0]) assert abs(sum(results[0].spins['position'][1]**2) - 2*0.5*0.5) < 1e-8 assert len(results[0]._symmetrized) == 12 results = factory(lattice, B2=2) assert len(results) == 2 assert all(results[0].spins['position'][0] == [0,0,0]) assert sum(results[0].spins['position'][1]**2) == 2*0.5*0.5 assert len(results[0]._symmetrized) == 12 assert all(results[1].spins['position'][0] == [0,0,0]) assert abs(sum(results[1].spins['position'][1]**2) - 1e0) < 1e-8 assert len(results[1]._symmetrized) == 6 results = factory(lattice, B2=3) assert len(results) == 3 assert all(results[0].spins['position'][0] == [0,0,0]) assert sum(results[0].spins['position'][1]**2) == 2*0.5*0.5 assert len(results[0]._symmetrized) == 12 assert all(results[1].spins['position'][0] == [0,0,0]) assert abs(sum(results[1].spins['position'][1]**2) - 1e0) < 1e-8 assert len(results[1]._symmetrized) == 6 assert all(results[2].spins['position'][0] == [0,0,0]) assert abs(sum(results[2].spins['position'][1]**2) - 1-2*0.25) < 1e-8 assert len(results[2]._symmetrized) == 24