Python API¶
OpenMC includes a rich Python API that enables programmatic pre- and post-processing. The easiest way to begin using the API is to take a look at the example Jupyter notebooks provided. However, this assumes that you are already familiar with Python and common third-party packages such as NumPy. If you have never programmed in Python before, there are many good tutorials available online. We recommend going through the modules from Codecademy and/or the Scipy lectures. The full API documentation serves to provide more information on a given module or class.
Example Jupyter Notebooks¶
openmc
– Basic Functionality¶
Handling nuclear data¶
Classes¶
openmc.XSdata |
A multi-group cross section data set providing all the multi-group data necessary for a multi-group OpenMC calculation. |
openmc.MGXSLibrary |
Multi-Group Cross Sections file used for an OpenMC simulation. |
Functions¶
openmc.ace.ascii_to_binary |
Convert an ACE file in ASCII format (type 1) to binary format (type 2). |
Simulation Settings¶
openmc.Source |
Distribution of phase space coordinates for source sites. |
openmc.ResonanceScattering |
Specification of the elastic scattering model for resonant isotopes |
openmc.Settings |
Settings file used for an OpenMC simulation. |
Material Specification¶
openmc.Nuclide |
A nuclide that can be used in a material. |
openmc.Element |
A natural element used in a material via <element>. |
openmc.Macroscopic |
A Macroscopic object that can be used in a material. |
openmc.Material |
A material composed of a collection of nuclides/elements that can be assigned to a region of space. |
openmc.Materials |
Collection of Materials used for an OpenMC simulation. |
Building geometry¶
openmc.Plane |
An arbitrary plane of the form \(Ax + By + Cz = D\). |
openmc.XPlane |
A plane perpendicular to the x axis of the form \(x - x_0 = 0\) |
openmc.YPlane |
A plane perpendicular to the y axis of the form \(y - y_0 = 0\) |
openmc.ZPlane |
A plane perpendicular to the z axis of the form \(z - z_0 = 0\) |
openmc.XCylinder |
An infinite cylinder whose length is parallel to the x-axis of the form \((y - y_0)^2 + (z - z_0)^2 = R^2\). |
openmc.YCylinder |
An infinite cylinder whose length is parallel to the y-axis of the form \((x - x_0)^2 + (z - z_0)^2 = R^2\). |
openmc.ZCylinder |
An infinite cylinder whose length is parallel to the z-axis of the form \((x - x_0)^2 + (y - y_0)^2 = R^2\). |
openmc.Sphere |
A sphere of the form \((x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 = R^2\). |
openmc.Cone |
A conical surface parallel to the x-, y-, or z-axis. |
openmc.XCone |
A cone parallel to the x-axis of the form \((y - y_0)^2 + (z - z_0)^2 = R^2 (x - x_0)^2\). |
openmc.YCone |
A cone parallel to the y-axis of the form \((x - x_0)^2 + (z - z_0)^2 = R^2 (y - y_0)^2\). |
openmc.ZCone |
A cone parallel to the x-axis of the form \((x - x_0)^2 + (y - y_0)^2 = R^2 (z - z_0)^2\). |
openmc.Quadric |
A surface of the form \(Ax^2 + By^2 + Cz^2 + Dxy + Eyz + Fxz + Gx + Hy + Jz + K = 0\). |
openmc.Halfspace |
A positive or negative half-space region. |
openmc.Intersection |
Intersection of two or more regions. |
openmc.Union |
Union of two or more regions. |
openmc.Complement |
Complement of a region. |
openmc.Cell |
A region of space defined as the intersection of half-space created by quadric surfaces. |
openmc.Universe |
A collection of cells that can be repeated. |
openmc.RectLattice |
A lattice consisting of rectangular prisms. |
openmc.HexLattice |
A lattice consisting of hexagonal prisms. |
openmc.Geometry |
Geometry representing a collection of surfaces, cells, and universes. |
Many of the above classes are derived from several abstract classes:
openmc.Surface |
An implicit surface with an associated boundary condition. |
openmc.Region |
Region of space that can be assigned to a cell. |
openmc.Lattice |
A repeating structure wherein each element is a universe. |
One function is also available to create a hexagonal region defined by the intersection of six surface half-spaces.
openmc.make_hexagon_region |
Create a hexagon region from six surface planes. |
Constructing Tallies¶
openmc.Filter |
A filter used to constrain a tally to a specific criterion, e.g. |
openmc.Mesh |
A structured Cartesian mesh in two or three dimensions |
openmc.Trigger |
A criterion for when to finish a simulation based on tally uncertainties. |
openmc.Tally |
A tally defined by a set of scores that are accumulated for a list of nuclides given a set of filters. |
openmc.Tallies |
Collection of Tallies used for an OpenMC simulation. |
Coarse Mesh Finite Difference Acceleration¶
openmc.CMFDMesh |
A structured Cartesian mesh used for Coarse Mesh Finite Difference (CMFD) acceleration. |
openmc.CMFD |
Parameters that control the use of coarse-mesh finite difference acceleration in OpenMC. |
Plotting¶
openmc.Plot |
Definition of a finite region of space to be plotted, either as a slice plot in two dimensions or as a voxel plot in three dimensions. |
openmc.Plots |
Collection of Plots used for an OpenMC simulation. |
Running OpenMC¶
openmc.run |
Run an OpenMC simulation. |
openmc.plot_geometry |
Run OpenMC in plotting mode |
Post-processing¶
openmc.Particle |
Information used to restart a specific particle that caused a simulation to fail. |
openmc.StatePoint |
State information on a simulation at a certain point in time (at the end of a given batch). |
openmc.Summary |
Information summarizing the geometry, materials, and tallies used in a simulation. |
Various classes may be created when performing tally slicing and/or arithmetic:
openmc.arithmetic.CrossScore |
A special-purpose tally score used to encapsulate all combinations of two tally’s scores as an outer product for tally arithmetic. |
openmc.arithmetic.CrossNuclide |
A special-purpose nuclide used to encapsulate all combinations of two tally’s nuclides as an outer product for tally arithmetic. |
openmc.arithmetic.CrossFilter |
A special-purpose filter used to encapsulate all combinations of two tally’s filter bins as an outer product for tally arithmetic. |
openmc.arithmetic.AggregateScore |
A special-purpose tally score used to encapsulate an aggregate of a subset or all of tally’s scores for tally aggregation. |
openmc.arithmetic.AggregateNuclide |
A special-purpose tally nuclide used to encapsulate an aggregate of a subset or all of tally’s nuclides for tally aggregation. |
openmc.arithmetic.AggregateFilter |
A special-purpose tally filter used to encapsulate an aggregate of a subset or all of a tally filter’s bins for tally aggregation. |
openmc.stats
– Statistics¶
Univariate Probability Distributions¶
openmc.stats.Univariate |
Probability distribution of a single random variable. |
openmc.stats.Discrete |
Distribution characterized by a probability mass function. |
openmc.stats.Uniform |
Distribution with constant probability over a finite interval [a,b] |
openmc.stats.Maxwell |
Maxwellian distribution in energy. |
openmc.stats.Watt |
Watt fission energy spectrum. |
openmc.stats.Tabular |
Piecewise continuous probability distribution. |
Angular Distributions¶
openmc.stats.UnitSphere |
Distribution of points on the unit sphere. |
openmc.stats.PolarAzimuthal |
Angular distribution represented by polar and azimuthal angles |
openmc.stats.Isotropic |
Isotropic angular distribution. |
openmc.stats.Monodirectional |
Monodirectional angular distribution. |
Spatial Distributions¶
openmc.stats.Spatial |
Distribution of locations in three-dimensional Euclidean space. |
openmc.stats.CartesianIndependent |
Spatial distribution with independent x, y, and z distributions. |
openmc.stats.Box |
Uniform distribution of coordinates in a rectangular cuboid. |
openmc.stats.Point |
Delta function in three dimensions. |
openmc.mgxs
– Multi-Group Cross Section Generation¶
Energy Groups¶
openmc.mgxs.EnergyGroups |
An energy groups structure used for multi-group cross-sections. |
Multi-group Cross Sections¶
openmc.mgxs.MGXS |
An abstract multi-group cross section for some energy group structure within some spatial domain. |
openmc.mgxs.AbsorptionXS |
An absorption multi-group cross section. |
openmc.mgxs.CaptureXS |
A capture multi-group cross section. |
openmc.mgxs.Chi |
The fission spectrum. |
openmc.mgxs.FissionXS |
A fission multi-group cross section. |
openmc.mgxs.KappaFissionXS |
A recoverable fission energy production rate multi-group cross section. |
openmc.mgxs.MultiplicityMatrixXS |
The scattering multiplicity matrix. |
openmc.mgxs.NuFissionXS |
A fission neutron production multi-group cross section. |
openmc.mgxs.NuFissionMatrixXS |
A fission production matrix multi-group cross section. |
openmc.mgxs.NuScatterXS |
A scattering neutron production multi-group cross section. |
openmc.mgxs.NuScatterMatrixXS |
A scattering production matrix multi-group cross section for one or more Legendre moments. |
openmc.mgxs.ScatterXS |
A scattering multi-group cross section. |
openmc.mgxs.ScatterMatrixXS |
A scattering matrix multi-group cross section for one or more Legendre moments. |
openmc.mgxs.TotalXS |
A total multi-group cross section. |
openmc.mgxs.TransportXS |
A transport-corrected total multi-group cross section. |
Multi-group Cross Section Libraries¶
openmc.mgxs.Library |
A multi-group cross section library for some energy group structure. |
openmc.model
– Model Building¶
TRISO Fuel Modeling¶
Classes¶
openmc.model.TRISO |
Tristructural-isotopic (TRISO) micro fuel particle |
Functions¶
openmc.model.create_triso_lattice |
Create a lattice containing TRISO particles for optimized tracking. |