mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-29 06:35:48 -04:00
Changes in geometry.py from PullRequest Inc. review
This commit is contained in:
parent
a5605ea3a1
commit
3e995e0df6
1 changed files with 21 additions and 72 deletions
|
|
@ -410,6 +410,23 @@ class Geometry:
|
|||
for keep, *redundant in tally.values()
|
||||
for replace in redundant}
|
||||
|
||||
def _get_domains_by_name(self, name, case_sensitive, matching, domain_type):
|
||||
if not case_sensitive:
|
||||
name = name.lower()
|
||||
|
||||
domains = []
|
||||
|
||||
func = getattr(self, 'get_all_{}s'.format(domain_type))
|
||||
for domain in func().values():
|
||||
domain_name = domain.name if case_sensitive else domain.name.lower()
|
||||
if domain_name == name:
|
||||
domains.append(domain)
|
||||
elif not matching and name in domain_name:
|
||||
domains.append(domain)
|
||||
|
||||
domains.sort(key=lambda x: x.id)
|
||||
return domains
|
||||
|
||||
def get_materials_by_name(self, name, case_sensitive=False, matching=False):
|
||||
"""Return a list of materials with matching names.
|
||||
|
||||
|
|
@ -429,24 +446,7 @@ class Geometry:
|
|||
Materials matching the queried name
|
||||
|
||||
"""
|
||||
|
||||
if not case_sensitive:
|
||||
name = name.lower()
|
||||
|
||||
all_materials = self.get_all_materials().values()
|
||||
materials = set()
|
||||
|
||||
for material in all_materials:
|
||||
material_name = material.name
|
||||
if not case_sensitive:
|
||||
material_name = material_name.lower()
|
||||
|
||||
if material_name == name:
|
||||
materials.add(material)
|
||||
elif not matching and name in material_name:
|
||||
materials.add(material)
|
||||
|
||||
return sorted(materials, key=lambda x: x.id)
|
||||
return self._get_domains_by_name(name, case_sensitive, matching, 'material')
|
||||
|
||||
def get_cells_by_name(self, name, case_sensitive=False, matching=False):
|
||||
"""Return a list of cells with matching names.
|
||||
|
|
@ -467,24 +467,7 @@ class Geometry:
|
|||
Cells matching the queried name
|
||||
|
||||
"""
|
||||
|
||||
if not case_sensitive:
|
||||
name = name.lower()
|
||||
|
||||
all_cells = self.get_all_cells().values()
|
||||
cells = set()
|
||||
|
||||
for cell in all_cells:
|
||||
cell_name = cell.name
|
||||
if not case_sensitive:
|
||||
cell_name = cell_name.lower()
|
||||
|
||||
if cell_name == name:
|
||||
cells.add(cell)
|
||||
elif not matching and name in cell_name:
|
||||
cells.add(cell)
|
||||
|
||||
return sorted(cells, key=lambda x: x.id)
|
||||
return self._get_domains_by_name(name, case_sensitive, matching, 'cell')
|
||||
|
||||
def get_cells_by_fill_name(self, name, case_sensitive=False, matching=False):
|
||||
"""Return a list of cells with fills with matching names.
|
||||
|
|
@ -550,24 +533,7 @@ class Geometry:
|
|||
Universes matching the queried name
|
||||
|
||||
"""
|
||||
|
||||
if not case_sensitive:
|
||||
name = name.lower()
|
||||
|
||||
all_universes = self.get_all_universes().values()
|
||||
universes = set()
|
||||
|
||||
for universe in all_universes:
|
||||
universe_name = universe.name
|
||||
if not case_sensitive:
|
||||
universe_name = universe_name.lower()
|
||||
|
||||
if universe_name == name:
|
||||
universes.add(universe)
|
||||
elif not matching and name in universe_name:
|
||||
universes.add(universe)
|
||||
|
||||
return sorted(universes, key=lambda x: x.id)
|
||||
return self._get_domains_by_name(name, case_sensitive, matching, 'universe')
|
||||
|
||||
def get_lattices_by_name(self, name, case_sensitive=False, matching=False):
|
||||
"""Return a list of lattices with matching names.
|
||||
|
|
@ -588,24 +554,7 @@ class Geometry:
|
|||
Lattices matching the queried name
|
||||
|
||||
"""
|
||||
|
||||
if not case_sensitive:
|
||||
name = name.lower()
|
||||
|
||||
all_lattices = self.get_all_lattices().values()
|
||||
lattices = set()
|
||||
|
||||
for lattice in all_lattices:
|
||||
lattice_name = lattice.name
|
||||
if not case_sensitive:
|
||||
lattice_name = lattice_name.lower()
|
||||
|
||||
if lattice_name == name:
|
||||
lattices.add(lattice)
|
||||
elif not matching and name in lattice_name:
|
||||
lattices.add(lattice)
|
||||
|
||||
return sorted(lattices, key=lambda x: x.id)
|
||||
return self._get_domains_by_name(name, case_sensitive, matching, 'lattice')
|
||||
|
||||
def remove_redundant_surfaces(self):
|
||||
"""Remove redundant surfaces from the geometry"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue