From 78d14133dbd7cb24c42b99256d36a67c4cd0b15e Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 01:25:41 -0400 Subject: [PATCH 1/7] Updated OpenCG compatiblity module to reflect move to PEP8 use of underscores in place of camelCase --- openmc/material.py | 9 +- openmc/mesh.py | 8 +- openmc/opencg_compatible.py | 182 ++++++++++++++++++------------------ openmc/surface.py | 7 +- openmc/tallies.py | 7 +- openmc/universe.py | 21 +++-- 6 files changed, 128 insertions(+), 106 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index e495357b54..4f60abc676 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -132,9 +132,12 @@ class Material(object): @name.setter def name(self, name): - check_type('name for Material ID="{0}"'.format(self._id), - name, basestring) - self._name = name + if name is not None: + check_type('name for Material ID="{0}"'.format(self._id), + name, basestring) + self._name = name + else: + self._name = None def set_density(self, units, density=NO_DENSITY): """Set the density of the material diff --git a/openmc/mesh.py b/openmc/mesh.py index 2fe873d2bc..af13d984df 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -148,8 +148,12 @@ class Mesh(object): @name.setter def name(self, name): - check_type('name for mesh ID="{0}"'.format(self._id), name, basestring) - self._name = name + if name is not None: + check_type('name for mesh ID="{0}"'.format(self._id), + name, basestring) + self._name = name + else: + self._name = None @type.setter def type(self, meshtype): diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 65e980c003..682ef0ecac 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -83,14 +83,14 @@ def get_opencg_material(openmc_material): raise ValueError(msg) global OPENCG_MATERIALS - material_id = openmc_material._id + material_id = openmc_material.id # If this Material was already created, use it if material_id in OPENCG_MATERIALS: return OPENCG_MATERIALS[material_id] # Create an OpenCG Material to represent this OpenMC Material - name = openmc_material._name + name = openmc_material.name opencg_material = opencg.Material(material_id=material_id, name=name) # Add the OpenMC Material to the global collection of all OpenMC Materials @@ -123,14 +123,14 @@ def get_openmc_material(opencg_material): raise ValueError(msg) global OPENMC_MATERIALS - material_id = opencg_material._id + material_id = opencg_material.id # If this Material was already created, use it if material_id in OPENMC_MATERIALS: return OPENMC_MATERIALS[material_id] # Create an OpenMC Material to represent this OpenCG Material - name = opencg_material._name + name = opencg_material.name openmc_material = openmc.Material(material_id=material_id, name=name) # Add the OpenMC Material to the global collection of all OpenMC Materials @@ -168,8 +168,8 @@ def is_opencg_surface_compatible(opencg_surface): 'since "{0}" is not a Surface'.format(opencg_surface) raise ValueError(msg) - if opencg_surface._type in ['x-squareprism', - 'y-squareprism', 'z-squareprism']: + if opencg_surface.type in ['x-squareprism', + 'y-squareprism', 'z-squareprism']: return False else: return True @@ -196,59 +196,59 @@ def get_opencg_surface(openmc_surface): raise ValueError(msg) global OPENCG_SURFACES - surface_id = openmc_surface._id + surface_id = openmc_surface.id # If this Material was already created, use it if surface_id in OPENCG_SURFACES: return OPENCG_SURFACES[surface_id] # Create an OpenCG Surface to represent this OpenMC Surface - name = openmc_surface._name + name = openmc_surface.name # Correct for OpenMC's syntax for Surfaces dividing Cells - boundary = openmc_surface._boundary_type + boundary = openmc_surface.boundary_type if boundary == 'transmission': boundary = 'interface' opencg_surface = None - if openmc_surface._type == 'plane': - A = openmc_surface._coeffs['A'] - B = openmc_surface._coeffs['B'] - C = openmc_surface._coeffs['C'] - D = openmc_surface._coeffs['D'] + if openmc_surface.type == 'plane': + A = openmc_surface.coeffs['A'] + B = openmc_surface.coeffs['B'] + C = openmc_surface.coeffs['C'] + D = openmc_surface.coeffs['D'] opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) - elif openmc_surface._type == 'x-plane': - x0 = openmc_surface._coeffs['x0'] + elif openmc_surface.type == 'x-plane': + x0 = openmc_surface.coeffs['x0'] opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) - elif openmc_surface._type == 'y-plane': - y0 = openmc_surface._coeffs['y0'] + elif openmc_surface.type == 'y-plane': + y0 = openmc_surface.coeffs['y0'] opencg_surface = opencg.YPlane(surface_id, name, boundary, y0) - elif openmc_surface._type == 'z-plane': - z0 = openmc_surface._coeffs['z0'] + elif openmc_surface.type == 'z-plane': + z0 = openmc_surface.coeffs['z0'] opencg_surface = opencg.ZPlane(surface_id, name, boundary, z0) - elif openmc_surface._type == 'x-cylinder': - y0 = openmc_surface._coeffs['y0'] - z0 = openmc_surface._coeffs['z0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'x-cylinder': + y0 = openmc_surface.coeffs['y0'] + z0 = openmc_surface.coeffs['z0'] + R = openmc_surface.coeffs['R'] opencg_surface = opencg.XCylinder(surface_id, name, boundary, y0, z0, R) - elif openmc_surface._type == 'y-cylinder': - x0 = openmc_surface._coeffs['x0'] - z0 = openmc_surface._coeffs['z0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'y-cylinder': + x0 = openmc_surface.coeffs['x0'] + z0 = openmc_surface.coeffs['z0'] + R = openmc_surface.coeffs['R'] opencg_surface = opencg.YCylinder(surface_id, name, boundary, x0, z0, R) - elif openmc_surface._type == 'z-cylinder': - x0 = openmc_surface._coeffs['x0'] - y0 = openmc_surface._coeffs['y0'] - R = openmc_surface._coeffs['R'] + elif openmc_surface.type == 'z-cylinder': + x0 = openmc_surface.coeffs['x0'] + y0 = openmc_surface.coeffs['y0'] + R = openmc_surface.coeffs['R'] opencg_surface = opencg.ZCylinder(surface_id, name, boundary, x0, y0, R) @@ -282,52 +282,52 @@ def get_openmc_surface(opencg_surface): raise ValueError(msg) global openmc_surface - surface_id = opencg_surface._id + surface_id = opencg_surface.id # If this Surface was already created, use it if surface_id in OPENMC_SURFACES: return OPENMC_SURFACES[surface_id] # Create an OpenMC Surface to represent this OpenCG Surface - name = opencg_surface._name + name = opencg_surface.name # Correct for OpenMC's syntax for Surfaces dividing Cells - boundary = opencg_surface._boundary_type + boundary = opencg_surface.boundary_type if boundary == 'interface': boundary = 'transmission' - if opencg_surface._type == 'plane': + if opencg_surface.type == 'plane': A = opencg_surface._coeffs['A'] B = opencg_surface._coeffs['B'] C = opencg_surface._coeffs['C'] D = opencg_surface._coeffs['D'] openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) - elif opencg_surface._type == 'x-plane': + elif opencg_surface.type == 'x-plane': x0 = opencg_surface._coeffs['x0'] openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) - elif opencg_surface._type == 'y-plane': + elif opencg_surface.type == 'y-plane': y0 = opencg_surface._coeffs['y0'] openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) - elif opencg_surface._type == 'z-plane': + elif opencg_surface.type == 'z-plane': z0 = opencg_surface._coeffs['z0'] openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) - elif opencg_surface._type == 'x-cylinder': + elif opencg_surface.type == 'x-cylinder': y0 = opencg_surface._coeffs['y0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) - elif opencg_surface._type == 'y-cylinder': + elif opencg_surface.type == 'y-cylinder': x0 = opencg_surface._coeffs['x0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) - elif opencg_surface._type == 'z-cylinder': + elif opencg_surface.type == 'z-cylinder': x0 = opencg_surface._coeffs['x0'] y0 = opencg_surface._coeffs['y0'] R = opencg_surface._coeffs['R'] @@ -336,7 +336,7 @@ def get_openmc_surface(opencg_surface): else: msg = 'Unable to create an OpenMC Surface from an OpenCG ' \ 'Surface of type "{0}" since it is not a compatible ' \ - 'Surface type in OpenMC'.format(opencg_surface._type) + 'Surface type in OpenMC'.format(opencg_surface.type) raise ValueError(msg) # Add the OpenMC Surface to the global collection of all OpenMC Surfaces @@ -373,17 +373,17 @@ def get_compatible_opencg_surfaces(opencg_surface): raise ValueError(msg) global OPENMC_SURFACES - surface_id = opencg_surface._id + surface_id = opencg_surface.id # If this Surface was already created, use it if surface_id in OPENMC_SURFACES: return OPENMC_SURFACES[surface_id] # Create an OpenMC Surface to represent this OpenCG Surface - name = opencg_surface._name - boundary = opencg_surface._boundary_type + name = opencg_surface.name + boundary = opencg_surface.boundary_type - if opencg_surface._type == 'x-squareprism': + if opencg_surface.type == 'x-squareprism': y0 = opencg_surface._coeffs['y0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] @@ -395,7 +395,7 @@ def get_compatible_opencg_surfaces(opencg_surface): top = opencg.ZPlane(name=name, boundary=boundary, z0=z0+R) surfaces = [left, right, bottom, top] - elif opencg_surface._type == 'y-squareprism': + elif opencg_surface.type == 'y-squareprism': x0 = opencg_surface._coeffs['x0'] z0 = opencg_surface._coeffs['z0'] R = opencg_surface._coeffs['R'] @@ -407,7 +407,7 @@ def get_compatible_opencg_surfaces(opencg_surface): top = opencg.ZPlane(name=name, boundary=boundary, z0=z0+R) surfaces = [left, right, bottom, top] - elif opencg_surface._type == 'z-squareprism': + elif opencg_surface.type == 'z-squareprism': x0 = opencg_surface._coeffs['x0'] y0 = opencg_surface._coeffs['y0'] R = opencg_surface._coeffs['R'] @@ -422,7 +422,7 @@ def get_compatible_opencg_surfaces(opencg_surface): else: msg = 'Unable to create a compatible OpenMC Surface an OpenCG ' \ 'Surface of type "{0}" since it already a compatible ' \ - 'Surface type in OpenMC'.format(opencg_surface._type) + 'Surface type in OpenMC'.format(opencg_surface.type) raise ValueError(msg) # Add the OpenMC Surface(s) to the global collection of all OpenMC Surfaces @@ -455,32 +455,32 @@ def get_opencg_cell(openmc_cell): raise ValueError(msg) global OPENCG_CELLS - cell_id = openmc_cell._id + cell_id = openmc_cell.id # If this Cell was already created, use it if cell_id in OPENCG_CELLS: return OPENCG_CELLS[cell_id] # Create an OpenCG Cell to represent this OpenMC Cell - name = openmc_cell._name + name = openmc_cell.name opencg_cell = opencg.Cell(cell_id, name) - fill = openmc_cell._fill + fill = openmc_cell.fill - if (openmc_cell._type == 'normal'): + if (openmc_cell.type == 'normal'): opencg_cell.setFill(get_opencg_material(fill)) - elif (openmc_cell._type == 'fill'): + elif (openmc_cell.type == 'fill'): opencg_cell.setFill(get_opencg_universe(fill)) else: opencg_cell.setFill(get_opencg_lattice(fill)) - if openmc_cell._rotation is not None: - opencg_cell.setRotation(openmc_cell._rotation) + if openmc_cell.rotation is not None: + opencg_cell.setRotation(openmc_cell.rotation) - if openmc_cell._translation is not None: - opencg_cell.setTranslation(openmc_cell._translation) + if openmc_cell.translation is not None: + opencg_cell.setTranslation(openmc_cell.translation) - surfaces = openmc_cell._surfaces + surfaces = openmc_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -536,8 +536,8 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): compatible_cells = [] # SquarePrism Surfaces - if opencg_surface._type in ['x-squareprism', 'y-squareprism', - 'z-squareprism']: + if opencg_surface.type in ['x-squareprism', 'y-squareprism', + 'z-squareprism']: # Get the compatible Surfaces (XPlanes and YPlanes) compatible_surfaces = get_compatible_opencg_surfaces(opencg_surface) @@ -690,31 +690,31 @@ def get_openmc_cell(opencg_cell): raise ValueError(msg) global OPENMC_CELLS - cell_id = opencg_cell._id + cell_id = opencg_cell.id # If this Cell was already created, use it if cell_id in OPENMC_CELLS: return OPENMC_CELLS[cell_id] # Create an OpenCG Cell to represent this OpenMC Cell - name = opencg_cell._name + name = opencg_cell.name openmc_cell = openmc.Cell(cell_id, name) - fill = opencg_cell._fill + fill = opencg_cell.fill - if (opencg_cell._type == 'universe'): + if (opencg_cell.type == 'universe'): openmc_cell.fill = get_openmc_universe(fill) - elif (opencg_cell._type == 'lattice'): + elif (opencg_cell.type == 'lattice'): openmc_cell.fill = get_openmc_lattice(fill) else: openmc_cell.fill = get_openmc_material(fill) - if opencg_cell._rotation: - rotation = np.asarray(opencg_cell._rotation, dtype=np.int) + if opencg_cell.rotation: + rotation = np.asarray(opencg_cell.rotation, dtype=np.int) openmc_cell.rotation = rotation - if opencg_cell._translation: - translation = np.asarray(opencg_cell._translation, dtype=np.float64) + if opencg_cell.translation: + translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.setTranslation(translation) surfaces = opencg_cell._surfaces @@ -754,18 +754,18 @@ def get_opencg_universe(openmc_universe): raise ValueError(msg) global OPENCG_UNIVERSES - universe_id = openmc_universe._id + universe_id = openmc_universe.id # If this Universe was already created, use it if universe_id in OPENCG_UNIVERSES: return OPENCG_UNIVERSES[universe_id] # Create an OpenCG Universe to represent this OpenMC Universe - name = openmc_universe._name + name = openmc_universe.name opencg_universe = opencg.Universe(universe_id, name) # Convert all OpenMC Cells in this Universe to OpenCG Cells - openmc_cells = openmc_universe._cells + openmc_cells = openmc_universe.cells for cell_id, openmc_cell in openmc_cells.items(): opencg_cell = get_opencg_cell(openmc_cell) @@ -801,7 +801,7 @@ def get_openmc_universe(opencg_universe): raise ValueError(msg) global OPENMC_UNIVERSES - universe_id = opencg_universe._id + universe_id = opencg_universe.id # If this Universe was already created, use it if universe_id in OPENMC_UNIVERSES: @@ -811,7 +811,7 @@ def get_openmc_universe(opencg_universe): make_opencg_cells_compatible(opencg_universe) # Create an OpenMC Universe to represent this OpenCSg Universe - name = opencg_universe._name + name = opencg_universe.name openmc_universe = openmc.Universe(universe_id, name) # Convert all OpenCG Cells in this Universe to OpenMC Cells @@ -851,7 +851,7 @@ def get_opencg_lattice(openmc_lattice): raise ValueError(msg) global OPENCG_LATTICES - lattice_id = openmc_lattice._id + lattice_id = openmc_lattice.id # If this Lattice was already created, use it if lattice_id in OPENCG_LATTICES: @@ -888,7 +888,7 @@ def get_opencg_lattice(openmc_lattice): for z in range(dimension[2]): for y in range(dimension[1]): for x in range(dimension[0]): - universe_id = universes[x][dimension[1]-y-1][z]._id + universe_id = universes[x][dimension[1]-y-1][z].id universe_array[z][y][x] = unique_universes[universe_id] opencg_lattice = opencg.Lattice(lattice_id, name) @@ -931,23 +931,23 @@ def get_openmc_lattice(opencg_lattice): raise ValueError(msg) global OPENMC_LATTICES - lattice_id = opencg_lattice._id + lattice_id = opencg_lattice.id # If this Lattice was already created, use it if lattice_id in OPENMC_LATTICES: return OPENMC_LATTICES[lattice_id] - dimension = opencg_lattice._dimension - width = opencg_lattice._width - offset = opencg_lattice._offset - universes = opencg_lattice._universes + dimension = opencg_lattice.dimension + width = opencg_lattice.width + offset = opencg_lattice.offset + universes = opencg_lattice.universes # Initialize an empty array for the OpenMC nested Universes in this Lattice universe_array = np.ndarray(tuple(np.array(dimension)), dtype=openmc.Universe) # Create OpenMC Universes for each unique nested Universe in this Lattice - unique_universes = opencg_lattice.getUniqueUniverses() + unique_universes = opencg_lattice.get_unique_universes() for universe_id, universe in unique_universes.items(): unique_universes[universe_id] = get_openmc_universe(universe) @@ -956,7 +956,7 @@ def get_openmc_lattice(opencg_lattice): for z in range(dimension[2]): for y in range(dimension[1]): for x in range(dimension[0]): - universe_id = universes[z][y][x]._id + universe_id = universes[z][y][x].id universe_array[x][y][z] = unique_universes[universe_id] # Reverse y-dimension in array to match ordering in OpenCG @@ -1011,7 +1011,7 @@ def get_opencg_geometry(openmc_geometry): OPENMC_LATTICES.clear() OPENCG_LATTICES.clear() - openmc_root_universe = openmc_geometry._root_universe + openmc_root_universe = openmc_geometry.root_universe opencg_root_universe = get_opencg_universe(openmc_root_universe) opencg_geometry = opencg.Geometry() @@ -1043,11 +1043,11 @@ def get_openmc_geometry(opencg_geometry): # Deep copy the goemetry since it may be modified to make all Surfaces # compatible with OpenMC's specifications - opencg_geometry.assignAutoIds() + opencg_geometry.assign_auto_ids() opencg_geometry = copy.deepcopy(opencg_geometry) # Update Cell bounding boxes in Geometry - opencg_geometry.updateBoundingBoxes() + opencg_geometry.update_bounding_boxes() # Clear dictionaries and auto-generated ID OPENMC_SURFACES.clear() @@ -1060,14 +1060,14 @@ def get_openmc_geometry(opencg_geometry): OPENCG_LATTICES.clear() # Make the entire geometry "compatible" before assigning auto IDs - universes = opencg_geometry.getAllUniverses() + universes = opencg_geometry.get_all_universes() for universe_id, universe in universes.items(): if not isinstance(universe, opencg.Lattice): make_opencg_cells_compatible(universe) - opencg_geometry.assignAutoIds() + opencg_geometry.assign_auto_ids() - opencg_root_universe = opencg_geometry._root_universe + opencg_root_universe = opencg_geometry.root_universe openmc_root_universe = get_openmc_universe(opencg_root_universe) openmc_geometry = openmc.Geometry() diff --git a/openmc/surface.py b/openmc/surface.py index 653754d303..164bbd09bf 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -101,8 +101,11 @@ class Surface(object): @name.setter def name(self, name): - check_type('surface name', name, basestring) - self._name = name + if name is not None: + check_type('surface name', name, basestring) + self._name = name + else: + self._name = None @boundary_type.setter def boundary_type(self, boundary_type): diff --git a/openmc/tallies.py b/openmc/tallies.py index 20a6af3f29..a1206f012a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -373,8 +373,11 @@ class Tally(object): @name.setter def name(self, name): - check_type('tally name', name, basestring) - self._name = name + if name is not None: + check_type('tally name', name, basestring) + self._name = name + else: + self._name = None def add_filter(self, filter): """Add a filter to the tally diff --git a/openmc/universe.py b/openmc/universe.py index bab10f5df7..9516192802 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -117,8 +117,11 @@ class Cell(object): @name.setter def name(self, name): - cv.check_type('cell name', name, basestring) - self._name = name + if name is not None: + cv.check_type('cell name', name, basestring) + self._name = name + else: + self._name = None @fill.setter def fill(self, fill): @@ -438,8 +441,11 @@ class Universe(object): @name.setter def name(self, name): - cv.check_type('universe name', name, basestring) - self._name = name + if name is not None: + cv.check_type('universe name', name, basestring) + self._name = name + else: + self._name = None def add_cell(self, cell): """Add a cell to the universe. @@ -677,8 +683,11 @@ class Lattice(object): @name.setter def name(self, name): - cv.check_type('lattice name', name, basestring) - self._name = name + if name is not None: + cv.check_type('lattice name', name, basestring) + self._name = name + else: + self._name = None @outer.setter def outer(self, outer): From a491dde24853022514631ced51c1db053679319b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 17:01:52 -0400 Subject: [PATCH 2/7] Updated OpenCG compatibility module to use OpenCG property getters for surfaces, cells and coeffs --- openmc/opencg_compatible.py | 58 ++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 682ef0ecac..b41a621b40 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -297,40 +297,40 @@ def get_openmc_surface(opencg_surface): boundary = 'transmission' if opencg_surface.type == 'plane': - A = opencg_surface._coeffs['A'] - B = opencg_surface._coeffs['B'] - C = opencg_surface._coeffs['C'] - D = opencg_surface._coeffs['D'] + A = opencg_surface.coeffs['A'] + B = opencg_surface.coeffs['B'] + C = opencg_surface.coeffs['C'] + D = opencg_surface.coeffs['D'] openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) elif opencg_surface.type == 'x-plane': - x0 = opencg_surface._coeffs['x0'] + x0 = opencg_surface.coeffs['x0'] openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) elif opencg_surface.type == 'y-plane': - y0 = opencg_surface._coeffs['y0'] + y0 = opencg_surface.coeffs['y0'] openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) elif opencg_surface.type == 'z-plane': - z0 = opencg_surface._coeffs['z0'] + z0 = opencg_surface.coeffs['z0'] openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) elif opencg_surface.type == 'x-cylinder': - y0 = opencg_surface._coeffs['y0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + y0 = opencg_surface.coeffs['y0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) elif opencg_surface.type == 'y-cylinder': - x0 = opencg_surface._coeffs['x0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) elif opencg_surface.type == 'z-cylinder': - x0 = opencg_surface._coeffs['x0'] - y0 = opencg_surface._coeffs['y0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + y0 = opencg_surface.coeffs['y0'] + R = opencg_surface.coeffs['R'] openmc_surface = openmc.ZCylinder(surface_id, boundary, x0, y0, R, name) else: @@ -384,9 +384,9 @@ def get_compatible_opencg_surfaces(opencg_surface): boundary = opencg_surface.boundary_type if opencg_surface.type == 'x-squareprism': - y0 = opencg_surface._coeffs['y0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + y0 = opencg_surface.coeffs['y0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] # Create a list of the four planes we need left = opencg.YPlane(name=name, boundary=boundary, y0=y0-R) @@ -396,9 +396,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'y-squareprism': - x0 = opencg_surface._coeffs['x0'] - z0 = opencg_surface._coeffs['z0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + z0 = opencg_surface.coeffs['z0'] + R = opencg_surface.coeffs['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -408,9 +408,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'z-squareprism': - x0 = opencg_surface._coeffs['x0'] - y0 = opencg_surface._coeffs['y0'] - R = opencg_surface._coeffs['R'] + x0 = opencg_surface.coeffs['x0'] + y0 = opencg_surface.coeffs['y0'] + R = opencg_surface.coeffs['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -631,12 +631,12 @@ def make_opencg_cells_compatible(opencg_universe): raise ValueError(msg) # Check all OpenCG Cells in this Universe for compatibility with OpenMC - opencg_cells = opencg_universe._cells + opencg_cells = opencg_universe.cells for cell_id, opencg_cell in opencg_cells.items(): # Check each of the OpenCG Surfaces for OpenMC compatibility - surfaces = opencg_cell._surfaces + surfaces = opencg_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -717,7 +717,7 @@ def get_openmc_cell(opencg_cell): translation = np.asarray(opencg_cell.translation, dtype=np.float64) openmc_cell.setTranslation(translation) - surfaces = opencg_cell._surfaces + surfaces = opencg_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] @@ -815,7 +815,7 @@ def get_openmc_universe(opencg_universe): openmc_universe = openmc.Universe(universe_id, name) # Convert all OpenCG Cells in this Universe to OpenMC Cells - opencg_cells = opencg_universe._cells + opencg_cells = opencg_universe.cells for cell_id, opencg_cell in opencg_cells.items(): openmc_cell = get_openmc_cell(opencg_cell) From 147f2a162e7369f5559740f397a48a225e2cdf2a Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 2 Oct 2015 17:43:33 -0400 Subject: [PATCH 3/7] Updates to OpenCG compatibility module to reflect move to PEP8 compliance --- openmc/opencg_compatible.py | 42 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index b41a621b40..000801ca2a 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -467,25 +467,25 @@ def get_opencg_cell(openmc_cell): fill = openmc_cell.fill - if (openmc_cell.type == 'normal'): - opencg_cell.setFill(get_opencg_material(fill)) - elif (openmc_cell.type == 'fill'): - opencg_cell.setFill(get_opencg_universe(fill)) + if (openmc_cell.fill_type == 'material'): + opencg_cell.fill = get_opencg_material(fill) + elif (openmc_cell.fill_type == 'universe'): + opencg_cell.fill = get_opencg_universe(fill) else: - opencg_cell.setFill(get_opencg_lattice(fill)) + opencg_cell.fill = get_opencg_lattice(fill) if openmc_cell.rotation is not None: - opencg_cell.setRotation(openmc_cell.rotation) + opencg_cell.rotation = openmc_cell.rotation if openmc_cell.translation is not None: - opencg_cell.setTranslation(openmc_cell.translation) + opencg_cell.translation = openmc_cell.translation surfaces = openmc_cell.surfaces for surface_id in surfaces: surface = surfaces[surface_id][0] halfspace = surfaces[surface_id][1] - opencg_cell.addSurface(get_opencg_surface(surface), halfspace) + opencg_cell.add_surface(get_opencg_surface(surface), halfspace) # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell @@ -546,10 +546,10 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): # If Cell is inside SquarePrism, add "inside" of Surface halfspaces if halfspace == -1: - opencg_cell.addSurface(compatible_surfaces[0], +1) - opencg_cell.addSurface(compatible_surfaces[1], -1) - opencg_cell.addSurface(compatible_surfaces[2], +1) - opencg_cell.addSurface(compatible_surfaces[3], -1) + opencg_cell.add_surface(compatible_surfaces[0], +1) + opencg_cell.add_surface(compatible_surfaces[1], -1) + opencg_cell.add_surface(compatible_surfaces[2], +1) + opencg_cell.add_surface(compatible_surfaces[3], -1) compatible_cells.append(opencg_cell) # If Cell is outside SquarePrism, add "outside" of Surface halfspaces @@ -659,7 +659,7 @@ def make_opencg_cells_compatible(opencg_universe): opencg_universe.removeCell(opencg_cell) # Add the compatible OpenCG Cells to the Universe - opencg_universe.addCells(cells) + opencg_universe.add_cells(cells) # Make recursive call to look at the updated state of the # OpenCG Universe and return @@ -715,7 +715,7 @@ def get_openmc_cell(opencg_cell): if opencg_cell.translation: translation = np.asarray(opencg_cell.translation, dtype=np.float64) - openmc_cell.setTranslation(translation) + openmc_cell.translation = translation surfaces = opencg_cell.surfaces @@ -769,7 +769,7 @@ def get_opencg_universe(openmc_universe): for cell_id, openmc_cell in openmc_cells.items(): opencg_cell = get_opencg_cell(openmc_cell) - opencg_universe.addCell(opencg_cell) + opencg_universe.add_cell(opencg_cell) # Add the OpenMC Universe to the global collection of all OpenMC Universes OPENMC_UNIVERSES[universe_id] = openmc_universe @@ -892,14 +892,14 @@ def get_opencg_lattice(openmc_lattice): universe_array[z][y][x] = unique_universes[universe_id] opencg_lattice = opencg.Lattice(lattice_id, name) - opencg_lattice.setDimension(dimension) - opencg_lattice.setWidth(pitch) - opencg_lattice.setUniverses(universe_array) + opencg_lattice.dimension = dimension + opencg_lattice.width = pitch + opencg_lattice.universes = universe_array offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * np.array(dimension, dtype=np.float64))) / -2.0 - opencg_lattice.setOffset(offset) + opencg_lattice.offset = offset # Add the OpenMC Lattice to the global collection of all OpenMC Lattices OPENMC_LATTICES[lattice_id] = openmc_lattice @@ -1015,8 +1015,8 @@ def get_opencg_geometry(openmc_geometry): opencg_root_universe = get_opencg_universe(openmc_root_universe) opencg_geometry = opencg.Geometry() - opencg_geometry.setRootUniverse(opencg_root_universe) - opencg_geometry.initializeCellOffsets() + opencg_geometry.root_universe = opencg_root_universe + opencg_geometry.initialize_cell_offsets() return opencg_geometry From 221f026470c1c5d67ed0694d57b6ea9261200051 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:30:16 -0400 Subject: [PATCH 4/7] Now using property decorators for surface coeffs in OpenCG compatibility module --- docs/source/pythonapi/examples/geometry.xml | 38 ++++++++ .../pythonapi/examples/materials-xy.png | Bin 0 -> 1271 bytes docs/source/pythonapi/examples/materials.xml | 20 +++++ docs/source/pythonapi/examples/plots.xml | 8 ++ docs/source/pythonapi/examples/settings.xml | 21 +++++ docs/source/pythonapi/examples/tallies.xml | 23 +++++ .../tracks/128_angles_0.1_cm_spacing.data | Bin 0 -> 108911 bytes openmc/opencg_compatible.py | 82 +++++++++--------- 8 files changed, 151 insertions(+), 41 deletions(-) create mode 100644 docs/source/pythonapi/examples/geometry.xml create mode 100644 docs/source/pythonapi/examples/materials-xy.png create mode 100644 docs/source/pythonapi/examples/materials.xml create mode 100644 docs/source/pythonapi/examples/plots.xml create mode 100644 docs/source/pythonapi/examples/settings.xml create mode 100644 docs/source/pythonapi/examples/tallies.xml create mode 100644 docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml new file mode 100644 index 0000000000..8e9f1ef3d1 --- /dev/null +++ b/docs/source/pythonapi/examples/geometry.xml @@ -0,0 +1,38 @@ + + + + + + + + 1.26 1.26 + 17 17 + -10.71 -10.71 + +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 +10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 + + + + + + + + + + diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png new file mode 100644 index 0000000000000000000000000000000000000000..534f7e5ff7251fbc6984a811cb22d37ea2df8c4e GIT binary patch literal 1271 zcmZ{kZB&wH7{_ljJ7-pN={b=rqgImUR4U5_0<%G2Qy`;BX__zP>(rBUL`@$h)2v)( zSr(d2%W9rv%#}qY&6l*Y$jq?WFlFTn3L2<@JkLE^pY~xNuIqRI&$<5p>(hM|aoNm; z_Fviq02T(Y=)qQ+Kh_*uYo8MRR&T}JSpOh@0Hi19TO#eO+9oZSxdqfeTQ*`9E23G! zK>%bD0Lab%WX>H1;2;rz(Y*kW$^pQoR>-#dS!Wk;19=Px;Q>d-k=#>3^43xR{MnCz zQQtG^;HaGo%PKxgW$j9{^5dHYwmwRv0$}?(fbP$WQ;mzs$!g*k1=&SocU~+gF18PG z-{d98uMjc0k-pkSeq}S0d&)K`()QLC%GXraZRU9H=SeFb6s|b@pkiR+G^_rHw?jut z6dudrtySi?t^H_2_@{)Ng59fQG6;jtxVF{XCLOvKrc*nUmt4Z|l$=?HpyMd2e!23XuuQ0( zxY4o}2C<#at8N@SA1D*uV=VIaC?2a$8({d?VU-=e*}`@cnTolIpLHdW2+1+<^_%xq zlpG(QI7dzbCNr$wlbM-X_g*q;$lAUf5!dz)GHD0wa9k)=?;^}Qd|}$hxo)aqysF21 zedQBz*@uG0+UwO_@{M8XtfE)H-^9lGG%Cu!rdcD)DGCT-@1ZHRCh|L&K52_hjFirM ziVuHNyWTMrd3=TD-g}``RM?Q$V|kjeqvq8kL5#h2+3j4D6IoTFLiwFMNHJYjHv3h; z<*{a6wo;LSX%b!i?m_nHa2F3)%1(^hAC*u&DAxt2w5#X5=ZqN>go)i{SY7p*@TF-I zm=G{y@)n=qz#fZ|H*h>Ja9Tcr-93lZsSA_Li@h#k(e28wo?PkP%@@zRBb|)s7PPBN zpzN~73k&Tu^b4ez#)Q?v`dE{hZ&-(^*DczTTGu+nynR3@M)LQ=~(jF`>b-&;BButEeKO>CGmk zol(*lA9#=E)Pb~D$_o@o&5$BmQPn#+j27l%p|X_KCPHV zhS8Q~cj1y=Bvw^bG%7z-3kd@j+->B93i*kQG}$0wW%%3F#a-6l?kZsL1u>C=eWd6E z`>X)#iR(6ct|NL9H}KYNAQ3l^Hg5JL`jCjk^;$3VKZYMuV&eB_{J-J5hO^cS20#FV KO|RdwSM(2?bdD_m literal 0 HcmV?d00001 diff --git a/docs/source/pythonapi/examples/materials.xml b/docs/source/pythonapi/examples/materials.xml new file mode 100644 index 0000000000..42c2e50292 --- /dev/null +++ b/docs/source/pythonapi/examples/materials.xml @@ -0,0 +1,20 @@ + + + 71c + + + + + + + + + + + + + + + + + diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml new file mode 100644 index 0000000000..512070a33f --- /dev/null +++ b/docs/source/pythonapi/examples/plots.xml @@ -0,0 +1,8 @@ + + + + 0 0 0 + 21.5 21.5 + 250 250 + + diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml new file mode 100644 index 0000000000..26a23e9421 --- /dev/null +++ b/docs/source/pythonapi/examples/settings.xml @@ -0,0 +1,21 @@ + + + + 2500 + 20 + 5 + + + + -10.71 -10.71 -10 10.71 10.71 10.0 + + + + false + true + + + true + 200 + + diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml new file mode 100644 index 0000000000..61873a91d7 --- /dev/null +++ b/docs/source/pythonapi/examples/tallies.xml @@ -0,0 +1,23 @@ + + + + 17 17 + -10.71 -10.71 + 1.26 1.26 + + + + + fission nu-fission + + + + U-235 U-238 + scatter-y2 + + + + absorption scatter + + + diff --git a/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data b/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data new file mode 100644 index 0000000000000000000000000000000000000000..bbe6462a6c3b6855689590a0aaa161a18abec43c GIT binary patch literal 108911 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 lbx6l9p literal 0 HcmV?d00001 diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 000801ca2a..a6f90818f9 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -213,42 +213,42 @@ def get_opencg_surface(openmc_surface): opencg_surface = None if openmc_surface.type == 'plane': - A = openmc_surface.coeffs['A'] - B = openmc_surface.coeffs['B'] - C = openmc_surface.coeffs['C'] - D = openmc_surface.coeffs['D'] + A = openmc_surface.a + B = openmc_surface.b + C = openmc_surface.c + D = openmc_surface.d opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) elif openmc_surface.type == 'x-plane': - x0 = openmc_surface.coeffs['x0'] + x0 = openmc_surface.y0 opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) elif openmc_surface.type == 'y-plane': - y0 = openmc_surface.coeffs['y0'] + y0 = openmc_surface.y0 opencg_surface = opencg.YPlane(surface_id, name, boundary, y0) elif openmc_surface.type == 'z-plane': - z0 = openmc_surface.coeffs['z0'] + z0 = openmc_surface.z0 opencg_surface = opencg.ZPlane(surface_id, name, boundary, z0) elif openmc_surface.type == 'x-cylinder': - y0 = openmc_surface.coeffs['y0'] - z0 = openmc_surface.coeffs['z0'] - R = openmc_surface.coeffs['R'] + y0 = openmc_surface.y0 + z0 = openmc_surface.z0 + R = openmc_surface.r opencg_surface = opencg.XCylinder(surface_id, name, boundary, y0, z0, R) elif openmc_surface.type == 'y-cylinder': - x0 = openmc_surface.coeffs['x0'] - z0 = openmc_surface.coeffs['z0'] - R = openmc_surface.coeffs['R'] + x0 = openmc_surface.x0 + z0 = openmc_surface.z0 + R = openmc_surface.r opencg_surface = opencg.YCylinder(surface_id, name, boundary, x0, z0, R) elif openmc_surface.type == 'z-cylinder': - x0 = openmc_surface.coeffs['x0'] - y0 = openmc_surface.coeffs['y0'] - R = openmc_surface.coeffs['R'] + x0 = openmc_surface.x0 + y0 = openmc_surface.y0 + R = openmc_surface.r opencg_surface = opencg.ZCylinder(surface_id, name, boundary, x0, y0, R) @@ -297,40 +297,40 @@ def get_openmc_surface(opencg_surface): boundary = 'transmission' if opencg_surface.type == 'plane': - A = opencg_surface.coeffs['A'] - B = opencg_surface.coeffs['B'] - C = opencg_surface.coeffs['C'] - D = opencg_surface.coeffs['D'] + A = opencg_surface.a + B = opencg_surface.b + C = opencg_surface.c + D = opencg_surface.d openmc_surface = openmc.Plane(surface_id, boundary, A, B, C, D, name) elif opencg_surface.type == 'x-plane': - x0 = opencg_surface.coeffs['x0'] + x0 = opencg_surface.x0 openmc_surface = openmc.XPlane(surface_id, boundary, x0, name) elif opencg_surface.type == 'y-plane': - y0 = opencg_surface.coeffs['y0'] + y0 = opencg_surface.y0 openmc_surface = openmc.YPlane(surface_id, boundary, y0, name) elif opencg_surface.type == 'z-plane': - z0 = opencg_surface.coeffs['z0'] + z0 = opencg_surface.z0 openmc_surface = openmc.ZPlane(surface_id, boundary, z0, name) elif opencg_surface.type == 'x-cylinder': - y0 = opencg_surface.coeffs['y0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + y0 = opencg_surface.y0 + z0 = opencg_surface.z0 + R = opencg_surface.r openmc_surface = openmc.XCylinder(surface_id, boundary, y0, z0, R, name) elif opencg_surface.type == 'y-cylinder': - x0 = opencg_surface.coeffs['x0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0 + z0 = opencg_surface.z0 + R = opencg_surface.r openmc_surface = openmc.YCylinder(surface_id, boundary, x0, z0, R, name) elif opencg_surface.type == 'z-cylinder': - x0 = opencg_surface.coeffs['x0'] - y0 = opencg_surface.coeffs['y0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0 + y0 = opencg_surface.y0 + R = opencg_surface.r openmc_surface = openmc.ZCylinder(surface_id, boundary, x0, y0, R, name) else: @@ -384,9 +384,9 @@ def get_compatible_opencg_surfaces(opencg_surface): boundary = opencg_surface.boundary_type if opencg_surface.type == 'x-squareprism': - y0 = opencg_surface.coeffs['y0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + y0 = opencg_surface.y0 + z0 = opencg_surface.z0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.YPlane(name=name, boundary=boundary, y0=y0-R) @@ -396,9 +396,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'y-squareprism': - x0 = opencg_surface.coeffs['x0'] - z0 = opencg_surface.coeffs['z0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0 + z0 = opencg_surface.z0 + R = opencg_surface.r # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) @@ -408,9 +408,9 @@ def get_compatible_opencg_surfaces(opencg_surface): surfaces = [left, right, bottom, top] elif opencg_surface.type == 'z-squareprism': - x0 = opencg_surface.coeffs['x0'] - y0 = opencg_surface.coeffs['y0'] - R = opencg_surface.coeffs['R'] + x0 = opencg_surface.x0['x0'] + y0 = opencg_surface.y0['y0'] + R = opencg_surface.r['R'] # Create a list of the four planes we need left = opencg.XPlane(name=name, boundary=boundary, x0=x0-R) From 02d6b99d782d2e125bed15235ffe0870ef9cf9b8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:30:53 -0400 Subject: [PATCH 5/7] Removed accidental commit of Python API generated xml files --- docs/source/pythonapi/examples/geometry.xml | 38 ------------------ .../pythonapi/examples/materials-xy.png | Bin 1271 -> 0 bytes docs/source/pythonapi/examples/materials.xml | 20 --------- docs/source/pythonapi/examples/plots.xml | 8 ---- docs/source/pythonapi/examples/settings.xml | 21 ---------- docs/source/pythonapi/examples/tallies.xml | 23 ----------- .../tracks/128_angles_0.1_cm_spacing.data | Bin 108911 -> 0 bytes 7 files changed, 110 deletions(-) delete mode 100644 docs/source/pythonapi/examples/geometry.xml delete mode 100644 docs/source/pythonapi/examples/materials-xy.png delete mode 100644 docs/source/pythonapi/examples/materials.xml delete mode 100644 docs/source/pythonapi/examples/plots.xml delete mode 100644 docs/source/pythonapi/examples/settings.xml delete mode 100644 docs/source/pythonapi/examples/tallies.xml delete mode 100644 docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data diff --git a/docs/source/pythonapi/examples/geometry.xml b/docs/source/pythonapi/examples/geometry.xml deleted file mode 100644 index 8e9f1ef3d1..0000000000 --- a/docs/source/pythonapi/examples/geometry.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - 1.26 1.26 - 17 17 - -10.71 -10.71 - -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 -10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 - - - - - - - - - - diff --git a/docs/source/pythonapi/examples/materials-xy.png b/docs/source/pythonapi/examples/materials-xy.png deleted file mode 100644 index 534f7e5ff7251fbc6984a811cb22d37ea2df8c4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1271 zcmZ{kZB&wH7{_ljJ7-pN={b=rqgImUR4U5_0<%G2Qy`;BX__zP>(rBUL`@$h)2v)( zSr(d2%W9rv%#}qY&6l*Y$jq?WFlFTn3L2<@JkLE^pY~xNuIqRI&$<5p>(hM|aoNm; z_Fviq02T(Y=)qQ+Kh_*uYo8MRR&T}JSpOh@0Hi19TO#eO+9oZSxdqfeTQ*`9E23G! zK>%bD0Lab%WX>H1;2;rz(Y*kW$^pQoR>-#dS!Wk;19=Px;Q>d-k=#>3^43xR{MnCz zQQtG^;HaGo%PKxgW$j9{^5dHYwmwRv0$}?(fbP$WQ;mzs$!g*k1=&SocU~+gF18PG z-{d98uMjc0k-pkSeq}S0d&)K`()QLC%GXraZRU9H=SeFb6s|b@pkiR+G^_rHw?jut z6dudrtySi?t^H_2_@{)Ng59fQG6;jtxVF{XCLOvKrc*nUmt4Z|l$=?HpyMd2e!23XuuQ0( zxY4o}2C<#at8N@SA1D*uV=VIaC?2a$8({d?VU-=e*}`@cnTolIpLHdW2+1+<^_%xq zlpG(QI7dzbCNr$wlbM-X_g*q;$lAUf5!dz)GHD0wa9k)=?;^}Qd|}$hxo)aqysF21 zedQBz*@uG0+UwO_@{M8XtfE)H-^9lGG%Cu!rdcD)DGCT-@1ZHRCh|L&K52_hjFirM ziVuHNyWTMrd3=TD-g}``RM?Q$V|kjeqvq8kL5#h2+3j4D6IoTFLiwFMNHJYjHv3h; z<*{a6wo;LSX%b!i?m_nHa2F3)%1(^hAC*u&DAxt2w5#X5=ZqN>go)i{SY7p*@TF-I zm=G{y@)n=qz#fZ|H*h>Ja9Tcr-93lZsSA_Li@h#k(e28wo?PkP%@@zRBb|)s7PPBN zpzN~73k&Tu^b4ez#)Q?v`dE{hZ&-(^*DczTTGu+nynR3@M)LQ=~(jF`>b-&;BButEeKO>CGmk zol(*lA9#=E)Pb~D$_o@o&5$BmQPn#+j27l%p|X_KCPHV zhS8Q~cj1y=Bvw^bG%7z-3kd@j+->B93i*kQG}$0wW%%3F#a-6l?kZsL1u>C=eWd6E z`>X)#iR(6ct|NL9H}KYNAQ3l^Hg5JL`jCjk^;$3VKZYMuV&eB_{J-J5hO^cS20#FV KO|RdwSM(2?bdD_m diff --git a/docs/source/pythonapi/examples/materials.xml b/docs/source/pythonapi/examples/materials.xml deleted file mode 100644 index 42c2e50292..0000000000 --- a/docs/source/pythonapi/examples/materials.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - 71c - - - - - - - - - - - - - - - - - diff --git a/docs/source/pythonapi/examples/plots.xml b/docs/source/pythonapi/examples/plots.xml deleted file mode 100644 index 512070a33f..0000000000 --- a/docs/source/pythonapi/examples/plots.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - 0 0 0 - 21.5 21.5 - 250 250 - - diff --git a/docs/source/pythonapi/examples/settings.xml b/docs/source/pythonapi/examples/settings.xml deleted file mode 100644 index 26a23e9421..0000000000 --- a/docs/source/pythonapi/examples/settings.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 2500 - 20 - 5 - - - - -10.71 -10.71 -10 10.71 10.71 10.0 - - - - false - true - - - true - 200 - - diff --git a/docs/source/pythonapi/examples/tallies.xml b/docs/source/pythonapi/examples/tallies.xml deleted file mode 100644 index 61873a91d7..0000000000 --- a/docs/source/pythonapi/examples/tallies.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - 17 17 - -10.71 -10.71 - 1.26 1.26 - - - - - fission nu-fission - - - - U-235 U-238 - scatter-y2 - - - - absorption scatter - - - diff --git a/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data b/docs/source/pythonapi/examples/tracks/128_angles_0.1_cm_spacing.data deleted file mode 100644 index bbe6462a6c3b6855689590a0aaa161a18abec43c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108911 zcmd^od%RplnQcn~LQn~c3d+@EE8H;ot>xrj*6LB{#nijVu_ z`ntY&&PZkPlDnvjH(2Z3NGCV)XPB7%;<+^XKSYJcnNuTS^x(@peeB2)BL_`$ul+|ZI`^Y< z{ci^zvggS0pO|~${v&T6x#S}koj=e0(S7{(k$H2^yYyq1gkLZH)W!bWCmwbBai_lf zs1x=d`S3?Byl~_rAIj5nfKOcV;d9TM>k$X-kKf#P{2vYotSvcl-;_By=E8G7G_IUX zZ)QEuiTgd|E94|(q?sW{-jX2)kQqAhV;`D($+@l~#+55aGq)yE=!>Sxt0nN&B)IL}4JI!BbHtTBA4rg5Skx$OOWZv9nRNjl*=dwO0~ldrE;lMy7n6Xx-EH)`?vqu$^A?YKRb)}*SdeppVx)o{k#0}-@#|{`!X%0 z@43K>_hIqB!sW&PY~y~MRy2Pmx_AGxt^3(7{Jhe=`=9N@&kpY0|4b4;JGy`4=T+|C z^5@m=_aZ+M>;H{({k!BuK9Dcu6Z!UKKzUF;Usja6U7lVpe&l0V_3x^p^1shIFLCdU zHE%hs`TqPJA8fvV|L9Zw`^aHGJjK7))8C!x-%Eeq=KcP?_Ti_`_3w?vkDlE8{K6xf zf3M&7=jMB*@vf8n-$&-W@vocT-}tZ1_r@pBIidOcW4C1Kg!lOO@IBy=4$`d$9`GU` z$QSa7d^bWl8YovNC(4cY|6j}Rny6IT=j^ZD^T(;1((s<__4S!we(t)B=>wlS>e^F( z@PB=KHT#TvYs@%wQ?m2k{x3NW-v>U~I>G(-%QpCDTk!Zk@YCzp&;7%LYYFfBuX|M| z-rIRdF_GA7f3HbMD_V1MzKgEx)w}SCU@e6+Nfj{(bi=X^atr9J*2;9rk|94&?l##t@?-Wd%jX>^(>?#<1@$S z`kQ?}#&zu9&|}~+&T!xFNxvE2n*UDv?eT-uZ=XK&V;K4^_$mH<`xNXy)c+7)o%CDq zQ~!7LMfHR92mGD%TkwOb?3_WCXODSjM((fFhI z1%D^~7W_leZ_htS{r2hmANT4>zZswF_rA?>_b7b1MZb@mdtGJ1mH&}o&g%JZo;#|> zH>1GeJ%Juu_|IScw8C#n;TNI36O6wt{LOPa>p#Z35)XYYUH53@cjXyL4__?DcjY(}S?=lH94+`i@(cwD6<6;CJO}z6}1_jb$F+U;73c-#1pD zN#pCf`n(2>~_D6Y9{!kx@!B6>j zI9b^JQMJHL252$q)Uu^b7f&#(GTc2fU@9;CoAkk2-Ag=lZkp@?CCu z*M@Zo%7OetkH2}_xBmIAS1wJww*~&vl<)jJ_J8;1=1b#4c~S#ky=H#yKY<_l#e39$ z17BWs#P1_Nc#&V^KdX|CG0ul)u3F6$@omkxh0zy9O+D@RVI>o<+7 zCT)`Z`ty;6H{Boe4}R@0%|bv%r zp!bQv-`MGyJpZ15b4vPN`q>ut7ybE`y>ov+`L(}5-wpnf#P`5Y`3HYi-*KKDu8*#? z%1`yzL;X|xfnWOz^v)WAak`a=4H^iiKmkEwlw{+jxS`fz;iRg2eeWc~u4^cVan&$`SHq7EB)(tnlTh=U#j z@9%+)$3Fy~^53n02)tQ;$Zx2RMEi%w57Iw;`or`O!B73qWvgiarT&lj>f|4SpY+G^ zzbyVC_(^{~zxIbg_=n&hihl_Hq4MfE<50{+Go+ zeEA3IA3pu@_=mug{-S<6`G>%he;he!%?%eH@fg~r#XmND^q6C=d(%USZ<~<+#+`3m z9LJYaoAaGTEqILAE&TO2{8Hn=i}yJHFz}U|&)E|3A^*VPJ^F`%FW-CVGZBya)Bcl< z2bQD~AL6t2^Zn@lbNv^q@0Rn6@^&9zF30!!^Xga96)pUzFZ2)0FAVt64b5*#|8gG9FZAcN11@Og*Yg|9FAV;Xiyx->jlMqB z>G~DnQU7{=6Y3)|_$mKAl%MJk{JyRI3-O2Xu)$C5=ODU$JGDQ>5BT-`2L531Q~dfo z7mR=EKg^%cZ=k0ZzwEz`Uia@#{h#y${FvVy&3a7j5C5?A3+=T(>#>C={RBVidrF3n zIx5Q#{g?U;JnHMvEdOKTrGK>ZpTF~$#V+5NZurN&Zur_&qlsV77x+isR_^RS@C5^3 zKd8~!f4=zCDGT57g*6s`b)TnKIkUxw( zGJ~#v>CYSAKBd(k(4OGOxX0ix@AGWF{>qns>pgV+t2}Qr`IG*ci(r@PX@3Z_jfWv!& zc98g>kJXKf^YyVV>y=Y3A^&N-?LBu%f6$+gY_qC${(|}r?U`&1{$TN+w~p@rSFia4 z&0lKwu4zbq{ds-${MPvk+6(;4GycTjZzS)h^}XeFx6%BiK7R$@e^;NEW^UW6&)T2% z2;(q=zk2vhdHuQiuYY(q@~7I=Q^_A%K40-)t^9}=l>dRIU@W)FU-{?N9`L~7Jz19NM{3|lR{ZyT{*%>T>-sb3fy9ULN$G^g z>H1Z9#c8YM{G@u^hw}9ip?;AsyhneL=?8zSzcS6|Pp;alyI#fj|F1ij?*Hr0OHY10 z*GCl}kstnI@K?6~H1XF@nZWa(#c!hf|N8Ul*S56kJK`baCxO2h{N?A;e0`iNfBlYs zA%7{|a3Rfq^yech|F-k|3;ts8mzI2r{H=5i-~X?cpCW&2`TWtXt@W?{4gO;AS0&z+ zza{++{FHyRKjInne^|IqWAIb`^-%xRe&E;s2E8))DSkYE!T6*2Rs6|=OIdl$;wb1@DIhmJpUm5%cnmc{}Oo8U&L1@ z{}Oo8f8aa$m%x*Mxtm1(PEmq%5Z|YLZq}YlPTQFN=wpwa^!+It6TfFfD1Y^clYSQG zU(I3Mq%|%0Q~%+BRS%!K-olSu^mqCEWP87S!ri~o{4dPhIOpvzt+McyFYZkDe_YO5 zuOGg*$-mUX*U#AeM9lxIGJg0L-jmr){GEgk@l~6CMm~S^-0Jz(`t(=j^M_DBNEh$T z{Q&$tUDj{#uX1f}j(5oyeSWub)DQFV|Lm-N!Hf5#l9ewp`0Iy1_i(HqU%rCRUzRRE zwDtPp=^>sFUuS3SWAQhB`g`Ip`ut_-HOJ@WM_irO0y*wIBFT&f+aS zhV{nem+|BHi^dSlUWZfJn1j+LGKf#cNU)XANb%mN${f>r&6CR z|LNAh{JuvPzFYqic*=jb{w45Kf6eA{|3f{5_eA@b!1v@|9zRI`^63xLzXU(^e_y{Z zhkprv(mzLER6j|75f`2OOY%$oclf^XUis*TV_&5#AHbzYKhJ%1`q3U9*}7xU2>LVi>O)`0}Qy`TDr*y7Gb+JjR;_ zzVy(8`TC83hu`BpL4Pyw^@Df(O)P&lZ(ar*-oyN=RFZi3)0Io}@_T(Kxc+?P>fhz- zr<>J(@WbH6JMy0x{I&N#O7n}N>u+ll=j6{Xe=mz4@Zvr2FSYnf`+SDxS4Gz!mp}eo z>-q<82mMv ze;0p6%TM(Oe)Kn`CszAY`#Jui?N9Loe)LzRM;1TDuj4Nq|FZvp->2hWO3y5Q>c0+B zwEvf-et;kIJEe!j5C4+-1w7_&+4{i+u^-F$33$>^;L+cd9$NgQ-@v24g!UVYpZo)O z#CwRpvGC+yDqbV*u77&dU#;I`WBSc46HdAOs?CYtXEv0-QC@Ld)PEIk5x?@p4^BSo zosU}h`qs1a=WkTJMEu^(^=G3NzP4ma{``_^?}-1;(aV0l*Fj4xe0|re9*_BN>wnF4 zK=TP7##bXBc!;hKmRC$$D%XFMUvpFbxr&FFzige+{6yAo@W<*q#Pe0I+H03QbB9d7 z^qFnf%Jqf%^UAhYERE%B=Z|g?kgp$$zww@fNuMi!{v@scsD1UzwEkUxUOBs-`%^oA z%~9QsSLI*U(>zq-R@;;+o$_3xG2 z9;fvm`t$Nfx6A7f{qv#FAHaWi*1s%%!n^j@>38C%{DVJxA5B$%xA;e7{rUJSSpU?1 z;D0If#{-)I8OO^OKgEwPf5G^p_yvFHZ)x^?PaJQX{IdV_(Eq6aD*j~Grmn^DI`Id6 zA^mXtT3<+ikp2r<{U%D!D1G>!)IZ?SAG7uOaXfF~Nq>P4dY>r0vGAn-z^9=-ht7MVxlev5f3@-EeE!yM|B2DiUk!Za$zAgK%hOH% z6$#1_-oyI!(bT}#)=qgW>ho`!_`6&1L7y#rD|f zPa&QS{?gyir1g3AUEf3N?Kk@q0xjU0TmcB8E{Hd%yuP>dM z=O1ya{qfGw9}WJ>AOAx9MdxpX2S5B#^=GU8DgQqHRQWoVU)CS^v-i>T@#gLLxSyHD zPwm%3`&0aYAO4udL(~(CpW@f?>-g>%|FZvpAO5(N^~mC<{_E?%VE?a5{ZRbzx>5K$ z@k76*egO~vdy@6c!jpai5C04GAN!$<|G-cB4Ltg5wjMC*iODbh19rdG9C zxNc?fL%%Km%i`zm1lP^Rz>|K0AJ_5r3-_JIz>|Ih552&3!!hvWAHZWChk4r=_@4aF zpW})8>&5>Bp7P(V{|P+RU$_1z@YH_Y`k%n}kj_$W1oNDr+@sL#Gh#$>W}Ups_|yLeu{NC2A=L;w(~!?$&0(yzAQEHbpN!S|KUEa zfv5E=?ffs`6N&HT{&KtdVJIJ^4}a|E{quJ7L##WJ}oo{aMe?jP|GXCyu}9`W0$F=o8j8sQzk| zpVpuB5P!7(1^ie?rsroy`Dy)$FaLPfkAWY0r1XHw-^=r4@ScS9(iLYcId=UXPbaT)4H@!J z>o>7(RO8`a2ApN)kl|7z!d$A^70j{W25KmOt5t;sH~p+f%Y z`Mq}j7oICm4Lm(R*v|j3FNuMt=NDCfi{%b+c!zeSLma^@mtL$Ax_;41U_b#OJ@@^W*gVx%NlxPZq!2zr@iOeSVytU)KJp z{mJ0(>+{>%AF=NW^uge#{YzZ=$MyWW_Q%X0mL_BI4`Tlr?8Bq|$tXX?PY>}&@e6%~ z9{Kd#kR$F7Z1B_mCGN{b_dlWj3x4Ps_Eoa#Kj;hXZ{l;S_CF#0LHhoC{-ym(mJj}C z?SBHj)Ba`PNq@l~>Nh@jZIv(Zll}vbeN41}8T{lw-TK$-UEPewzXYE0->rWMJk?*f z{w44|`IpBJ(!YHA!}Kq~PyOFz>t*pT$v+JL68uB)FTp<)|C0Q}@GrqX6#o+ZL-8-q zKS=-b>5s?11fKL4{?p071fKLC_)h*M@Z?|Ew-V`u_i%noBR%%6r@pb_*54;@$jeXr zS7!6>*7G;9j>f>#{+ZZ!TJwi}l`VeSzZ3gjx4|a{Kkc8K&Aa1yL2-VvSGEp_@FBiv ze}7jkWA4wLmE%T?cVqfL5BreI{00B&>;A2QAH1n*Zz^Bl@9X}x+5OQ)kzd7&#oyQc zd)2uoE!Du*ZqstxjJb$mjdx%m7n%McJVc?{hLF5$NJajD;nkR>;Bat-Xedt zKYi>ER{00Ae>e7(59eMWKNdgj-|wow=>GrIe_5AC({S#E$shEE_V+jRh4csMLob6K zn(1Ty(|Z2NrZnJ_pvPn3Nq@ng>F8*ZU59*ZEIjEy@Yu&+#S67h$Upgy(zD2m_C|ca z(N&~{S9%oj+P?&z^53n02|U$bxBeyYJ^7c%57NJU`or`u!9NuL68uB)FTp<){}TK| z@h`zY6#o+ZL-8-cKNSD+{Dbr_pZ<9KOW;X=;Xj@HOW;ZWf$!vB0^gN?;T*T`oVVTT zEz6%tcFoIA=eM=-|l9 zBa!&vFMU1#PtVUjm7Uw2gm$&~`+EMNo}b}dlQH=Fdj6xHpW$4xG5Gs>{$Pe^UIY z@pf8j{^3TnhZX;Hey8Ivdj2Q%pHR*edKb=b9+Q6%=l^E>%hT+9xEPOA{@_2PU&z0! zhvw@`*}1W1{xScM=O+Un_!AWm7C-4X@Hj_WwWozA|7bUVLOv>Axcq;<@r6GmySdWA zf8SPK9QTiE=RY{V*}&8J+3oxX=Xe`0|ygdrH2) zldHCIou97#3FQjyZt?f^{CMq8`udqs{>HaYxi7|tD}Uvj2WWq)kw<3G{*C(c#_0C> z{%YEvRC`#`3()yg!!ye4l6Y{VTOUsd%vX%M#xMKjmNhlZpq6 zpX#rd`j_no9e~cLc(C}Z?>v5uZ2$7}SJVEXm50uw{X_NV6u(N(QWXyte|gR}`Tppx z{6+g;N%miq8}*>#f%tKK<$=|7K344(cfQtZ_m28W`h)aCT&1eLDgB_oq<;$E;vceq z!oLn`&OQ|4W9`Ujp(-sBo0@Hg&! zqwtTd6OyeHe%XS@by5p|{SA5kr`NBa`-cbDw&2lE4SeP1bMo___h{ySWeYyr2lKJS zz?bj6^qCmn)0+HCB3{)8;cwl5o z$AW)B2W0;V@lWmNzFM^XDSn)Ic>Rd{p+DevtNvT!_rtr<{-LE?eoFg?>i$uc{U@vc zjo?eO_+NtGEq?01uKY#&e^u%S;vW8#>CZ}&Kj<&%7x3_((0|9mlYT0E67***d_(Ft z@bDj1pHzRAe<;0;yz8=kJk!U&y>oTKXaAVI*;RDFm!^CtKfgoiWyHI$yVv|#2EKaD z{7q5+mEJ`>o`*K@%a7~Ei`}8pEq`TCa*v3Pinki@e|&czaT&5U;C444~w7buZQ}l_S62P z+QZ`4@uTCbQ~Xi5qeIe;9~=2!7IE&tFi#N&ma` z55Z6P9{4H$-TH^%ABuknejPtW0!(KLh3{4e?##PU;aV*hfjYz{vq(Bzuo$W zz<1>zZw~tiURqiog_?o>_e!i6})<}BzVmUr7&pCIo9G~mYtEKB6jr?jnoF156Pe?+$ zQ2xQc_XYX&7sp?{<5r%(&)9|L@A~ul`t^DJtMPEE>cir%zT+0Yzp&p;bpA*AOOJ1s zN9zMpgynNSkABisqt_+HM^cRR{fWz z?M(BNqSvnoul=Q28Kqi0Ki!Bw%D?-5U6rrVq5M@@f7)MEeOUFc+fTP|r}n4#vF9iG z^&_MF6u++gI=)LC;=e5WkM@_T+4a+?Lk2(fU&pWecc=beminQ_>uDAb`TRlh2mN>Y znd=wyJ9{5Z%X~eM+7EcCpTKALl|~bl9}_S2Tj_1Aw=9kuvp)U$+P+_W;`!t)?hoLf zacF-1NbA2!FR}4?`L+J5^avmPxwiS3^-+I)KGpNR)rt4!_ZO5Nw&=6WAM|;rH_-K$ zqR%f^ufJe*%%9T3bc(vZZ}3-_F3<1Z`tlXrKcI2W{kcACf7m~}-XHbR;4iOzhV-%M z{sEP1m*)EH^Y34XQ?1Vif93p{<$nHP64&!!*lHuFnQP;obL(@>Bk`KdAgr ze24hc^;fk1sr|G+9Fnzv?B_=LDSmu?6^uWMU+oWCpACNMKaRd=|0~P>tNlUiv*gG1 z1*spt{7PR)f0W*)M=AZ5>F4^H>mT}s=kYI<9>qtF&-GX7ZEV*pwOqg7>i%HimENW* zy~xk_JpbM5x5p1szkT|{)NjF0@$cKAVE>{1*R6gFe(L{@zNmg^{qaTUsNaI0^v^+y z>L=;1(#y1&88N;_{}TL!?}4B4->rTNeqDb>>z~@MTm2UN6hFSc3dSGBZ@2m__=lq3 zo_~<~?bFZoGuOXv^_%gzek;9)ey6_ON~K3+ZzxDVsn}5Xhj#U0$^jnQr)1%e(Us=9fKXd&< z9AbJ)aQonur!_;rVPx0^DwP63D z{@1O33;v<#x8NU&ehdDg=(ph4{#VpLsr|auZ^2LT(?k4G{C2C~f`2Ib?fD0(-#-0U z_{wz8L(Did*S~J{oAI6XdrG+fS-<9e^~1mUmt=|~2EV+1uJs%9fpWP2Y2oGdd#&Gk z{BGgp{R2I|4);If_)g-X&+`6-D^}6_A9VjjkFWLk-r|?{ZybNo`#*I5Nb9p6-y8gN z|H|H~8uPrQ;vh{ZBo<_I2Uc z9iv|w{FHz9<)Y=M`=45$_4wZ4*X>ud{V9I5KF?D3R}6lNUswL3@lW?Z_4rzk?+t$H zzmC6X|EK$(di<@&_mV%?&sP1;;$^gD{BGf;ej?6r|5K0OExgq4cH{T#Il*=5dlr3i z>L2cTA$hy2sE~hJKhsYC-Phe~;Vc7B>vy#N!#}oU>;Dr2PwOYO{%ik`c=)qi|LQWS z*T>TOS*`C!sOv*A{opUOe%Ga6bp0=_|I+$?P_uvK_ty=6T7TyFi>_bO>)%`wxxT+$ ztuHY6`?`Ko>wD&}xxX0vwEoa#eO&7&wZ4b@w{d)7@b`87q}KOlV~G974gS8apVayu z;xU2l82mbZipC$suh#d_AIIXS{^RPaX#b=BtMxtTjmaPMh4jPmYkjfS-zQjqul+;T zZ_r=TKeR&@7p0QE{$t=te}Tt(b?qMpp7g(4|JcK2a6JAY@Ra{<{X^iX{<`%Kj~}Fe z`1FVAAA+CypUYO!{;T`HOQN%X2>zk?hu|NIe+d4e_=n&hihl@x9Y00mkK(sm{}B8` z@ej{GNdNHZkHb=tp-_CHhmwWVQy)v@^d zx_=(_!9rYx{Z+@}r~T)A`St#IMfT5A`}MV)e_*tKU-!?``%CKc9}NCM?4OsQ{=@#N z_}z*>ik}|hkK$MDSD9j58uDZDQ~&9q|55)14|HyMGa#0m<;V3AsUMDC>kH`*(uaTO z{V8Sp2K^=dQ~2lu_`888{l)jNf03$hs$Wb0+xbV>&o#aFxzDcLao&F=Zu>y^2kqaA zdJXwNzfMoe_TRSfw0~?n|8R8fRi9<>)BfM>{NsOw{l5)7?Vqdt0p<8W*#BGNgFX*p z|L<6Dmu35ZLDNv02D)j#du?aE(t{z7=|4$r^&hk+ z=|{kmegd!d{~ilZ`VG9=|9dPv`A0kd$#lJuK6m1>E3Z7hRG#Wehx~u`)py0`bKCh( zmakC@Pv>W}^Pfx?Z@2Jten&h13HZdwKb@b{&VMpp93?!)C&ztgG?w30OE>5Lp+Cp> zP`{Ku=08tYz`1^W(lJ=J{K14fM{Czz?N&8DU z|8Fe*L7bnI1f57RPKIvC{t@DD5a%aF{t%C2m46WDC&lwjRe!MBpZbsM-$nbMb^c!{ z|0wDo^+EhWUwS$JF9~|ra=xT&U(7#@^Z$TP^!&-dll~%(pqH2j;qL~X^dH}Y9;)#O z)sN*rO3x5isrIjZ#_3-IPx0fqxMS0)6{B(Z%Y5#D*s)tWqA8{c+X*f^b!qfTj zFU{OI=j|`8YQb;6=7x)pm~@|or}OJiZSpT|!Mp6bS8bM&|N0r5pNR9PlbiTETkw-J z{zT$KeATDFiuNCD*HPc^1=?DL69Q8w*e-++8r#3gwUnpM! zUcA3MYhR1MborsY|5L%|FYAXt_i(J=)3f%8{HJlenf$Lgp2}bJ`M<_bf1mS*_=@~l zyu^65_{*=mJ>P%JwO`Ta=NsSsQ9eHpe34(pyTwoV9{4H$p}r%3Xpc0+fypoH&+!+n z|B`G!@IX&ybAPk=DSmwaDHwkgzu<=+`SiRl;P0}3WBw`okNa}b{zv^6JXwFgFFh+O zKiY%JAM~ZB^+WAnMf!vEo5gbfQ~iz75B^2^2Yk@mMD-U7Px=ddsNY1zyM-tH2mW0_ zk5s%`c=Dfa{cAs0H=+E5@7BKrp7O8yGx}Ak{Y&7f{<`%qfv5KC*1tS{kpAV8((k?T zwG$Ry{fhGbdHE|>{B~g+U$^tG83+5*>&Fin-{OZ80{w@C6#5wu-Uq0^z*WcFO|7bqH(Efya@Uv$ZKNf%a}`w zyc(~j+Z;mIGtByz`FH$9%TM(O{efQS`JGjM*?x|{X!}$AfWH~;PH)2e2K~?~KgF-( zFC71}|A0Tc@3SoIyO{3}ZIqw-ucI&8|4Bc5le>CDkdD0od{|x@x zk}3KA^e>HG_UpY4iqG@MbS5{~5iKzJcfIQInE$hy>kQ{d9QbEv_(bxD@m2XXH|5v& zT(y)}Oj|0?KNL&9z<+j~{HgNiPty5|wXc4e&hOTrH{Nq_uJ71a1m(v2&A}fH z{*lu^Nd8p2>>fJbWMt2y==??fd427q+@Drv@fpj18^^m<|K*Qvm*?Nre`N-rA78oc zaXMc`e_q{Ta?YP-e3AcN?k^TU;d|hx{D=BZ;7_|Z<2v>?i=XPx$6vwvr}hIs{OL*V zuNFVWk1v10_^ZhH1wZ_08uxdLpZbq4f5HAo{TKZ3r;9Uw!~^jMeIfmD{90c~e^mO( z_N$tDXr>SUlllid{A>R#KE}e6{sIsGTFw29$_M^d{oj-3{OdQTEPTrs zp4yOp`l`2&{`{lcln-H|O)WcK(I^Gz@&@$zAgKM^^sWpVCkt>2I6-D=hxn z+9{7keQ)PqPdD**TlmU{cFpH+?flCX*S%_Y82PWB{nn=;DAGUHDq9{zCj{rUN} zj--PZ|FTi@$W!v*eHUUEf3Je^u6hj?VwmpO^lA z=89PUcK-BO*gwiBf8!JXk>}r)zq0$+>HM#eS+9OvmS2Bf`^wR|zi59#{QNqLU#tA} zr89H9um8C_lRuWeF^Bv~e_mhpr~LeA)!)+aJL1^lul(^ZIo=1^Uf-wliAOHq?bovW z`g6iVKhR%;evHLW`R}Ftvi`uI-TqjY2K^h0pW3g7_NVv(e{ocWL}H;W~+d zr}lHja<90aDwZGDISf4cAI43Z|FUqMLgIt}^)>zxcbb2fa2>d_ z;P0#cVce(rH-_sd2LC|xAN>XSSRAff8vFzCKU{~|oXvX?$5#FK)&E0zlk9yoU7gMQ z$Kvnn_y_zL2REAKUojScU&nvo$2j`YFb~Avt@fAmHzz(t=YOOh;K97FDQ9lq3H)91 zkL7=u_dT2CKeXp2il2Zd{R9u@ea~d|KNg15$$@juTG{kG?c=(Cj{C}* ze{z@~8vK1-KY;tvntyt@Pj2uJWc`GmpFI}lhX(&Z){kI*hI+vK(BP-_C$9bV`j|rN zX98b{@6q(1!n$ny-QcJ7CqDiPu3w?{0}tkBdxdpv_`AVR>rZ_73$9G^|p{^Y95z2?u7 z{K234y8gJGKmARX|HR<$>-y_<{#428-{Pm|2V5ofW&JtgHN<_oUA7M2;x7+k{k?t; z=dYXPUvKf#^8>E@MepAc9{pTD$Me4IISh-Ro*!`hMV~*Q`U5|n1JeFz#2-CB&_nxE z{D2?N5$&t|(ctgv^EcpkG=T%D*F5Z=?D1n+`+EOA0G^N34|D&W)>qc%ol4Ii=+DjlH?%*6=hUq7_x1VhP+mNj6x%;Mr)Tl^_4#%1 z!=F(9@JFNmss4JXe`-JQ!=H}HZup}ftn$wQ(EcVq&uae@(jTM`|MK6L=U2=2h5yO@pMZydVc#eG-N2Ln z;(PEfrFYc6fuHmrc=(snD+^El)2)BabhR=b{}Oo0f4BZ6@Kk@z=5qfF^?2A=ls4ERLjan6;2r~Q+&>yM)?c$~i`@gcqn?az&UL3RG>;hYbde( z?B9y^L_ToNhrvIP{cE%9%#X$R!Z{xXe_!|S4dqSrKHWIy!{G1h{>9+e`+Q#+&IvL2 z`?`NK__O;Xi(>sB-5e-CmKgkf-M;Bz}Ke@koAVdTCu=r{J zekXfH_y4E<3;s-J7A2XkM7<>bpfA-T=ZheHoO6+#Z+E*{KFoit{r_=J#gk24x;;U< zGCtsc7cbcupP$9|LjO(<4EM$HcLPuQkMCjMf2EgHKY^e8r(6Ge$2k2<;3@yz`j^1> zqApOgyKTQ7;{6q0C!9NuL68uB)FTp<){}TK|@h`zY6#o+ZL-8-qKS=-b z>5s?11fKL4{?p071fKLC_)h*M@Z?`O_b#LZ-%c@Jf8XpqUqA29+m;W_%TMRG;oLfn z$9UVo)A?~O+2%{*aZZ+jr}OJ@Zk@*CoGSxQ=jY+vI*rf95sOlZ5B^de#QA@yZ{%ZZ zn4ekv=dF7*j(=R`6+QpcJpT~w1^#RtcVlAk_x1e8z}GTA+M_v+TV(O~_54fl>-kZb zzgzrtey6MdqU$#Z4}LvA3g>iN{Cz$D6#ROA1U)j^pU&@e9}zxj0R|G;DZhGHFe|e-plk_Evgo@soZ75C2hmYT?O0wC;rT(EjPH_y2Ov4qw}@{7zRY`0v}w zi(~miyP>|~JFfp3csf5D?G9eNhx)Ym>HKcg8*q64d9y*66CUG}Ud|WS{*bNjUqtES z{?nXo^8J}zwKeX!^G@0y>n|^?mir^=&&NDJ9pwxDVDb0${P@7v;t#hs!^1xs4^wLgUMjm1xRSN@{>lz)_8`vcBtwCZ2hUoZ79+fVUFe?Y%8`0J;faDS{n zU;gK>ru{=J51mK*hw9HMe!;JG0(xigQ~z=Nx_>n~^uMy~zu<>I9F|=-h0am?2Yso3 z>3~OM`D?dKx=;51s?;B(5C2elO6dpvCH(^)?UC*Kz6kAP;YojiM|~n4{9V?srT^jk zsE_!**Vku$`MK*hre~**JoSUSwksdz8Y18ucfPT+e;m1WLb7$jFHQXQH{|-N<09lc zonF6w?jIgpYvC(5pR*;lk1B7>{~pc!ue9*xdoO(^;!#g1FZic5`Iitr=wt2Y`{nx= zyJ{)A{;O7qs%v2*VM0| zmr0oSBaSRQ=_mM6-?(mozsvpy{g?WU@9i1tEBGtw(c&ln2>WdyzwsS<{Fx2=UhtVy zURgfeRdnDlP5BO=|KVdGQdx%Vf7 zzkKeAw7+rvi67DYrSZM4A7^h}c2DZs1A(yY-J*E?4964}qurck3Sl-;;lM z{2=|qr$0>p5d75tT(*k#U+VveqfY)I_(^{pe^LD+{R4j|{}BA7zn=f)@DIU16#o$X zRDV6xKeZp~zmtCmeu|$S;*a8&`P=)4;2(;Ac>Y29hfjYz{vq(Bzo_3%{vq(>9~nNb z=ZoWijOQ19^02pj;McD#ACc$3ar4~#{08h>5%Ll7<#0X6!hini*85N3Lpm65Tlkyj zKHD-r)$;@Box}%yua>T(``;t!;fv+`pgiZ?#d3V!^7-tY^7FA!|Hv=$54|(^>+9F& z_2;U!ddIDF{zqxXE_D8f{=B^R1^M+K@T0uo$9UP`Z#=(yKEHAN<^67=^FPX8dVI4i zzy7@Xj$2yqFQB~Ocj>xU?GA&#c4Ile{^q_^zxEA0KUsYy&kxk+)n%8r&QDNY@Q3+X zV(^!y?VQgqd?pL-e@=MRzb~zSfgke|gP-#6AVteh^#^{f?;#$n@>Bace%-#E+MnWw z`Ez~8c-kmG#joSn@!cu@ssDgq&kryjxApc{Qy788-7or$C5wjzthiF z{X%}jzFg2zYCqsD{RH1z)cR$cpY+F7K_0irKlJ!LZ@VO|e}4P&k?uR-pK)k@{Rrj9 z_ko8V+xXV<^UFKE zA;12^^^;%Uhh7@|jdSiNeJ=X^Wp(ND{Qfcc!H4>VUK;$BYnQS<7u-Lfy!M$~U%?MP z@cWqa{$TJ|U!0ob-It0!e_1(yW~)Cm>D>Ro54|+_3Eu-hSbJNlyfLHYy!PWmnQ zN&g)G%c9?ce<=Db_^JMSsDEld)PLq5?e$ymQ~WsoqVY%Z3;s^}E%=9`-=2Sv`t8%t z^|Mv~I_Wp#bN%&s-rN10@!ofzIda6vw2{L`!aon1=3egCV~#uF1ouhv*U~obt3Q6= z(eo~zaBq6iHx8Mz;H#_CogKdGB&K)&)q|P^F8{-K=im0}pQRJ`J%68LKmKU?+9GTR lbx6l9p From d193a1eb0b44c5430ea709a9133e69e3d6fa40c1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:33:28 -0400 Subject: [PATCH 6/7] Removed Cel.fill property in place of Cell.fill_type --- openmc/universe.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openmc/universe.py b/openmc/universe.py index 9516192802..ef89780e1f 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -85,8 +85,15 @@ class Cell(object): return self._fill @property - def type(self): - return self._fill + def fill_type(self): + if isinstance(self.fill, openmc.Material): + return 'material' + elif isinstance(self.fill, openmc.Universe): + return 'universe' + elif isinstance(self.fill, openmc.Lattice): + return 'lattice' + else: + return None @property def surfaces(self): From e7cba5b22c39834869290e1c88da8c0e085485be Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 3 Oct 2015 14:54:46 -0400 Subject: [PATCH 7/7] Fixed minor issues with OpenCG surface coefficient properties in compatibility module --- openmc/opencg_compatible.py | 2 +- openmc/surface.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index a6f90818f9..1cdf8e8756 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -220,7 +220,7 @@ def get_opencg_surface(openmc_surface): opencg_surface = opencg.Plane(surface_id, name, boundary, A, B, C, D) elif openmc_surface.type == 'x-plane': - x0 = openmc_surface.y0 + x0 = openmc_surface.x0 opencg_surface = opencg.XPlane(surface_id, name, boundary, x0) elif openmc_surface.type == 'y-plane': diff --git a/openmc/surface.py b/openmc/surface.py index 164bbd09bf..063787ce34 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -275,7 +275,7 @@ class XPlane(Plane): @property def x0(self): - return self.coeff['x0'] + return self.coeffs['x0'] @x0.setter def x0(self, x0):