openmc.Geometry¶
- class openmc.Geometry(root: Optional[Union[UniverseBase, Iterable[Cell]]] = None, merge_surfaces: bool = False, surface_precision: int = 10)[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 (openmc.BoundingBox) – 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() Geometry [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
andMaterial.paths
attributes.- Parameters
instances_only (bool, optional) – If true, this method will only determine the number of instances of each cell and material.
- find(point) list [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
- classmethod from_xml(path: PathLike = 'geometry.xml', materials: PathLike | 'openmc.Materials' | None = 'materials.xml') Geometry [source]¶
Generate geometry from XML file
- Parameters
path (PathLike, optional) – Path to geometry XML file
materials (openmc.Materials or PathLike) – Materials used to assign to cells. If PathLike, an attempt is made to generate materials from the provided xml file.
- Returns
Geometry object
- Return type
- classmethod from_xml_element(elem, materials=None) Geometry [source]¶
Generate geometry from an XML element
- Parameters
elem (lxml.etree._Element) – XML element
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
- get_all_cells() dict[int, openmc.cell.Cell] [source]¶
Return all cells in the geometry.
- Returns
Dictionary mapping cell IDs to
openmc.Cell
instances- Return type
- get_all_lattices() dict[int, openmc.lattice.Lattice] [source]¶
Return all lattices defined
- Returns
Dictionary mapping lattice IDs to
openmc.Lattice
instances- Return type
- get_all_material_cells() dict[int, openmc.cell.Cell] [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
- get_all_material_universes() dict[int, openmc.universe.Universe] [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
- get_all_materials() dict[int, openmc.material.Material] [source]¶
Return all materials within the geometry.
- Returns
Dictionary mapping material IDs to
openmc.Material
instances- Return type
- get_all_nuclides() list[str] [source]¶
Return all nuclides within the geometry.
- Returns
Sorted list of all nuclides in materials appearing in the geometry
- Return type
- get_all_surfaces() dict[int, openmc.surface.Surface] [source]¶
Return all surfaces used in the geometry
- Returns
Dictionary mapping surface IDs to
openmc.Surface
instances- Return type
- get_all_universes() dict[int, openmc.universe.Universe] [source]¶
Return all universes in the geometry.
- Returns
Dictionary mapping universe IDs to
openmc.Universe
instances- Return type
- get_cells_by_fill_name(name, case_sensitive=False, matching=False) list[openmc.cell.Cell] [source]¶
Return a list of cells with fills with matching names.
- Parameters
- Returns
Cells with fills matching the queried name
- Return type
list of openmc.Cell
- get_cells_by_name(name, case_sensitive=False, matching=False) list[openmc.cell.Cell] [source]¶
Return a list of cells with matching names.
- Parameters
- Returns
Cells matching the queried name
- Return type
list of openmc.Cell
- get_instances(paths) int | list[int] [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) list[openmc.lattice.Lattice] [source]¶
Return a list of lattices with matching names.
- Parameters
- Returns
Lattices matching the queried name
- Return type
list of openmc.Lattice
- get_materials_by_name(name, case_sensitive=False, matching=False) list[openmc.material.Material] [source]¶
Return a list of materials with matching names.
- Parameters
- Returns
Materials matching the queried name
- Return type
list of openmc.Material
- get_surfaces_by_name(name, case_sensitive=False, matching=False) list[openmc.surface.Surface] [source]¶
Return a list of surfaces with matching names.
New in version 0.13.3.
- Parameters
- Returns
Surfaces matching the queried name
- Return type
list of openmc.Surface
- get_universes_by_name(name, case_sensitive=False, matching=False) list[openmc.universe.Universe] [source]¶
Return a list of universes with matching names.
- Parameters
- Returns
Universes matching the queried name
- Return type
list of openmc.Universe
- plot(*args, **kwargs)[source]¶
Display a slice plot of the geometry.
New in version 0.14.0.
- Parameters
origin (iterable of float) – Coordinates at the origin of the plot. If left as None then the bounding box center will be used to attempt to ascertain the origin. Defaults to (0, 0, 0) if the bounding box is not finite
width (iterable of float) – Width of the plot in each basis direction. If left as none then the bounding box width will be used to attempt to ascertain the plot width. Defaults to (10, 10) if the bounding box is not finite
pixels (Iterable of int or int) – If iterable of ints provided, then this directly sets the number of pixels to use in each basis direction. If int provided, then this sets the total number of pixels in the plot and the number of pixels in each basis direction is calculated from this total and the image aspect ratio.
basis ({'xy', 'xz', 'yz'}) – The basis directions for the plot
color_by ({'cell', 'material'}) – Indicate whether the plot should be colored by cell or by material
colors (dict) –
Assigns colors to specific materials or cells. Keys are instances of
Cell
orMaterial
and values are RGB 3-tuples, RGBA 4-tuples, or strings indicating SVG color names. Red, green, blue, and alpha should all be floats in the range [0.0, 1.0], for example:# Make water blue water = openmc.Cell(fill=h2o) universe.plot(..., colors={water: (0., 0., 1.))
seed (int) – Seed for the random number generator
openmc_exec (str) – Path to OpenMC executable.
axes (matplotlib.Axes) – Axes to draw to
legend (bool) – Whether a legend showing material or cell names should be drawn
legend_kwargs (dict) – Keyword arguments passed to
matplotlib.pyplot.legend()
.outline (bool) – Whether outlines between color boundaries should be drawn
axis_units ({'km', 'm', 'cm', 'mm'}) – Units used on the plot axis
**kwargs – Keyword arguments passed to
matplotlib.pyplot.imshow()
- Returns
Axes containing resulting image
- Return type
- remove_redundant_surfaces() dict[int, openmc.surface.Surface] [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