diff --git a/docs/source/io_formats/statepoint.rst b/docs/source/io_formats/statepoint.rst index 5a373580d..9156e848f 100644 --- a/docs/source/io_formats/statepoint.rst +++ b/docs/source/io_formats/statepoint.rst @@ -109,7 +109,8 @@ The current version of the statepoint file format is 17.0. **/tallies/tally /** -:Attributes: - **internal** (*int*) -- Flag indicating the presence of tally +:Attributes: + - **internal** (*int*) -- Flag indicating the presence of tally data (0) or absence of tally data (1). All user defined tallies will have a value of 0 unless otherwise instructed. diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index dbf078654..70d80a537 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -8,13 +8,14 @@ Cross Section Representations Continuous-Energy Data ---------------------- -The data governing the interaction of neutrons with -various nuclei for continous-energy problems are represented using the ACE -format which is used by MCNP_ and Serpent_. ACE-format data can be generated -with the NJOY_ nuclear data processing system which converts raw -`ENDF/B data`_ into linearly-interpolable data as required by most Monte Carlo -codes. The use of a standard cross section format allows for a direct comparison -of OpenMC with other codes since the same cross section libraries can be used. +In OpenMC, the data governing the interaction of neutrons with various nuclei +for continous-energy problems are represented using an HDF5 format that can be +produced by converting files in the ACE format, which is used by MCNP_ and +Serpent_. ACE-format data can be generated with the NJOY_ nuclear data +processing system, which converts raw `ENDF/B data`_ into linearly-interpolable +data as required by most Monte Carlo codes. Since ACE-format data can be +converted into OpenMC's HDF5 format, it is possible to perform direct comparison +of OpenMC with other codes using the same underlying nuclear data library. The ACE format contains continuous-energy cross sections for the following types of reactions: elastic scattering, fission (or first-chance fission, @@ -31,7 +32,7 @@ data can be used. Energy Grid Methods ------------------- -The method by which continuous energy cross sections for each nuclide in a +The method by which continuous-energy cross sections for each nuclide in a problem are stored as a function of energy can have a substantial effect on the performance of a Monte Carlo simulation. Since the ACE format is based on linearly-interpolable cross sections, each nuclide has cross sections tabulated @@ -72,9 +73,9 @@ Windowed Multipole Representation --------------------------------- In addition to the usual pointwise representation of cross sections, OpenMC -offers support for an experimental data format called windowed multipole (WMP). -This data format requires less memory than pointwise cross sections, and it -allows on-the-fly Doppler broadening to arbitrary temperature. +offers support for an data format called windowed multipole (WMP). This data +format requires less memory than pointwise cross sections, and it allows +on-the-fly Doppler broadening to arbitrary temperature. The multipole method was introduced by Hwang_ and the faster windowed multipole method by Josey_. In the multipole format, cross section resonances are @@ -258,7 +259,7 @@ where a material has a very large cross sections relative to the other material used to minimize this error. Finally, the above options for representing the physics do not have to be -consistent across the problem. The number of groups and the structure, however, +consistent across the problem. The number of groups and the structure, however, does have to be consistent across the data sets. That is to say that each microscopic or macroscopic data set does not have to apply the same scattering expansion, treatment of multiplicity or angular representation of the cross diff --git a/docs/source/methods/energy_deposition.rst b/docs/source/methods/energy_deposition.rst index af4962c55..86dfb9bf9 100644 --- a/docs/source/methods/energy_deposition.rst +++ b/docs/source/methods/energy_deposition.rst @@ -4,11 +4,11 @@ Heating and Energy Deposition ============================= -As particles traverse a problem, some portion of their energy is deposited at +As particles traverse a problem, some portion of their energy is deposited at collision sites. This energy is deposited when charged particles, including electrons and recoil nuclei, undergo electromagnetic interactions with surrounding electons and ions. The information describing how much energy -is deposited for a specific reaction is referred to as +is deposited for a specific reaction is referred to as "heating numbers" and can be computed using a program like NJOY with the ``heatr`` module. @@ -108,7 +108,7 @@ Neutron Transport For this case, OpenMC instructs ``heatr`` to produce heating coefficients assuming that energy from photons, :math:`E_{\gamma, p}` and :math:`E_{\gamma, d}`, is deposited at the fission site. -Let :math:`N901` represent the total heating number returned from this ``heatr`` +Let :math:`N901` represent the total heating number returned from this ``heatr`` run with :math:`N918` reflecting fission heating computed from NJOY. :math:`M901` represent the following modification @@ -119,7 +119,7 @@ run with :math:`N918` reflecting fission heating computed from NJOY. + E_{i, \gamma, d}\right]\sigma_{i, f}(E). This modified heating data is stored as the MT=901 reaction and will be scored -if ``901`` is included in :attr:`openmc.Tally.scores`. +if ``heating-local`` is included in :attr:`openmc.Tally.scores`. Coupled neutron-photon transport -------------------------------- @@ -146,4 +146,4 @@ References .. [Mack97] Abdou, M.A., Maynard, C.W., and Wright, R.Q. MACK: computer program to calculate neutron energy release parameters (fluence-to-kerma factors) and multigroup neutron reaction cross sections from nuclear data - in ENDF Format. Oak Ridge National Laboratory report ORNL-TM-3994. \ No newline at end of file + in ENDF Format. Oak Ridge National Laboratory report ORNL-TM-3994. diff --git a/docs/source/methods/introduction.rst b/docs/source/methods/introduction.rst index 0b9544d63..adb52c02e 100644 --- a/docs/source/methods/introduction.rst +++ b/docs/source/methods/introduction.rst @@ -139,7 +139,7 @@ be performed before the run is finished. This include the following: - If requested, a source file is written to disk. - - All allocatable arrays are deallocated. + - Dynamically-allocated memory should be freed. .. _probability distributions: https://en.wikipedia.org/wiki/Probability_distribution .. _Monte Carlo: https://en.wikipedia.org/wiki/Monte_Carlo_method diff --git a/docs/source/methods/neutron_physics.rst b/docs/source/methods/neutron_physics.rst index 71e9b6bcd..384e79bdd 100644 --- a/docs/source/methods/neutron_physics.rst +++ b/docs/source/methods/neutron_physics.rst @@ -1298,11 +1298,10 @@ section over the range of velocities considered: where it should be noted that the maximum is taken over the range :math:`[v_n - 4/\beta, 4_n + 4\beta]`. This method is known as Doppler broadening rejection correction (DBRC) and was first introduced by `Becker et al.`_. OpenMC has an -implementation of DBRC as well as an accelerated sampling method that are -described fully in `Walsh et al.`_ +implementation of DBRC as well as an accelerated sampling method that samples the `relative velocity`_ directly. .. _Becker et al.: https://doi.org/10.1016/j.anucene.2008.12.001 -.. _Walsh et al.: https://doi.org/10.1016/j.anucene.2014.01.017 +.. _relative velocity: https://doi.org/10.1016/j.anucene.2017.12.044 .. _sab_tables: diff --git a/docs/source/pythonapi/data.rst b/docs/source/pythonapi/data.rst index 92cb78548..be29d7c0e 100644 --- a/docs/source/pythonapi/data.rst +++ b/docs/source/pythonapi/data.rst @@ -2,6 +2,8 @@ :mod:`openmc.data` -- Nuclear Data Interface -------------------------------------------- +.. module:: openmc.data + Core Classes ------------ @@ -13,15 +15,15 @@ and product yields. :nosignatures: :template: myclass.rst - openmc.data.IncidentNeutron - openmc.data.Reaction - openmc.data.Product - openmc.data.FissionEnergyRelease - openmc.data.DataLibrary - openmc.data.Decay - openmc.data.FissionProductYields - openmc.data.WindowedMultipole - openmc.data.ProbabilityTables + IncidentNeutron + Reaction + Product + FissionEnergyRelease + DataLibrary + Decay + FissionProductYields + WindowedMultipole + ProbabilityTables The following classes are used for storing atomic data (incident photon cross sections, atomic relaxation): @@ -31,9 +33,9 @@ sections, atomic relaxation): :nosignatures: :template: myclass.rst - openmc.data.IncidentPhoton - openmc.data.PhotonReaction - openmc.data.AtomicRelaxation + IncidentPhoton + PhotonReaction + AtomicRelaxation The following classes are used for storing thermal neutron scattering data: @@ -43,10 +45,10 @@ The following classes are used for storing thermal neutron scattering data: :nosignatures: :template: myclass.rst - openmc.data.ThermalScattering - openmc.data.ThermalScatteringReaction - openmc.data.CoherentElastic - openmc.data.IncoherentElastic + ThermalScattering + ThermalScatteringReaction + CoherentElastic + IncoherentElastic Core Functions @@ -57,12 +59,12 @@ Core Functions :nosignatures: :template: myfunction.rst - openmc.data.atomic_mass - openmc.data.gnd_name - openmc.data.linearize - openmc.data.thin - openmc.data.water_density - openmc.data.zam + atomic_mass + gnd_name + linearize + thin + water_density + zam One-dimensional Functions ------------------------- @@ -72,13 +74,13 @@ One-dimensional Functions :nosignatures: :template: myclass.rst - openmc.data.Function1D - openmc.data.Tabulated1D - openmc.data.Polynomial - openmc.data.Combination - openmc.data.Sum - openmc.data.Regions1D - openmc.data.ResonancesWithBackground + Function1D + Tabulated1D + Polynomial + Combination + Sum + Regions1D + ResonancesWithBackground Angle-Energy Distributions -------------------------- @@ -88,27 +90,27 @@ Angle-Energy Distributions :nosignatures: :template: myclass.rst - openmc.data.AngleEnergy - openmc.data.KalbachMann - openmc.data.CorrelatedAngleEnergy - openmc.data.UncorrelatedAngleEnergy - openmc.data.NBodyPhaseSpace - openmc.data.LaboratoryAngleEnergy - openmc.data.AngleDistribution - openmc.data.EnergyDistribution - openmc.data.ArbitraryTabulated - openmc.data.GeneralEvaporation - openmc.data.MaxwellEnergy - openmc.data.Evaporation - openmc.data.WattEnergy - openmc.data.MadlandNix - openmc.data.DiscretePhoton - openmc.data.LevelInelastic - openmc.data.ContinuousTabular - openmc.data.CoherentElasticAE - openmc.data.IncoherentElasticAE - openmc.data.IncoherentElasticAEDiscrete - openmc.data.IncoherentInelasticAEDiscrete + AngleEnergy + KalbachMann + CorrelatedAngleEnergy + UncorrelatedAngleEnergy + NBodyPhaseSpace + LaboratoryAngleEnergy + AngleDistribution + EnergyDistribution + ArbitraryTabulated + GeneralEvaporation + MaxwellEnergy + Evaporation + WattEnergy + MadlandNix + DiscretePhoton + LevelInelastic + ContinuousTabular + CoherentElasticAE + IncoherentElasticAE + IncoherentElasticAEDiscrete + IncoherentInelasticAEDiscrete Resonance Data -------------- @@ -118,20 +120,20 @@ Resonance Data :nosignatures: :template: myclass.rst - openmc.data.Resonances - openmc.data.ResonanceRange - openmc.data.SingleLevelBreitWigner - openmc.data.MultiLevelBreitWigner - openmc.data.ReichMoore - openmc.data.RMatrixLimited - openmc.data.ResonanceCovariances - openmc.data.ResonanceCovarianceRange - openmc.data.SingleLevelBreitWignerCovariance - openmc.data.MultiLevelBreitWignerCovariance - openmc.data.ReichMooreCovariance - openmc.data.ParticlePair - openmc.data.SpinGroup - openmc.data.Unresolved + Resonances + ResonanceRange + SingleLevelBreitWigner + MultiLevelBreitWigner + ReichMoore + RMatrixLimited + ResonanceCovariances + ResonanceCovarianceRange + SingleLevelBreitWignerCovariance + MultiLevelBreitWignerCovariance + ReichMooreCovariance + ParticlePair + SpinGroup + Unresolved ACE Format ---------- @@ -144,8 +146,8 @@ Classes :nosignatures: :template: myclass.rst - openmc.data.ace.Library - openmc.data.ace.Table + ace.Library + ace.Table Functions +++++++++ @@ -155,7 +157,7 @@ Functions :nosignatures: :template: myfunction.rst - openmc.data.ace.ascii_to_binary + ace.ascii_to_binary ENDF Format ----------- @@ -168,7 +170,7 @@ Classes :nosignatures: :template: myclass.rst - openmc.data.endf.Evaluation + endf.Evaluation Functions +++++++++ @@ -178,13 +180,13 @@ Functions :nosignatures: :template: myfunction.rst - openmc.data.endf.float_endf - openmc.data.endf.get_cont_record - openmc.data.endf.get_evaluations - openmc.data.endf.get_head_record - openmc.data.endf.get_tab1_record - openmc.data.endf.get_tab2_record - openmc.data.endf.get_text_record + endf.float_endf + endf.get_cont_record + endf.get_evaluations + endf.get_head_record + endf.get_tab1_record + endf.get_tab2_record + endf.get_text_record NJOY Interface -------------- @@ -194,7 +196,7 @@ NJOY Interface :nosignatures: :template: myfunction.rst - openmc.data.njoy.run - openmc.data.njoy.make_pendf - openmc.data.njoy.make_ace - openmc.data.njoy.make_ace_thermal + njoy.run + njoy.make_pendf + njoy.make_ace + njoy.make_ace_thermal diff --git a/docs/source/pythonapi/deplete.rst b/docs/source/pythonapi/deplete.rst index b864529d1..b9970ffb1 100644 --- a/docs/source/pythonapi/deplete.rst +++ b/docs/source/pythonapi/deplete.rst @@ -1,11 +1,11 @@ .. _pythonapi_deplete: +.. module:: openmc.deplete + ---------------------------------- :mod:`openmc.deplete` -- Depletion ---------------------------------- -.. module:: openmc.deplete - Primary API ----------- diff --git a/docs/source/usersguide/cross_sections.rst b/docs/source/usersguide/cross_sections.rst index 636b44db4..144b1c152 100644 --- a/docs/source/usersguide/cross_sections.rst +++ b/docs/source/usersguide/cross_sections.rst @@ -16,10 +16,10 @@ recommended to use one of the pregenerated libraries. Alternatively, if you have ACE format data that was produced with NJOY_, such as that distributed with MCNP_ or Serpent_, it can be converted to the HDF5 format using the :ref:`using the Python API `. Several sources provide openly available -ACE data including the `ENDF/B`_, JEFF_, and TENDL_ -libraries. In addition to tabulated cross sections in the HDF5 files, OpenMC -relies on :ref:`windowed multipole ` data to perform -on-the-fly Doppler broadening. +ACE data including the `ENDF/B`_, JEFF_, and TENDL_ libraries as well as the +`LANL Nuclear Data Team `_. In addition to +tabulated cross sections in the HDF5 files, OpenMC relies on :ref:`windowed +multipole ` data to perform on-the-fly Doppler broadening. In multi-group mode, OpenMC utilizes an HDF5-based library format which can be used to describe nuclide- or material-specific quantities. @@ -30,11 +30,11 @@ Environment Variables When :ref:`scripts_openmc` is run, it will look for several environment variables that indicate where cross sections can be found. While the location of -cross sections can also be indicated through the :class:`openmc.Materials` class -(or in the :ref:`materials.xml ` file), if you always use the same -set of cross section data, it is often easier to just set an environment -variable that will be picked up by default every time OpenMC is run. The -following environment variables are used: +cross sections can also be indicated through the +:attr:`openmc.Materials.cross_setion` attribute (or in the :ref:`materials.xml +` file), if you always use the same set of cross section data, it +is often easier to just set an environment variable that will be picked up by +default every time OpenMC is run. The following environment variables are used: :envvar:`OPENMC_CROSS_SECTIONS` Indicates the path to the :ref:`cross_sections.xml ` diff --git a/docs/source/usersguide/geometry.rst b/docs/source/usersguide/geometry.rst index 5e583cfd2..dc7dd978e 100644 --- a/docs/source/usersguide/geometry.rst +++ b/docs/source/usersguide/geometry.rst @@ -121,11 +121,11 @@ For many regions, a bounding-box can be determined automatically:: While a bounding box can be determined for regions involving half-spaces of spheres, cylinders, and axis-aligned planes, it generally cannot be determined if the region involves cones, non-axis-aligned planes, or other exotic -second-order surfaces. For example, the :func:`openmc.get_hexagonal_prism` +second-order surfaces. For example, the :func:`openmc.model.hexagonal_prism` function returns the interior region of a hexagonal prism; because it is bounded by a :class:`openmc.Plane`, trying to get its bounding box won't work:: - >>> hex = openmc.get_hexagonal_prism() + >>> hex = openmc.model.hexagonal_prism() >>> hex.bounding_box (array([-0.8660254, -inf, -inf]), array([ 0.8660254, inf, inf])) @@ -374,7 +374,7 @@ code would work:: hexlat.universes = [outer_ring, middle_ring, inner_ring] If you need to create a hexagonal boundary (composed of six planar surfaces) for -a hexagonal lattice, :func:`openmc.get_hexagonal_prism` can be used. +a hexagonal lattice, :func:`openmc.model.hexagonal_prism` can be used. .. _usersguide_geom_export: @@ -396,6 +396,13 @@ if needed, lattices, the last step is to create an instance of geom.root_universe = root_univ geom.export_to_xml() +Note that it's not strictly required to manually create a root universe. You can +also pass a list of cells to the :class:`openmc.Geometry` constructor and it +will handle creating the unverse:: + + geom = openmc.Geometry([cell1, cell2, cell3]) + geom.export_to_xml() + .. _constructive solid geometry: https://en.wikipedia.org/wiki/Constructive_solid_geometry .. _quadratic surfaces: https://en.wikipedia.org/wiki/Quadric diff --git a/docs/source/usersguide/settings.rst b/docs/source/usersguide/settings.rst index 496d18f7f..1254c4ed5 100644 --- a/docs/source/usersguide/settings.rst +++ b/docs/source/usersguide/settings.rst @@ -221,26 +221,11 @@ selected:: settings.electron_treatment = 'led' -.. warning:: - Currently, collision stopping powers used in the TTB approximation come from - the `NIST ESTAR database`_, which provides data for each element calculated - using by default the material density at standard temperature and pressure. - In OpenMC, stopping powers for compounds are calculated from this elemental - data using Bragg's additivity rule. However, this is not a good - approximation --- the collision stopping power is a function of certain - quantities, such as the mean excitation energy and particularly the density - effect correction, that depend on material properties. Data for constituent - elements in a compound cannot simply be summed together, but rather these - quantities should be calculated for the material. This treatment will be - especially poor when the density of a material is different from the - densities used in the NIST data. - .. note:: Some features related to photon transport are not currently implemented, including: * Tallying photon energy deposition. - * Properly accounting for energy deposition in coupled n-p calculations. * Generating a photon source from a neutron calculation that can be used for a later fixed source photon calculation. * Photoneutron reactions.