Esempio n. 1
0
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
Esempio n. 2
0
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