From 975771fbfe656df0cad72264fd777ec0c4487b0d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 28 Sep 2015 14:48:29 +0700 Subject: [PATCH] Combine multiple intersections/unions when parsing region expressions --- openmc/region.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openmc/region.py b/openmc/region.py index a89658c03f..c54d8d3abc 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -95,6 +95,9 @@ class Region(object): elif isinstance(r2, Intersection) and hasattr(r1, 'surface'): r2.nodes.insert(0, r1) output.append(r2) + elif isinstance(r1, Intersection) and isinstance(r2, Intersection): + r1.nodes += r2.nodes + output.append(r1) else: output.append(Intersection(r1, r2)) elif operator == '^': @@ -105,6 +108,9 @@ class Region(object): elif isinstance(r2, Union) and hasattr(r1, 'surface'): r2.nodes.insert(0, r1) output.append(r2) + elif isinstance(r1, Union) and isinstance(r2, Union): + r1.nodes += r2.nodes + output.append(r1) else: output.append(Union(r1, r2)) elif operator == '~':