2019-10-16 11:45:18 -04:00
|
|
|
|
2022-02-12 00:54:21 +00:00
|
|
|
from tests.unit_tests.test_lattice import zr, pincell1, pincell2, rlat2
|
2022-02-11 23:46:24 +00:00
|
|
|
|
2019-10-16 11:45:18 -04:00
|
|
|
|
|
|
|
|
def test_discretization_degenerate(rlat2):
|
|
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
|
|
|
|
rlat_clone.discretize()
|
|
|
|
|
|
|
|
|
|
assert rlat_clone.get_universe((0, 0)).id !=\
|
|
|
|
|
rlat_clone.get_universe((1, 0)).id
|
|
|
|
|
assert rlat_clone.get_universe((1, 0)).id !=\
|
|
|
|
|
rlat_clone.get_universe((0, 1)).id
|
|
|
|
|
assert rlat_clone.get_universe((0, 1)).id !=\
|
|
|
|
|
rlat_clone.get_universe((0, 0)).id
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)).id !=\
|
|
|
|
|
rlat_clone.get_universe((2, 0)).id
|
|
|
|
|
assert rlat_clone.get_universe((2, 1)).id !=\
|
|
|
|
|
rlat_clone.get_universe((1, 2)).id
|
|
|
|
|
|
|
|
|
|
def test_discretization_skip_universe(rlat2):
|
|
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
|
|
|
|
rlat_clone.discretize(
|
|
|
|
|
universes_to_ignore=[rlat_clone.get_universe((0, 0))])
|
|
|
|
|
|
|
|
|
|
assert rlat_clone.get_universe((0, 0)) == rlat_clone.get_universe((0, 1))
|
|
|
|
|
assert rlat_clone.get_universe((0, 1)) == rlat_clone.get_universe((2, 1))
|
|
|
|
|
assert rlat_clone.get_universe((0, 1)) == rlat_clone.get_universe((1, 2))
|
|
|
|
|
|
|
|
|
|
def test_discretization_clone_only_some_materials(rlat2):
|
|
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
|
|
|
|
fuel1 = next(iter(rlat_clone.get_universe((0, 0)).cells.values())).fill
|
|
|
|
|
rlat_clone.discretize(materials_to_clone=[fuel1])
|
|
|
|
|
|
2023-08-19 13:15:11 +01:00
|
|
|
assert next(reversed(list(rlat_clone.get_universe((0, 0)).cells.values()))).fill\
|
|
|
|
|
== next(reversed(list(rlat_clone.get_universe((1, 0)).cells.values()))).fill
|
2019-10-16 11:45:18 -04:00
|
|
|
assert next(iter(rlat_clone.get_universe((0, 0)).cells.values())).fill\
|
|
|
|
|
!= next(iter(rlat_clone.get_universe((1, 0)).cells.values())).fill
|
|
|
|
|
|
|
|
|
|
def test_discretization_lns(rlat2):
|
|
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
|
|
|
|
rlat_clone.discretize(strategy="lns")
|
|
|
|
|
|
2019-10-31 10:31:47 -04:00
|
|
|
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 2))
|
2019-12-06 01:22:21 -05:00
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((0, 0))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((0, 1))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((1, 0))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((1, 1))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((1, 2))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((2, 0))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) != rlat_clone.get_universe((2, 1))
|
2019-10-16 11:45:18 -04:00
|
|
|
|
|
|
|
|
def test_discretization_lns_using_names(rlat2):
|
|
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
2020-01-21 17:48:31 -05:00
|
|
|
rlat_clone.discretize(strategy="lns", key=lambda univ: univ.name)
|
2019-10-16 11:45:18 -04:00
|
|
|
|
2019-10-31 10:31:47 -04:00
|
|
|
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 2))
|
2019-10-16 11:45:18 -04:00
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
2019-10-31 10:31:47 -04:00
|
|
|
rlat_clone.get_universe((0, 1)).name="u1"
|
2019-10-16 11:45:18 -04:00
|
|
|
rlat_clone.get_universe((1, 0)).name="u1"
|
2020-01-21 17:48:31 -05:00
|
|
|
rlat_clone.discretize(strategy="lns", key=lambda univ: univ.name)
|
2019-10-16 11:45:18 -04:00
|
|
|
|
2019-10-31 10:31:47 -04:00
|
|
|
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 0))
|
|
|
|
|
assert rlat_clone.get_universe((2, 2)) == rlat_clone.get_universe((0, 0))
|
|
|
|
|
assert rlat_clone.get_universe((0, 2)) == rlat_clone.get_universe((2, 2))
|
|
|
|
|
assert rlat_clone.get_universe((1, 2)) == rlat_clone.get_universe((1, 0))
|
|
|
|
|
assert rlat_clone.get_universe((2, 1)) == rlat_clone.get_universe((0, 1))
|
|
|
|
|
assert rlat_clone.get_universe((1, 2)) == rlat_clone.get_universe((0, 1))
|
|
|
|
|
assert rlat_clone.get_universe((0, 0)) != rlat_clone.get_universe((0, 1))
|
2019-10-16 11:45:18 -04:00
|
|
|
|
|
|
|
|
def test_discretization_lns_with_neighbor_list(rlat2):
|
|
|
|
|
|
|
|
|
|
rlat_clone = rlat2.clone()
|
|
|
|
|
u1 = rlat_clone.get_universe((1, 0))
|
|
|
|
|
u2 = rlat_clone.get_universe((0, 0))
|
|
|
|
|
rlat_clone.discretize(strategy="lns",
|
2020-01-21 17:48:31 -05:00
|
|
|
lattice_neighbors=[u1,u1,u2,u1,u2,u2,u1,u2])
|
2019-10-16 11:45:18 -04:00
|
|
|
|
2019-10-31 10:31:47 -04:00
|
|
|
assert rlat_clone.get_universe((0, 1)) == rlat_clone.get_universe((0, 0))
|
|
|
|
|
assert rlat_clone.get_universe((1, 1)) != rlat_clone.get_universe((0, 0))
|
2019-10-16 11:45:18 -04:00
|
|
|
|