openmc.Geometry

class openmc.Geometry(root=None)[source]

Geometry representing a collection of surfaces, cells, and universes.

Parameters

root (openmc.UniverseBase or Iterable of openmc.Cell, optional) – Root universe which contains all others, or an iterable of cells that should be used to create a root universe.

Variables
  • root_universe (openmc.UniverseBase) – Root universe which contains all others

  • bounding_box (2-tuple of numpy.array) – Lower-left and upper-right coordinates of an axis-aligned bounding box of the universe.

  • merge_surfaces (bool) – Whether to remove redundant surfaces when the geometry is exported.

  • surface_precision (int) – Number of decimal places to round to for comparing the coefficients of surfaces for considering them topologically equivalent.

add_volume_information(volume_calc)[source]

Add volume information from a stochastic volume calculation.

Parameters

volume_calc (openmc.VolumeCalculation) – Results from a stochastic volume calculation

clone()[source]

Create a copy of this geometry with new unique IDs for all of its enclosed materials, surfaces, cells, universes and lattices.

determine_paths(instances_only=False)[source]

Determine paths through CSG tree for cells and materials.

This method recursively traverses the CSG tree to determine each unique path that reaches every cell and material. The paths are stored in the Cell.paths and Material.paths attributes.

Parameters

instances_only (bool, optional) – If true, this method will only determine the number of instances of each cell and material.

export_to_xml(path='geometry.xml', remove_surfs=False)[source]

Export geometry to an XML file.

Parameters
  • path (str) – Path to file to write. Defaults to ‘geometry.xml’.

  • remove_surfs (bool) –

    Whether or not to remove redundant surfaces from the geometry when exporting

    New in version 0.12.

find(point)[source]

Find cells/universes/lattices which contain a given point

Parameters

point (3-tuple of float) – Cartesian coordinates of the point

Returns

Sequence of universes, cells, and lattices which are traversed to find the given point

Return type

list

classmethod from_xml(path='geometry.xml', materials=None)[source]

Generate geometry from XML file

Parameters
  • path (str, optional) – Path to geometry XML file

  • materials (openmc.Materials or None) – Materials used to assign to cells. If None, an attempt is made to generate it from the materials.xml file.

Returns

Geometry object

Return type

openmc.Geometry

get_all_cells()[source]

Return all cells in the geometry.

Returns

Dictionary mapping cell IDs to openmc.Cell instances

Return type

collections.OrderedDict

get_all_lattices()[source]

Return all lattices defined

Returns

Dictionary mapping lattice IDs to openmc.Lattice instances

Return type

collections.OrderedDict

get_all_material_cells()[source]

Return all cells filled by a material

Returns

Dictionary mapping cell IDs to openmc.Cell instances that are filled with materials or distributed materials.

Return type

collections.OrderedDict

get_all_material_universes()[source]

Return all universes having at least one material-filled cell.

This method can be used to find universes that have at least one cell that is filled with a material or is void.

Returns

Dictionary mapping universe IDs to openmc.Universe instances with at least one material-filled cell

Return type

collections.OrderedDict

get_all_materials()[source]

Return all materials within the geometry.

Returns

Dictionary mapping material IDs to openmc.Material instances

Return type

collections.OrderedDict

get_all_surfaces()[source]

Return all surfaces used in the geometry

Returns

Dictionary mapping surface IDs to openmc.Surface instances

Return type

collections.OrderedDict

get_all_universes()[source]

Return all universes in the geometry.

Returns

Dictionary mapping universe IDs to openmc.Universe instances

Return type

collections.OrderedDict

get_cells_by_fill_name(name, case_sensitive=False, matching=False)[source]

Return a list of cells with fills with matching names.

Parameters
  • name (str) – The name to match

  • case_sensitive (bool) – Whether to distinguish upper and lower case letters in each cell’s name (default is False)

  • matching (bool) – Whether the names must match completely (default is False)

Returns

Cells with fills matching the queried name

Return type

list of openmc.Cell

get_cells_by_name(name, case_sensitive=False, matching=False)[source]

Return a list of cells with matching names.

Parameters
  • name (str) – The name to search match

  • case_sensitive (bool) – Whether to distinguish upper and lower case letters in each cell’s name (default is False)

  • matching (bool) – Whether the names must match completely (default is False)

Returns

Cells matching the queried name

Return type

list of openmc.Cell

get_instances(paths)[source]

Return the instance number(s) for a cell/material in a geometry path.

The instance numbers are used as indices into distributed material/temperature arrays and tally distribcell filter arrays.

Parameters

paths (str or iterable of str) – The path traversed through the CSG tree to reach a cell or material instance. For example, ‘u0->c10->l20(2,2,1)->u5->c5’ would indicate the cell instance whose first level is universe 0 and cell 10, second level is lattice 20 position (2,2,1), and third level is universe 5 and cell 5.

Returns

Instance number(s) for the given path(s)

Return type

int or list of int

get_lattices_by_name(name, case_sensitive=False, matching=False)[source]

Return a list of lattices with matching names.

Parameters
  • name (str) – The name to match

  • case_sensitive (bool) – Whether to distinguish upper and lower case letters in each lattice’s name (default is False)

  • matching (bool) – Whether the names must match completely (default is False)

Returns

Lattices matching the queried name

Return type

list of openmc.Lattice

get_materials_by_name(name, case_sensitive=False, matching=False)[source]

Return a list of materials with matching names.

Parameters
  • name (str) – The name to match

  • case_sensitive (bool) – Whether to distinguish upper and lower case letters in each material’s name (default is False)

  • matching (bool) – Whether the names must match completely (default is False)

Returns

Materials matching the queried name

Return type

list of openmc.Material

get_universes_by_name(name, case_sensitive=False, matching=False)[source]

Return a list of universes with matching names.

Parameters
  • name (str) – The name to match

  • case_sensitive (bool) – Whether to distinguish upper and lower case letters in each universe’s name (default is False)

  • matching (bool) – Whether the names must match completely (default is False)

Returns

Universes matching the queried name

Return type

list of openmc.Universe

remove_redundant_surfaces()[source]

Remove and return all of the redundant surfaces.

Uses surface_precision attribute of Geometry instance for rounding and comparing surface coefficients.

New in version 0.12.

Returns

Dictionary whose keys are the ID of a redundant surface and whose values are the topologically equivalent openmc.Surface that should replace it.

Return type

redundant_surfaces