Esempio n. 1
0
def test_enforce_boundary_without_boundary_conditions():
    lattice = Lattice([24, 4])

    # BravaisSite
    assert lattice.enforce_boundary((24, 3), False) == (0, 3)
    assert lattice.enforce_boundary((-1, 4), False) == (23, 0)

    # LatticeSite
    assert lattice.enforce_boundary(LatticeSite((-1, 0)), False) == LatticeSite((23, 0))
    with pytest.raises(AssertionError):
        lattice.enforce_boundary(LatticeSite((-1, 0), 1), False)
Esempio n. 2
0
def test_enforce_boundary_with_boundary_conditions():
    lattice = Lattice([8, 8], 2)

    # BravaisSite
    assert lattice.enforce_boundary((4, 4), (periodic, periodic)) == ((4, 4), 1)
    assert lattice.enforce_boundary((4, 4), (antiperiodic, antiperiodic)) == ((4, 4), 1)
    assert lattice.enforce_boundary((13, 4), (periodic, periodic)) == ((5, 4), 1)
    assert lattice.enforce_boundary((13, 4), (antiperiodic, periodic)) == ((5, 4), -1)
    assert lattice.enforce_boundary((-3, 4), (antiperiodic, periodic)) == ((5, 4), -1)
    assert lattice.enforce_boundary((-3, 4), (antiperiodic, open_bc)) == ((5, 4), -1)
    assert lattice.enforce_boundary((-3, 4), (open_bc, periodic)) == ((5, 4), 0)

    # LatticeSite
    assert lattice.enforce_boundary(LatticeSite((-3, 4), 1), (antiperiodic, periodic)) == (LatticeSite([5, 4], 1), -1)