Merge remote-tracking branch 'upstream/develop' into diff_tally6

This commit is contained in:
Sterling Harper 2016-11-03 17:01:15 -04:00
commit 902286a674
105 changed files with 1833 additions and 1868 deletions

View file

@ -43,7 +43,7 @@ install: true
before_script:
- if [[ ! -e $HOME/nndc_hdf5/cross_sections.xml ]]; then
wget https://anl.box.com/shared/static/fouwc8lh9he2wc97kzq65u4rp8zt9sgq.xz -O - | tar -C $HOME -xvJ;
wget https://anl.box.com/shared/static/1ow880up90hgwynvh91twwfteameuwre.xz -O - | tar -C $HOME -xvJ;
fi
- export OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml

View file

@ -30,7 +30,7 @@ MGXS Library Specification
:Attributes: - **groups** (*int*) -- Number of energy groups
- **group structure** (*double[]*) -- Monotonically increasing
list of group boundaries, in units of MeV. The length of this
list of group boundaries, in units of eV. The length of this
array should be the number of groups plus 1.
**/<library name>/**
@ -77,8 +77,8 @@ data for the nuclide or material that it represents.
**/<library name>/kTs/**
:Datasets:
- **<TTT>K** (*double*) -- kT values (in MeV) for each Temperature
:Datasets:
- **<TTT>K** (*double*) -- kT values (in eV) for each temperature
TTT (in Kelvin), rounded to the nearest integer
**/<library name>/<TTT>K/**
@ -161,4 +161,4 @@ Data specific to neutron scattering for the temperature <TTT>K
1.0) will be assumed.
The pre-flattened array is shapes consistent with `scatter_matrix`
except the "[Order]" dimension in `scatter_shape` is ignored since
this data is assumed isotropic.
this data is assumed isotropic.

View file

@ -8,6 +8,10 @@ Nuclear Data File Format
Incident Neutron Data
---------------------
**/**
:Attributes:
- **version** (*int[2]*) -- Major and minor version of the data
**/<nuclide name>/**
@ -27,14 +31,14 @@ temperature-dependent data set. For example, the data set corresponding to
300 Kelvin would be located at `300K`.
:Datasets:
- **<TTT>K** (*double*) -- kT values (in MeV) for each Temperature
- **<TTT>K** (*double*) -- kT values (in eV) for each temperature
TTT (in Kelvin)
**/<nuclide name>/reactions/reaction_<mt>/**
:Attributes: - **mt** (*int*) -- ENDF MT reaction number
- **label** (*char[]*) -- Name of the reaction
- **Q_value** (*double*) -- Q value in MeV
- **Q_value** (*double*) -- Q value in eV
- **center_of_mass** (*int*) -- Whether the reference frame for
scattering is center-of-mass (1) or laboratory (0)
- **n_product** (*int*) -- Number of reaction products
@ -113,6 +117,11 @@ temperature-dependent data set. For example, the data set corresponding to
Thermal Neutron Scattering Data
-------------------------------
**/**
:Attributes:
- **version** (*int[2]*) -- Major and minor version of the data
**/<thermal name>/**
:Attributes: - **atomic_weight_ratio** (*double*) -- Mass in units of neutron masses
@ -129,7 +138,7 @@ temperature-dependent data set. For example, the data set corresponding to
300 Kelvin would be located at `300K`.
:Datasets:
- **<TTT>K** (*double*) -- kT values (in MeV) for each Temperature
- **<TTT>K** (*double*) -- kT values (in eV) for each temperature
TTT (in Kelvin)
**/<thermal name>/elastic/<TTT>K/**
@ -333,7 +342,7 @@ N-Body Phase Space
- **n_particles** (*int*) -- Number of product particles
- **atomic_weight_ratio** (*double*) -- Atomic weight ratio of the
target nuclide in neutron masses
- **q_value** (*double*) -- Q value for the reaction in MeV
- **q_value** (*double*) -- Q value for the reaction in eV
.. _energy_distribution:
@ -346,7 +355,7 @@ Maxwell
:Object type: Group
:Attributes: - **type** (*char[]*) -- 'maxwell'
- **u** (*double*) -- Restriction energy in MeV
- **u** (*double*) -- Restriction energy in eV
:Datasets:
- **theta** (:ref:`tabulated <1d_tabulated>`) -- Maxwellian
temperature as a function of energy
@ -356,7 +365,7 @@ Evaporation
:Object type: Group
:Attributes: - **type** (*char[]*) -- 'evaporation'
- **u** (*double*) -- Restriction energy in MeV
- **u** (*double*) -- Restriction energy in eV
:Datasets:
- **theta** (:ref:`tabulated <1d_tabulated>`) -- Evaporation
temperature as a function of energy
@ -366,7 +375,7 @@ Watt Fission Spectrum
:Object type: Group
:Attributes: - **type** (*char[]*) -- 'watt'
- **u** (*double*) -- Restriction energy in MeV
- **u** (*double*) -- Restriction energy in eV
:Datasets: - **a** (:ref:`tabulated <1d_tabulated>`) -- Watt parameter :math:`a`
as a function of incident energy
- **b** (:ref:`tabulated <1d_tabulated>`) -- Watt parameter :math:`b`
@ -386,7 +395,7 @@ Discrete Photon
:Object type: Group
:Attributes: - **type** (*char[]*) -- 'discrete_photon'
- **primary_flag** (*int*) -- Whether photon is a primary
- **energy** (*double*) -- Photon energy in MeV
- **energy** (*double*) -- Photon energy in eV
- **atomic_weight_ratio** (*double*) -- Atomic weight ratio of
target nuclide in neutron masses
@ -396,7 +405,7 @@ Level Inelastic
:Object type: Group
:Attributes: - **type** (*char[]*) -- 'level'
- **threshold** (*double*) -- Energy threshold in the laboratory
system in MeV
system in eV
- **mass_ratio** (*double*) -- :math:`(A/(A + 1))^2`
Continuous Tabular

View file

@ -46,7 +46,7 @@ The current revision of the particle restart file format is 1.
**/energy** (*double*)
Energy of the particle in MeV for continuous-energy mode, or the energy
Energy of the particle in eV for continuous-energy mode, or the energy
group of the particle for multi-group mode.
**/xyz** (*double[3]*)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -8,9 +8,7 @@
"\n",
"* **General equations** for scalar-flux averaged multi-group cross sections\n",
"* Creation of multi-group cross sections for an **infinite homogeneous medium**\n",
"* Use of **tally arithmetic** to manipulate multi-group cross sections\n",
"\n",
"**Note:** This Notebook illustrates the use of [Pandas](http://pandas.pydata.org/) `DataFrames` to containerize multi-group cross section data. We recommend using [Pandas](http://pandas.pydata.org/) >v0.15.0 or later since OpenMC's Python API leverages the multi-indexing feature included in the most recent releases of [Pandas](http://pandas.pydata.org/)."
"* Use of **tally arithmetic** to manipulate multi-group cross sections"
]
},
{
@ -360,7 +358,7 @@
"source": [
"# Instantiate a 2-group EnergyGroups object\n",
"groups = mgxs.EnergyGroups()\n",
"groups.group_edges = np.array([0., 0.625e-6, 20.])"
"groups.group_edges = np.array([0., 0.625, 20.0e6])"
]
},
{
@ -424,16 +422,16 @@
" \tID =\t10000\n",
" \tName =\t\n",
" \tFilters =\t\n",
" \t\tcell\t[1]\n",
" \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n",
" \t\tCellFilter\t[1]\n",
" \t\tEnergyFilter\t[ 0.00000000e+00 6.25000000e-01 2.00000000e+07]\n",
" \tNuclides =\ttotal \n",
" \tScores =\t['flux']\n",
" \tEstimator =\ttracklength), ('absorption', Tally\n",
" \tID =\t10001\n",
" \tName =\t\n",
" \tFilters =\t\n",
" \t\tcell\t[1]\n",
" \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n",
" \t\tCellFilter\t[1]\n",
" \t\tEnergyFilter\t[ 0.00000000e+00 6.25000000e-01 2.00000000e+07]\n",
" \tNuclides =\ttotal \n",
" \tScores =\t['absorption']\n",
" \tEstimator =\ttracklength)])"
@ -526,8 +524,8 @@
" Copyright | 2011-2016 Massachusetts Institute of Technology\n",
" License | http://openmc.readthedocs.io/en/latest/license.html\n",
" Version | 0.8.0\n",
" Git SHA1 | fbebf7bf709fe2fe1813af95bff9b29c0d59312c\n",
" Date/Time | 2016-08-31 10:40:13\n",
" Git SHA1 | da5563eddb5f2c2d6b2c9839d518de40962b78f2\n",
" Date/Time | 2016-10-31 12:23:45\n",
" OpenMP Threads | 4\n",
"\n",
" ===========================================================================\n",
@ -536,14 +534,14 @@
"\n",
" Reading settings XML file...\n",
" Reading geometry XML file...\n",
" Reading cross sections XML file...\n",
" Reading materials XML file...\n",
" Reading H1 from /home/romano/openmc/data/nndc_hdf5/H1.h5\n",
" Reading O16 from /home/romano/openmc/data/nndc_hdf5/O16.h5\n",
" Reading U235 from /home/romano/openmc/data/nndc_hdf5/U235.h5\n",
" Reading U238 from /home/romano/openmc/data/nndc_hdf5/U238.h5\n",
" Reading Zr90 from /home/romano/openmc/data/nndc_hdf5/Zr90.h5\n",
" Maximum neutron transport energy: 20.0000 MeV for H1\n",
" Reading cross sections XML file...\n",
" Reading H1 from /home/romano/openmc/scripts/nndc_hdf5/H1.h5\n",
" Reading O16 from /home/romano/openmc/scripts/nndc_hdf5/O16.h5\n",
" Reading U235 from /home/romano/openmc/scripts/nndc_hdf5/U235.h5\n",
" Reading U238 from /home/romano/openmc/scripts/nndc_hdf5/U238.h5\n",
" Reading Zr90 from /home/romano/openmc/scripts/nndc_hdf5/Zr90.h5\n",
" Maximum neutron transport energy: 2.00000E+07 eV for H1\n",
" Reading tallies XML file...\n",
" Building neighboring cells lists for each surface...\n",
" Initializing source particles...\n",
@ -613,20 +611,20 @@
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 3.9900E-01 seconds\n",
" Reading cross sections = 2.6500E-01 seconds\n",
" Total time in simulation = 1.1488E+01 seconds\n",
" Time in transport only = 1.1152E+01 seconds\n",
" Time in inactive batches = 1.2180E+00 seconds\n",
" Time in active batches = 1.0270E+01 seconds\n",
" Time synchronizing fission bank = 4.0000E-03 seconds\n",
" Sampling source sites = 3.0000E-03 seconds\n",
" SEND/RECV source sites = 1.0000E-03 seconds\n",
" Time accumulating tallies = 0.0000E+00 seconds\n",
" Total time for finalization = 1.0000E-03 seconds\n",
" Total time elapsed = 1.1901E+01 seconds\n",
" Calculation Rate (inactive) = 20525.5 neutrons/second\n",
" Calculation Rate (active) = 9737.10 neutrons/second\n",
" Total time for initialization = 7.3858E-01 seconds\n",
" Reading cross sections = 5.3599E-01 seconds\n",
" Total time in simulation = 2.1031E+01 seconds\n",
" Time in transport only = 1.9960E+01 seconds\n",
" Time in inactive batches = 2.6543E+00 seconds\n",
" Time in active batches = 1.8376E+01 seconds\n",
" Time synchronizing fission bank = 5.8389E-03 seconds\n",
" Sampling source sites = 4.2676E-03 seconds\n",
" SEND/RECV source sites = 1.4523E-03 seconds\n",
" Time accumulating tallies = 1.5633E-04 seconds\n",
" Total time for finalization = 7.9179E-04 seconds\n",
" Total time elapsed = 2.1784E+01 seconds\n",
" Calculation Rate (inactive) = 9418.63 neutrons/second\n",
" Calculation Rate (active) = 5441.81 neutrons/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
@ -745,8 +743,8 @@
"\tDomain Type =\tcell\n",
"\tDomain ID =\t1\n",
"\tCross Sections [cm^-1]:\n",
" Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 2.69e-01%\n",
" Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.93e-01%\n",
" Group 1 [0.625 - 20000000.0eV]:\t6.81e-01 +/- 2.69e-01%\n",
" Group 2 [0.0 - 0.625 eV]:\t1.40e+00 +/- 5.93e-01%\n",
"\n",
"\n",
"\n"
@ -891,8 +889,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -903,21 +901,21 @@
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>total</td>\n",
" <td>(((total / flux) - (absorption / flux)) - (sca...</td>\n",
" <td>-2.886580e-15</td>\n",
" <td>-2.664535e-15</td>\n",
" <td>0.011292</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>total</td>\n",
" <td>(((total / flux) - (absorption / flux)) - (sca...</td>\n",
" <td>-5.551115e-16</td>\n",
" <td>-7.771561e-16</td>\n",
" <td>0.002570</td>\n",
" </tr>\n",
" </tbody>\n",
@ -925,13 +923,13 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide \\\n",
"0 1 0.00e+00 6.25e-07 total \n",
"1 1 6.25e-07 2.00e+01 total \n",
" cell energy low [eV] energy high [eV] nuclide \\\n",
"0 1 0.00e+00 6.25e-01 total \n",
"1 1 6.25e-01 2.00e+07 total \n",
"\n",
" score mean std. dev. \n",
"0 (((total / flux) - (absorption / flux)) - (sca... -2.89e-15 1.13e-02 \n",
"1 (((total / flux) - (absorption / flux)) - (sca... -5.55e-16 2.57e-03 "
"0 (((total / flux) - (absorption / flux)) - (sca... -2.66e-15 1.13e-02 \n",
"1 (((total / flux) - (absorption / flux)) - (sca... -7.77e-16 2.57e-03 "
]
},
"execution_count": 22,
@ -970,8 +968,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -982,8 +980,8 @@
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>total</td>\n",
" <td>((absorption / flux) / (total / flux))</td>\n",
" <td>0.076115</td>\n",
@ -992,8 +990,8 @@
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>total</td>\n",
" <td>((absorption / flux) / (total / flux))</td>\n",
" <td>0.019263</td>\n",
@ -1004,9 +1002,9 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide \\\n",
"0 1 0.00e+00 6.25e-07 total \n",
"1 1 6.25e-07 2.00e+01 total \n",
" cell energy low [eV] energy high [eV] nuclide \\\n",
"0 1 0.00e+00 6.25e-01 total \n",
"1 1 6.25e-01 2.00e+07 total \n",
"\n",
" score mean std. dev. \n",
"0 ((absorption / flux) / (total / flux)) 7.61e-02 6.49e-04 \n",
@ -1042,8 +1040,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1054,8 +1052,8 @@
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>total</td>\n",
" <td>((scatter / flux) / (total / flux))</td>\n",
" <td>0.923885</td>\n",
@ -1064,8 +1062,8 @@
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>total</td>\n",
" <td>((scatter / flux) / (total / flux))</td>\n",
" <td>0.980737</td>\n",
@ -1076,9 +1074,9 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide \\\n",
"0 1 0.00e+00 6.25e-07 total \n",
"1 1 6.25e-07 2.00e+01 total \n",
" cell energy low [eV] energy high [eV] nuclide \\\n",
"0 1 0.00e+00 6.25e-01 total \n",
"1 1 6.25e-01 2.00e+07 total \n",
"\n",
" score mean std. dev. \n",
"0 ((scatter / flux) / (total / flux)) 9.24e-01 7.74e-03 \n",
@ -1121,8 +1119,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1133,8 +1131,8 @@
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>total</td>\n",
" <td>(((absorption / flux) / (total / flux)) + ((sc...</td>\n",
" <td>1.0</td>\n",
@ -1143,8 +1141,8 @@
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>total</td>\n",
" <td>(((absorption / flux) / (total / flux)) + ((sc...</td>\n",
" <td>1.0</td>\n",
@ -1155,9 +1153,9 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide \\\n",
"0 1 0.00e+00 6.25e-07 total \n",
"1 1 6.25e-07 2.00e+01 total \n",
" cell energy low [eV] energy high [eV] nuclide \\\n",
"0 1 0.00e+00 6.25e-01 total \n",
"1 1 6.25e-01 2.00e+07 total \n",
"\n",
" score mean std. dev. \n",
"0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.76e-03 \n",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -16,6 +16,7 @@
"outputs": [],
"source": [
"import glob\n",
"\n",
"from IPython.display import Image\n",
"import numpy as np\n",
"\n",
@ -338,7 +339,7 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AJHgM6No8TBkYAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMjlUMjM6NTg6\nNTItMDQ6MDBn7ClZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTI5VDIzOjU4OjUyLTA0OjAw\nFrGR5QAAAABJRU5ErkJggg==\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AKHxE2I67FxwoAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMTAtMzFUMTI6NTQ6\nMzUtMDU6MDAowpdyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTEwLTMxVDEyOjU0OjM1LTA1OjAw\nWZ8vzgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
@ -386,7 +387,7 @@
"# Create Tallies to compute microscopic multi-group cross-sections\n",
"\n",
"# Instantiate energy filter for multi-group cross-section Tallies\n",
"energy_filter = openmc.EnergyFilter([0., 0.625e-6, 20.])\n",
"energy_filter = openmc.EnergyFilter([0., 0.625, 20.0e6])\n",
"\n",
"# Instantiate flux Tally in moderator and fuel\n",
"tally = openmc.Tally(name='flux')\n",
@ -426,12 +427,12 @@
"tallies_file.append(leak)\n",
"\n",
"thermal_leak = openmc.Tally(name='thermal leakage')\n",
"thermal_leak.filters = [mesh_filter, openmc.EnergyFilter([0., 0.625e-6])]\n",
"thermal_leak.filters = [mesh_filter, openmc.EnergyFilter([0., 0.625])]\n",
"thermal_leak.scores = ['current']\n",
"tallies_file.append(thermal_leak)\n",
"\n",
"fast_leak = openmc.Tally(name='fast leakage')\n",
"fast_leak.filters = [mesh_filter, openmc.EnergyFilter([0.625e-6, 20.])]\n",
"fast_leak.filters = [mesh_filter, openmc.EnergyFilter([0.625, 20.0e6])]\n",
"fast_leak.scores = ['current']\n",
"tallies_file.append(fast_leak)"
]
@ -463,7 +464,7 @@
"# Resonance Escape Probability tallies\n",
"therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n",
"therm_abs_rate.scores = ['absorption']\n",
"therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625e-6])]\n",
"therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625])]\n",
"tallies_file.append(therm_abs_rate)"
]
},
@ -478,7 +479,7 @@
"# Thermal Flux Utilization tallies\n",
"fuel_therm_abs_rate = openmc.Tally(name='fuel therm. abs. rate')\n",
"fuel_therm_abs_rate.scores = ['absorption']\n",
"fuel_therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625e-6]),\n",
"fuel_therm_abs_rate.filters = [openmc.EnergyFilter([0., 0.625]),\n",
" openmc.CellFilter([fuel_cell.id])]\n",
"tallies_file.append(fuel_therm_abs_rate)"
]
@ -494,7 +495,7 @@
"# Fast Fission Factor tallies\n",
"therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n",
"therm_fiss_rate.scores = ['nu-fission']\n",
"therm_fiss_rate.filters = [openmc.EnergyFilter([0., 0.625e-6])]\n",
"therm_fiss_rate.filters = [openmc.EnergyFilter([0., 0.625])]\n",
"tallies_file.append(therm_fiss_rate)"
]
},
@ -507,7 +508,7 @@
"outputs": [],
"source": [
"# Instantiate energy filter to illustrate Tally slicing\n",
"fine_energy_filter = openmc.EnergyFilter(np.logspace(np.log10(1e-8), np.log10(20), 10))\n",
"fine_energy_filter = openmc.EnergyFilter(np.logspace(np.log10(1e-2), np.log10(20.0e6), 10))\n",
"\n",
"# Instantiate flux Tally in moderator and fuel\n",
"tally = openmc.Tally(name='need-to-slice')\n",
@ -578,9 +579,9 @@
" Copyright | 2011-2016 Massachusetts Institute of Technology\n",
" License | http://openmc.readthedocs.io/en/latest/license.html\n",
" Version | 0.8.0\n",
" Git SHA1 | b02fa21928a37a2254bec13c9802ff8173b6aefd\n",
" Date/Time | 2016-09-29 23:59:21\n",
" MPI Processes | 1\n",
" Git SHA1 | da5563eddb5f2c2d6b2c9839d518de40962b78f2\n",
" Date/Time | 2016-10-31 12:54:36\n",
" OpenMP Threads | 4\n",
"\n",
" ===========================================================================\n",
" ========================> INITIALIZATION <=========================\n",
@ -588,15 +589,15 @@
"\n",
" Reading settings XML file...\n",
" Reading geometry XML file...\n",
" Reading cross sections XML file...\n",
" Reading materials XML file...\n",
" Reading U235 from /home/smharper/openmc/data/nndc_hdf5/U235.h5\n",
" Reading U238 from /home/smharper/openmc/data/nndc_hdf5/U238.h5\n",
" Reading O16 from /home/smharper/openmc/data/nndc_hdf5/O16.h5\n",
" Reading H1 from /home/smharper/openmc/data/nndc_hdf5/H1.h5\n",
" Reading B10 from /home/smharper/openmc/data/nndc_hdf5/B10.h5\n",
" Reading Zr90 from /home/smharper/openmc/data/nndc_hdf5/Zr90.h5\n",
" Maximum neutron transport energy: 20.0000 MeV for U235\n",
" Reading cross sections XML file...\n",
" Reading U235 from /home/romano/openmc/scripts/nndc_hdf5/U235.h5\n",
" Reading U238 from /home/romano/openmc/scripts/nndc_hdf5/U238.h5\n",
" Reading O16 from /home/romano/openmc/scripts/nndc_hdf5/O16.h5\n",
" Reading H1 from /home/romano/openmc/scripts/nndc_hdf5/H1.h5\n",
" Reading B10 from /home/romano/openmc/scripts/nndc_hdf5/B10.h5\n",
" Reading Zr90 from /home/romano/openmc/scripts/nndc_hdf5/Zr90.h5\n",
" Maximum neutron transport energy: 2.00000E+07 eV for U235\n",
" Reading tallies XML file...\n",
" Building neighboring cells lists for each surface...\n",
" Initializing source particles...\n",
@ -636,20 +637,20 @@
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 2.9900E-01 seconds\n",
" Reading cross sections = 1.8000E-01 seconds\n",
" Total time in simulation = 1.6156E+01 seconds\n",
" Time in transport only = 1.6145E+01 seconds\n",
" Time in inactive batches = 2.3940E+00 seconds\n",
" Time in active batches = 1.3762E+01 seconds\n",
" Time synchronizing fission bank = 1.0000E-03 seconds\n",
" Sampling source sites = 1.0000E-03 seconds\n",
" SEND/RECV source sites = 0.0000E+00 seconds\n",
" Time accumulating tallies = 0.0000E+00 seconds\n",
" Total time for finalization = 1.0000E-03 seconds\n",
" Total time elapsed = 1.6476E+01 seconds\n",
" Calculation Rate (inactive) = 5221.39 neutrons/second\n",
" Calculation Rate (active) = 2724.89 neutrons/second\n",
" Total time for initialization = 5.0418E-01 seconds\n",
" Reading cross sections = 3.6765E-01 seconds\n",
" Total time in simulation = 8.8388E+00 seconds\n",
" Time in transport only = 8.7431E+00 seconds\n",
" Time in inactive batches = 1.4676E+00 seconds\n",
" Time in active batches = 7.3713E+00 seconds\n",
" Time synchronizing fission bank = 2.2671E-03 seconds\n",
" Sampling source sites = 1.6677E-03 seconds\n",
" SEND/RECV source sites = 5.5964E-04 seconds\n",
" Time accumulating tallies = 9.0487E-05 seconds\n",
" Total time for finalization = 2.7160E-03 seconds\n",
" Total time elapsed = 9.3633E+00 seconds\n",
" Calculation Rate (inactive) = 8517.40 neutrons/second\n",
" Calculation Rate (active) = 5087.33 neutrons/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
@ -798,8 +799,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -810,7 +811,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>total</td>\n",
" <td>(absorption + current)</td>\n",
" <td>0.695303</td>\n",
@ -821,11 +822,11 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide score \\\n",
"0 0.00e+00 6.25e-07 total (absorption + current) \n",
" energy low [eV] energy high [eV] nuclide score mean \\\n",
"0 0.00e+00 6.25e-01 total (absorption + current) 6.95e-01 \n",
"\n",
" mean std. dev. \n",
"0 6.95e-01 5.09e-03 "
" std. dev. \n",
"0 5.09e-03 "
]
},
"execution_count": 25,
@ -866,8 +867,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -878,7 +879,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>total</td>\n",
" <td>nu-fission</td>\n",
" <td>1.202639</td>\n",
@ -889,8 +890,8 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n",
"0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.03e-02"
" energy low [eV] energy high [eV] nuclide score mean std. dev.\n",
"0 0.00e+00 6.25e-01 total nu-fission 1.20e+00 1.03e-02"
]
},
"execution_count": 26,
@ -929,8 +930,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>cell</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
@ -942,7 +943,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>10000</td>\n",
" <td>total</td>\n",
" <td>absorption</td>\n",
@ -954,8 +955,8 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] cell nuclide score mean \\\n",
"0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n",
" energy low [eV] energy high [eV] cell nuclide score mean \\\n",
"0 0.00e+00 6.25e-01 10000 total absorption 7.49e-01 \n",
"\n",
" std. dev. \n",
"0 6.73e-03 "
@ -995,8 +996,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>cell</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
@ -1008,7 +1009,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>10000</td>\n",
" <td>total</td>\n",
" <td>(nu-fission / absorption)</td>\n",
@ -1020,8 +1021,8 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] cell nuclide \\\n",
"0 0.00e+00 6.25e-07 10000 total \n",
" energy low [eV] energy high [eV] cell nuclide \\\n",
"0 0.00e+00 6.25e-01 10000 total \n",
"\n",
" score mean std. dev. \n",
"0 (nu-fission / absorption) 1.66e+00 1.57e-02 "
@ -1060,8 +1061,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1072,7 +1073,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>total</td>\n",
" <td>(absorption + current)</td>\n",
" <td>0.985102</td>\n",
@ -1083,11 +1084,11 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide score \\\n",
"0 0.00e+00 6.25e-07 total (absorption + current) \n",
" energy low [eV] energy high [eV] nuclide score mean \\\n",
"0 0.00e+00 6.25e-01 total (absorption + current) 9.85e-01 \n",
"\n",
" mean std. dev. \n",
"0 9.85e-01 5.86e-03 "
" std. dev. \n",
"0 5.86e-03 "
]
},
"execution_count": 29,
@ -1122,8 +1123,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1134,7 +1135,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>total</td>\n",
" <td>(absorption / (absorption + current))</td>\n",
" <td>0.997407</td>\n",
@ -1145,8 +1146,8 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] nuclide \\\n",
"0 0.00e+00 6.25e-07 total \n",
" energy low [eV] energy high [eV] nuclide \\\n",
"0 0.00e+00 6.25e-01 total \n",
"\n",
" score mean std. dev. \n",
"0 (absorption / (absorption + current)) 9.97e-01 8.49e-03 "
@ -1184,8 +1185,8 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>cell</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
@ -1197,7 +1198,7 @@
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.625</td>\n",
" <td>10000</td>\n",
" <td>total</td>\n",
" <td>((((((absorption + current) * nu-fission) * ab...</td>\n",
@ -1209,8 +1210,8 @@
"</div>"
],
"text/plain": [
" energy low [MeV] energy high [MeV] cell nuclide \\\n",
"0 0.00e+00 6.25e-07 10000 total \n",
" energy low [eV] energy high [eV] cell nuclide \\\n",
"0 0.00e+00 6.25e-01 10000 total \n",
"\n",
" score mean std. dev. \n",
"0 ((((((absorption + current) * nu-fission) * ab... 1.02e+00 2.06e-02 "
@ -1267,8 +1268,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1279,8 +1280,8 @@
" <tr>\n",
" <th>0</th>\n",
" <td>10000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>6.662479e-07</td>\n",
@ -1289,8 +1290,8 @@
" <tr>\n",
" <th>1</th>\n",
" <td>10000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>2.099897e-01</td>\n",
@ -1299,8 +1300,8 @@
" <tr>\n",
" <th>2</th>\n",
" <td>10000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>3.568130e-01</td>\n",
@ -1309,8 +1310,8 @@
" <tr>\n",
" <th>3</th>\n",
" <td>10000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>5.555326e-03</td>\n",
@ -1319,8 +1320,8 @@
" <tr>\n",
" <th>4</th>\n",
" <td>10000</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>7.215044e-03</td>\n",
@ -1329,8 +1330,8 @@
" <tr>\n",
" <th>5</th>\n",
" <td>10000</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>(U238 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>2.273966e-01</td>\n",
@ -1339,8 +1340,8 @@
" <tr>\n",
" <th>6</th>\n",
" <td>10000</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(nu-fission / flux)</td>\n",
" <td>7.969615e-03</td>\n",
@ -1349,8 +1350,8 @@
" <tr>\n",
" <th>7</th>\n",
" <td>10000</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>(U235 / total)</td>\n",
" <td>(scatter / flux)</td>\n",
" <td>3.362798e-03</td>\n",
@ -1361,15 +1362,15 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide \\\n",
"0 10000 0.00e+00 6.25e-07 (U238 / total) \n",
"1 10000 0.00e+00 6.25e-07 (U238 / total) \n",
"2 10000 0.00e+00 6.25e-07 (U235 / total) \n",
"3 10000 0.00e+00 6.25e-07 (U235 / total) \n",
"4 10000 6.25e-07 2.00e+01 (U238 / total) \n",
"5 10000 6.25e-07 2.00e+01 (U238 / total) \n",
"6 10000 6.25e-07 2.00e+01 (U235 / total) \n",
"7 10000 6.25e-07 2.00e+01 (U235 / total) \n",
" cell energy low [eV] energy high [eV] nuclide \\\n",
"0 10000 0.00e+00 6.25e-01 (U238 / total) \n",
"1 10000 0.00e+00 6.25e-01 (U238 / total) \n",
"2 10000 0.00e+00 6.25e-01 (U235 / total) \n",
"3 10000 0.00e+00 6.25e-01 (U235 / total) \n",
"4 10000 6.25e-01 2.00e+07 (U238 / total) \n",
"5 10000 6.25e-01 2.00e+07 (U238 / total) \n",
"6 10000 6.25e-01 2.00e+07 (U235 / total) \n",
"7 10000 6.25e-01 2.00e+07 (U235 / total) \n",
"\n",
" score mean std. dev. \n",
"0 (nu-fission / flux) 6.66e-07 6.04e-09 \n",
@ -1474,7 +1475,7 @@
"source": [
"# Show how to use Tally.get_values(...) with a CrossFilter and CrossScore\n",
"fast_scatter_xs = fuel_xs.get_values(filters=[openmc.EnergyFilter], \n",
" filter_bins=[((0.625e-6, 20.),)], \n",
" filter_bins=[((0.625, 20.0e6),)], \n",
" scores=['(scatter / flux)'])\n",
"print(fast_scatter_xs)"
]
@ -1502,8 +1503,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1514,8 +1515,8 @@
" <tr>\n",
" <th>0</th>\n",
" <td>10000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>U238</td>\n",
" <td>nu-fission</td>\n",
" <td>0.000002</td>\n",
@ -1524,8 +1525,8 @@
" <tr>\n",
" <th>1</th>\n",
" <td>10000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.250000e-07</td>\n",
" <td>0.000</td>\n",
" <td>6.250000e-01</td>\n",
" <td>U235</td>\n",
" <td>nu-fission</td>\n",
" <td>0.856784</td>\n",
@ -1534,8 +1535,8 @@
" <tr>\n",
" <th>2</th>\n",
" <td>10000</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>U238</td>\n",
" <td>nu-fission</td>\n",
" <td>0.082495</td>\n",
@ -1544,8 +1545,8 @@
" <tr>\n",
" <th>3</th>\n",
" <td>10000</td>\n",
" <td>6.250000e-07</td>\n",
" <td>2.000000e+01</td>\n",
" <td>0.625</td>\n",
" <td>2.000000e+07</td>\n",
" <td>U235</td>\n",
" <td>nu-fission</td>\n",
" <td>0.091123</td>\n",
@ -1556,11 +1557,11 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide score mean \\\n",
"0 10000 0.00e+00 6.25e-07 U238 nu-fission 1.60e-06 \n",
"1 10000 0.00e+00 6.25e-07 U235 nu-fission 8.57e-01 \n",
"2 10000 6.25e-07 2.00e+01 U238 nu-fission 8.25e-02 \n",
"3 10000 6.25e-07 2.00e+01 U235 nu-fission 9.11e-02 \n",
" cell energy low [eV] energy high [eV] nuclide score mean \\\n",
"0 10000 0.00e+00 6.25e-01 U238 nu-fission 1.60e-06 \n",
"1 10000 0.00e+00 6.25e-01 U235 nu-fission 8.57e-01 \n",
"2 10000 6.25e-01 2.00e+07 U238 nu-fission 8.25e-02 \n",
"3 10000 6.25e-01 2.00e+07 U235 nu-fission 9.11e-02 \n",
"\n",
" std. dev. \n",
"0 1.06e-08 \n",
@ -1596,8 +1597,8 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>cell</th>\n",
" <th>energy low [MeV]</th>\n",
" <th>energy high [MeV]</th>\n",
" <th>energy low [eV]</th>\n",
" <th>energy high [eV]</th>\n",
" <th>nuclide</th>\n",
" <th>score</th>\n",
" <th>mean</th>\n",
@ -1608,8 +1609,8 @@
" <tr>\n",
" <th>0</th>\n",
" <td>10002</td>\n",
" <td>1.000000e-08</td>\n",
" <td>1.080060e-07</td>\n",
" <td>1.000000e-02</td>\n",
" <td>1.080060e-01</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>4.547947</td>\n",
@ -1618,8 +1619,8 @@
" <tr>\n",
" <th>1</th>\n",
" <td>10002</td>\n",
" <td>1.080060e-07</td>\n",
" <td>1.166529e-06</td>\n",
" <td>1.080060e-01</td>\n",
" <td>1.166529e+00</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.003068</td>\n",
@ -1628,8 +1629,8 @@
" <tr>\n",
" <th>2</th>\n",
" <td>10002</td>\n",
" <td>1.166529e-06</td>\n",
" <td>1.259921e-05</td>\n",
" <td>1.166529e+00</td>\n",
" <td>1.259921e+01</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>1.647225</td>\n",
@ -1638,8 +1639,8 @@
" <tr>\n",
" <th>3</th>\n",
" <td>10002</td>\n",
" <td>1.259921e-05</td>\n",
" <td>1.360790e-04</td>\n",
" <td>1.259921e+01</td>\n",
" <td>1.360790e+02</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>1.831367</td>\n",
@ -1648,8 +1649,8 @@
" <tr>\n",
" <th>4</th>\n",
" <td>10002</td>\n",
" <td>1.360790e-04</td>\n",
" <td>1.469734e-03</td>\n",
" <td>1.360790e+02</td>\n",
" <td>1.469734e+03</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.039613</td>\n",
@ -1658,8 +1659,8 @@
" <tr>\n",
" <th>5</th>\n",
" <td>10002</td>\n",
" <td>1.469734e-03</td>\n",
" <td>1.587401e-02</td>\n",
" <td>1.469734e+03</td>\n",
" <td>1.587401e+04</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.137523</td>\n",
@ -1668,8 +1669,8 @@
" <tr>\n",
" <th>6</th>\n",
" <td>10002</td>\n",
" <td>1.587401e-02</td>\n",
" <td>1.714488e-01</td>\n",
" <td>1.587401e+04</td>\n",
" <td>1.714488e+05</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.170725</td>\n",
@ -1678,8 +1679,8 @@
" <tr>\n",
" <th>7</th>\n",
" <td>10002</td>\n",
" <td>1.714488e-01</td>\n",
" <td>1.851749e+00</td>\n",
" <td>1.714488e+05</td>\n",
" <td>1.851749e+06</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>2.002724</td>\n",
@ -1688,8 +1689,8 @@
" <tr>\n",
" <th>8</th>\n",
" <td>10002</td>\n",
" <td>1.851749e+00</td>\n",
" <td>2.000000e+01</td>\n",
" <td>1.851749e+06</td>\n",
" <td>2.000000e+07</td>\n",
" <td>H1</td>\n",
" <td>scatter</td>\n",
" <td>0.371624</td>\n",
@ -1700,16 +1701,16 @@
"</div>"
],
"text/plain": [
" cell energy low [MeV] energy high [MeV] nuclide score mean \\\n",
"0 10002 1.00e-08 1.08e-07 H1 scatter 4.55e+00 \n",
"1 10002 1.08e-07 1.17e-06 H1 scatter 2.00e+00 \n",
"2 10002 1.17e-06 1.26e-05 H1 scatter 1.65e+00 \n",
"3 10002 1.26e-05 1.36e-04 H1 scatter 1.83e+00 \n",
"4 10002 1.36e-04 1.47e-03 H1 scatter 2.04e+00 \n",
"5 10002 1.47e-03 1.59e-02 H1 scatter 2.14e+00 \n",
"6 10002 1.59e-02 1.71e-01 H1 scatter 2.17e+00 \n",
"7 10002 1.71e-01 1.85e+00 H1 scatter 2.00e+00 \n",
"8 10002 1.85e+00 2.00e+01 H1 scatter 3.72e-01 \n",
" cell energy low [eV] energy high [eV] nuclide score mean \\\n",
"0 10002 1.00e-02 1.08e-01 H1 scatter 4.55e+00 \n",
"1 10002 1.08e-01 1.17e+00 H1 scatter 2.00e+00 \n",
"2 10002 1.17e+00 1.26e+01 H1 scatter 1.65e+00 \n",
"3 10002 1.26e+01 1.36e+02 H1 scatter 1.83e+00 \n",
"4 10002 1.36e+02 1.47e+03 H1 scatter 2.04e+00 \n",
"5 10002 1.47e+03 1.59e+04 H1 scatter 2.14e+00 \n",
"6 10002 1.59e+04 1.71e+05 H1 scatter 2.17e+00 \n",
"7 10002 1.71e+05 1.85e+06 H1 scatter 2.00e+00 \n",
"8 10002 1.85e+06 2.00e+07 H1 scatter 3.72e-01 \n",
"\n",
" std. dev. \n",
"0 2.80e-02 \n",
@ -1735,15 +1736,6 @@
" filters=[openmc.CellFilter], filter_bins=[(moderator_cell.id,)])\n",
"slice_test.get_pandas_dataframe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {

View file

@ -1520,7 +1520,7 @@ The ``<tally>`` element accepts the following sub-elements:
.. code-block:: xml
<filter type="energy" bins="0.0 1.0 20.0" />
<filter type="energy" bins="0.0 1.0e6 20.0e6" />
then two energy bins will be created, one with energies between 0 and
1 MeV and the other with energies between 1 and 20 MeV.
@ -1535,7 +1535,7 @@ The ``<tally>`` element accepts the following sub-elements:
.. code-block:: xml
<filter type="energyout" bins="0.0 1.0 20.0" />
<filter type="energyout" bins="0.0 1.0e6 20.0e6" />
then two post-collision energy bins will be created, one with
energies between 0 and 1 MeV and the other with energies between
@ -1854,7 +1854,7 @@ The ``<tally>`` element accepts the following sub-elements:
| |particles. The neutrino energy does not contribute |
| |to this response. The prompt and delayed |
| |:math:`\gamma`-rays are assumed to deposit their |
| |energy locally. Units are MeV per source particle. |
| |energy locally. Units are eV per source particle. |
+----------------------+---------------------------------------------------+
|fission-q-prompt |The prompt fission energy production rate. This |
| |energy comes in the form of fission fragment |
@ -1863,7 +1863,7 @@ The ``<tally>`` element accepts the following sub-elements:
| |incident energy and it requires that the nuclear |
| |data library contains the optional fission energy |
| |release data. Energy is assumed to be deposited |
| |locally. Units are MeV per source particle. |
| |locally. Units are eV per source particle. |
+----------------------+---------------------------------------------------+
|fission-q-recoverable |The recoverable fission energy production rate. |
| |This energy comes in the form of fission fragment |
@ -1874,7 +1874,7 @@ The ``<tally>`` element accepts the following sub-elements:
| |incident neutron energy and it requires that the |
| |nuclear data library contains the optional fission |
| |energy release data. Energy is assumed to be |
| |deposited locally. Units are MeV per source |
| |deposited locally. Units are eV per source |
| |paticle. |
+----------------------+---------------------------------------------------+
|decay-rate |The delayed-nu-fission-weighted decay rate where |
@ -2296,7 +2296,7 @@ attributes/sub-elements:
The width of mesh cells in each direction.
:energy:
Energy bins [in MeV], listed in ascending order (e.g. 0.0 0.625e-7 20.0)
Energy bins [in eV], listed in ascending order (e.g. 0.0 0.625 20.0e6)
for CMFD tallies and acceleration. If no energy bins are listed, OpenMC
automatically assumes a one energy group calculation over the entire
energy range.

View file

@ -101,8 +101,8 @@ settings_file.export_to_xml()
# Instantiate some tally Filters
cell_filter = openmc.CellFilter(100)
energy_filter = openmc.EnergyFilter([0., 20.])
energyout_filter = openmc.EnergyoutFilter([0., 20.])
energy_filter = openmc.EnergyFilter([0., 20.e6])
energyout_filter = openmc.EnergyoutFilter([0., 20.e6])
# Instantiate the first Tally
first_tally = openmc.Tally(tally_id=1, name='first tally')

View file

@ -181,7 +181,7 @@ mesh.lower_left = [-0.62992, -0.62992, -1.e50]
mesh.upper_right = [0.62992, 0.62992, 1.e50]
# Instantiate some tally Filters
energy_filter = openmc.EnergyFilter([0., 4.e-6, 20.])
energy_filter = openmc.EnergyFilter([0., 4., 20.e6])
mesh_filter = openmc.MeshFilter(mesh)
# Instantiate the Tally

View file

@ -15,8 +15,8 @@ particles = 1000
###############################################################################
# Instantiate the energy group data
groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6,
1.0E-4, 1.0E-3, 0.5, 1.0, 20.0])
groups = openmc.mgxs.EnergyGroups(group_edges=[
1e-5, 0.0635, 10.0, 1.0e2, 1.0e3, 0.5e6, 1.0e6, 20.0e6])
# Instantiate the 7-group (C5G7) cross section data
uo2_xsdata = openmc.XSdata('UO2', groups)
@ -156,8 +156,8 @@ mesh.lower_left = [-0.63, -0.63, -1.e50]
mesh.upper_right = [0.63, 0.63, 1.e50]
# Instantiate some tally Filters
energy_filter = openmc.EnergyFilter([1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3,
0.5, 1.0, 20.0])
energy_filter = openmc.EnergyFilter([1e-5, 0.0635, 10.0, 1.0e2, 1.0e3, 0.5e6,
1.0e6, 20.0e6])
mesh_filter = openmc.MeshFilter(mesh)
# Instantiate the Tally

View file

@ -8,14 +8,14 @@
<tally id="2">
<filter type="cell" bins="100" />
<filter type="energy" bins="0 20.0" />
<filter type="energy" bins="0 20.0e6" />
<scores>total scatter nu-scatter absorption fission nu-fission</scores>
</tally>
<tally id="3">
<filter type="cell" bins="100" />
<filter type="energy" bins="0 20.0" />
<filter type="energyout" bins="0 20.0" />
<filter type="energy" bins="0 20.0e6" />
<filter type="energyout" bins="0 20.0e6" />
<scores>scatter nu-scatter nu-fission</scores>
</tally>

View file

@ -9,7 +9,7 @@
<tally id="1">
<filter type="mesh" bins="1" />
<filter type="energy" bins="0. 4.e-6 20.0" />
<filter type="energy" bins="0. 4. 20.0e6" />
<scores>flux fission nu-fission</scores>
</tally>

View file

@ -39,8 +39,8 @@ class CMFDMesh(object):
width : Iterable of float
The width of mesh cells in each direction.
energy : Iterable of float
Energy bins in MeV, listed in ascending order (e.g. [0.0, 0.625e-7,
20.0]) for CMFD tallies and acceleration. If no energy bins are listed,
Energy bins in eV, listed in ascending order (e.g. [0.0, 0.625e-1,
20.0e6]) for CMFD tallies and acceleration. If no energy bins are listed,
OpenMC automatically assumes a one energy group calculation over the
entire energy range.
albedo : Iterable of float

View file

@ -1,3 +1,9 @@
# Version of HDF5 nuclear data format
HDF5_VERSION_MAJOR = 1
HDF5_VERSION_MINOR = 0
HDF5_VERSION = (HDF5_VERSION_MAJOR, HDF5_VERSION_MINOR)
from .data import *
from .neutron import *
from .reaction import *

View file

@ -9,6 +9,7 @@ import openmc.checkvalue as cv
from openmc.mixin import EqualityMixin
from openmc.stats import Univariate, Tabular, Uniform, Legendre
from .function import INTERPOLATION_SCHEME
from .data import EV_PER_MEV
from .endf import get_head_record, get_cont_record, get_tab1_record, \
get_list_record, get_tab2_record
@ -19,14 +20,14 @@ class AngleDistribution(EqualityMixin):
Parameters
----------
energy : Iterable of float
Incoming energies at which distributions exist
Incoming energies in eV at which distributions exist
mu : Iterable of openmc.stats.Univariate
Distribution of scattering cosines corresponding to each incoming energy
Attributes
----------
energy : Iterable of float
Incoming energies at which distributions exist
Incoming energies in eV at which distributions exist
mu : Iterable of openmc.stats.Univariate
Distribution of scattering cosines corresponding to each incoming energy
@ -167,7 +168,7 @@ class AngleDistribution(EqualityMixin):
idx += 1
# Incoming energy grid
energy = ace.xss[idx:idx + n_energies]
energy = ace.xss[idx:idx + n_energies]*EV_PER_MEV
idx += n_energies
# Read locations for angular distributions

View file

@ -9,6 +9,7 @@ from openmc.stats import Tabular, Univariate, Discrete, Mixture, \
Uniform, Legendre
from .function import INTERPOLATION_SCHEME
from .angle_energy import AngleEnergy
from .data import EV_PER_MEV
from .endf import get_list_record, get_tab2_record
@ -328,7 +329,7 @@ class CorrelatedAngleEnergy(AngleEnergy):
# Incoming energies at which distributions exist
idx += 2*n_regions + 1
energy = ace.xss[idx:idx + n_energy_in]
energy = ace.xss[idx:idx + n_energy_in]*EV_PER_MEV
# Location of distributions
idx += n_energy_in
@ -353,12 +354,13 @@ class CorrelatedAngleEnergy(AngleEnergy):
# Secondary energy distribution
n_energy_out = int(ace.xss[idx + 1])
data = ace.xss[idx + 2:idx + 2 + 4*n_energy_out]
data = ace.xss[idx + 2:idx + 2 + 4*n_energy_out].copy()
data.shape = (4, n_energy_out)
data[0,:] *= EV_PER_MEV
# Create continuous distribution
eout_continuous = Tabular(data[0][n_discrete_lines:],
data[1][n_discrete_lines:],
data[1][n_discrete_lines:]/EV_PER_MEV,
INTERPOLATION_SCHEME[intt],
ignore_negative=True)
eout_continuous.c = data[2][n_discrete_lines:]

View file

@ -165,7 +165,10 @@ def atomic_mass(isotope):
return _ATOMIC_MASS.get(isotope.lower())
# The value of the Boltzman constant in units of MeV / K
# The value of the Boltzman constant in units of eV / K
# Values here are from the Committee on Data for Science and Technology
# (CODATA) 2010 recommendation (doi:10.1103/RevModPhys.84.1527).
K_BOLTZMANN = 8.6173324E-11
K_BOLTZMANN = 8.6173324e-5
# Used for converting units in ACE data
EV_PER_MEV = 1.0e6

View file

@ -27,7 +27,7 @@ LIBRARIES = {0: 'ENDF/B', 1: 'ENDF/A', 2: 'JEFF', 3: 'EFF',
35: 'BROND', 36: 'INGDB-90', 37: 'FENDL/A', 41: 'BROND'}
SUM_RULES = {1: [2, 3],
3: [4, 5, 11, 16, 17, 22, 23, 24, 25, 28, 29, 30, 32, 33, 34, 35,
3: [4, 5, 11, 16, 17, 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35,
36, 37, 41, 42, 44, 45, 152, 153, 154, 156, 157, 158, 159, 160,
161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
173, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185,
@ -35,7 +35,7 @@ SUM_RULES = {1: [2, 3],
4: list(range(50, 92)),
16: list(range(875, 892)),
18: [19, 20, 21, 38],
27: [8, 101],
27: [18, 101],
101: [102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114,
115, 116, 117, 155, 182, 191, 192, 193, 197],
103: list(range(600, 650)),

View file

@ -10,6 +10,7 @@ from .function import Tabulated1D, INTERPOLATION_SCHEME
from openmc.stats.univariate import Univariate, Tabular, Discrete, Mixture
import openmc.checkvalue as cv
from openmc.mixin import EqualityMixin
from .data import EV_PER_MEV
from .endf import get_tab1_record, get_tab2_record
@ -318,13 +319,14 @@ class MaxwellEnergy(EnergyDistribution):
Maxwell distribution
"""
# Read nuclear temperature
# Read nuclear temperature -- since units are MeV, convert to eV
theta = Tabulated1D.from_ace(ace, idx)
theta.y *= EV_PER_MEV
# Restriction energy
nr = int(ace.xss[idx])
ne = int(ace.xss[idx + 1 + 2*nr])
u = ace.xss[idx + 2 + 2*nr + 2*ne]
u = ace.xss[idx + 2 + 2*nr + 2*ne]*EV_PER_MEV
return cls(theta, u)
@ -450,13 +452,14 @@ class Evaporation(EnergyDistribution):
Evaporation spectrum
"""
# Read nuclear temperature
# Read nuclear temperature -- since units are MeV, convert to eV
theta = Tabulated1D.from_ace(ace, idx)
theta.y *= EV_PER_MEV
# Restriction energy
nr = int(ace.xss[idx])
ne = int(ace.xss[idx + 1 + 2*nr])
u = ace.xss[idx + 2 + 2*nr + 2*ne]
u = ace.xss[idx + 2 + 2*nr + 2*ne]*EV_PER_MEV
return cls(theta, u)
@ -597,16 +600,18 @@ class WattEnergy(EnergyDistribution):
Watt fission spectrum
"""
# Energy-dependent a parameter
# Energy-dependent a parameter -- units are MeV, convert to eV
a = Tabulated1D.from_ace(ace, idx)
a.y *= EV_PER_MEV
# Advance index
nr = int(ace.xss[idx])
ne = int(ace.xss[idx + 1 + 2*nr])
idx += 2 + 2*nr + 2*ne
# Energy-dependent b parameter
# Energy-dependent b parameter -- units are MeV^-1
b = Tabulated1D.from_ace(ace, idx)
b.y /= EV_PER_MEV
# Advance index
nr = int(ace.xss[idx])
@ -614,7 +619,7 @@ class WattEnergy(EnergyDistribution):
idx += 2 + 2*nr + 2*ne
# Restriction energy
u = ace.xss[idx]
u = ace.xss[idx]*EV_PER_MEV
return cls(a, b, u)
@ -887,7 +892,7 @@ class DiscretePhoton(EnergyDistribution):
"""
primary_flag = int(ace.xss[idx])
energy = ace.xss[idx + 1]
energy = ace.xss[idx + 1]*EV_PER_MEV
return cls(primary_flag, energy, ace.atomic_weight_ratio)
@ -983,7 +988,8 @@ class LevelInelastic(EnergyDistribution):
Level inelastic scattering distribution
"""
threshold, mass_ratio = ace.xss[idx:idx + 2]
threshold = ace.xss[idx]*EV_PER_MEV
mass_ratio = ace.xss[idx + 1]
return cls(threshold, mass_ratio)
@ -1221,7 +1227,7 @@ class ContinuousTabular(EnergyDistribution):
# Incoming energies at which distributions exist
idx += 2*n_regions + 1
energy = ace.xss[idx:idx + n_energy_in]
energy = ace.xss[idx:idx + n_energy_in]*EV_PER_MEV
# Location of distributions
idx += n_energy_in
@ -1244,12 +1250,13 @@ class ContinuousTabular(EnergyDistribution):
intt = 2
n_energy_out = int(ace.xss[idx + 1])
data = ace.xss[idx + 2:idx + 2 + 3*n_energy_out]
data = ace.xss[idx + 2:idx + 2 + 3*n_energy_out].copy()
data.shape = (3, n_energy_out)
data[0,:] *= EV_PER_MEV
# Create continuous distribution
eout_continuous = Tabular(data[0][n_discrete_lines:],
data[1][n_discrete_lines:],
data[1][n_discrete_lines:]/EV_PER_MEV,
INTERPOLATION_SCHEME[intt])
eout_continuous.c = data[2][n_discrete_lines:]

View file

@ -6,22 +6,20 @@ import sys
import h5py
import numpy as np
from .data import ATOMIC_SYMBOL
from .data import ATOMIC_SYMBOL, EV_PER_MEV
from .endf import get_cont_record, get_list_record, Evaluation
from .function import Function1D, Tabulated1D, Polynomial, Sum
import openmc.checkvalue as cv
from openmc.mixin import EqualityMixin
def _extract_458_data(ev, units='eV'):
def _extract_458_data(ev):
"""Read an ENDF file and extract the MF=1, MT=458 values.
Parameters
----------
ev : openmc.data.Evaluation
ENDF evaluation
units : {'eV', 'MeV'}
The units that are used in values returned.
Returns
-------
@ -38,7 +36,6 @@ def _extract_458_data(ev, units='eV'):
"""
cv.check_type('evaluation', ev, Evaluation)
cv.check_value('energy units', units, ('eV', 'MeV'))
if not ev.target['fissionable']:
# This nuclide isn't fissionable.
@ -84,17 +81,10 @@ def _extract_458_data(ev, units='eV'):
# If we found the error, reduce all 2nd-order coeffs by 10**6.
if error_present:
for coeffs in value.values(): coeffs[2] *= 1e-6
for coeffs in uncertainty.values(): coeffs[2] *= 1e-6
# Convert eV to MeV.
if units == 'MeV':
for coeffs in value.values():
for i in range(len(coeffs)):
coeffs[i] *= 10**(-6 + 6*i)
for coeffs in uncertainty.values():
for i in range(len(coeffs)):
coeffs[i] *= 10**(-6 + 6*i)
for coeffs in value.values():
coeffs[2] /= EV_PER_MEV
for coeffs in uncertainty.values():
coeffs[2] /= EV_PER_MEV
return value, uncertainty
@ -161,7 +151,7 @@ def write_compact_458_library(endf_files, output_name='fission_Q_data.h5',
continue
# Get the important bits.
data = _extract_458_data(ev, 'MeV')
data = _extract_458_data(ev)
if data is None: continue
value, uncertainty = data
@ -356,7 +346,7 @@ class FissionEnergyRelease(EqualityMixin):
self._neutrinos = energy_release
@classmethod
def _from_dictionary(cls, energy_release, incident_neutron, units='eV'):
def _from_dictionary(cls, energy_release, incident_neutron):
"""Generate fission energy release data from a dictionary.
Parameters
@ -368,8 +358,6 @@ class FissionEnergyRelease(EqualityMixin):
data, more for polynomial data.
incident_neutron : openmc.data.IncidentNeutron
Corresponding incident neutron dataset
units : {'eV', 'MeV'}
The energy units used in the returned object.
Returns
-------
@ -377,8 +365,6 @@ class FissionEnergyRelease(EqualityMixin):
Fission energy release data
"""
cv.check_value('energy units', units, ('eV', 'MeV'))
out = cls()
# How many coefficients are given for each component? If we only find
@ -429,28 +415,24 @@ class FissionEnergyRelease(EqualityMixin):
raise ValueError('Ambiguous prompt/total nu value.')
nu = nu[0]
if units == 'eV':
nu_const = 8.07e6
else:
nu_const = 8.07
if isinstance(nu, Tabulated1D):
ENP = deepcopy(nu)
ENP.y = (energy_release['ENP'] + 1.307 * nu.x
- nu_const * (nu.y - nu.y[0]))
- 8.07e6 * (nu.y - nu.y[0]))
elif isinstance(nu, Polynomial):
if len(nu) == 1:
ENP = Polynomial([energy_release['ENP'][0], 1.307])
else:
ENP = Polynomial(
[energy_release['ENP'][0], 1.307 - nu_const*nu.coef[1]]
+ [-nu_const*c for c in nu.coef[2:]])
[energy_release['ENP'][0], 1.307 - 8.07e6*nu.coef[1]]
+ [-8.07e6*c for c in nu.coef[2:]])
out.prompt_neutrons = ENP
return out
@classmethod
def from_endf(cls, ev, incident_neutron, units='eV'):
def from_endf(cls, ev, incident_neutron):
"""Generate fission energy release data from an ENDF file.
Parameters
@ -459,8 +441,6 @@ class FissionEnergyRelease(EqualityMixin):
ENDF evaluation
incident_neutron : openmc.data.IncidentNeutron
Corresponding incident neutron dataset
units : {'eV', 'MeV'}
The energy units used in the returned object.
Returns
-------
@ -484,10 +464,10 @@ class FissionEnergyRelease(EqualityMixin):
raise ValueError('The ENDF evaluation is not fissionable.')
# Read the 458 data from the ENDF file.
value, uncertainty = _extract_458_data(ev, units)
value, uncertainty = _extract_458_data(ev)
# Build the object.
return cls._from_dictionary(value, incident_neutron, units)
return cls._from_dictionary(value, incident_neutron)
@classmethod
def from_hdf5(cls, group):

View file

@ -8,6 +8,7 @@ import numpy as np
import openmc.data
import openmc.checkvalue as cv
from openmc.mixin import EqualityMixin
from .data import EV_PER_MEV
INTERPOLATION_SCHEME = {1: 'histogram', 2: 'linear-linear', 3: 'linear-log',
4: 'log-linear', 5: 'log-log'}
@ -315,7 +316,7 @@ class Tabulated1D(Function1D):
return cls(x, y, breakpoints, interpolation)
@classmethod
def from_ace(cls, ace, idx=0):
def from_ace(cls, ace, idx=0, convert_units=True):
"""Create a Tabulated1D object from an ACE table.
Parameters
@ -324,6 +325,9 @@ class Tabulated1D(Function1D):
An ACE table
idx : int
Offset to read from in XSS array (default of zero)
convert_units : bool
If the abscissa represents energy, indicate whether to convert MeV
to eV.
Returns
-------
@ -348,8 +352,11 @@ class Tabulated1D(Function1D):
# Get (x,y) pairs
idx += 2*n_regions + 1
x = ace.xss[idx:idx + n_pairs]
y = ace.xss[idx + n_pairs:idx + 2*n_pairs]
x = ace.xss[idx:idx + n_pairs].copy()
y = ace.xss[idx + n_pairs:idx + 2*n_pairs].copy()
if convert_units:
x *= EV_PER_MEV
return Tabulated1D(x, y, breakpoints, interpolation)

View file

@ -8,6 +8,7 @@ import openmc.checkvalue as cv
from openmc.stats import Tabular, Univariate, Discrete, Mixture
from .function import Tabulated1D, INTERPOLATION_SCHEME
from .angle_energy import AngleEnergy
from .data import EV_PER_MEV
from .endf import get_list_record, get_tab2_record
@ -290,7 +291,7 @@ class KalbachMann(AngleEnergy):
# Incoming energies at which distributions exist
idx += 2*n_regions + 1
energy = ace.xss[idx:idx + n_energy_in]
energy = ace.xss[idx:idx + n_energy_in]*EV_PER_MEV
# Location of distributions
idx += n_energy_in
@ -315,12 +316,13 @@ class KalbachMann(AngleEnergy):
intt = 2
n_energy_out = int(ace.xss[idx + 1])
data = ace.xss[idx + 2:idx + 2 + 5*n_energy_out]
data = ace.xss[idx + 2:idx + 2 + 5*n_energy_out].copy()
data.shape = (5, n_energy_out)
data[0,:] *= EV_PER_MEV
# Create continuous distribution
eout_continuous = Tabular(data[0][n_discrete_lines:],
data[1][n_discrete_lines:],
data[1][n_discrete_lines:]/EV_PER_MEV,
INTERPOLATION_SCHEME[intt],
ignore_negative=True)
eout_continuous.c = data[2][n_discrete_lines:]

View file

@ -18,7 +18,7 @@ class NBodyPhaseSpace(AngleEnergy):
atomic_weight_ratio : float
Atomic weight ratio of target nuclide
q_value : float
Q value for reaction in MeV or eV, depending on the data source.
Q value for reaction in eV
Attributes
----------
@ -29,7 +29,7 @@ class NBodyPhaseSpace(AngleEnergy):
atomic_weight_ratio : float
Atomic weight ratio of target nuclide
q_value : float
Q value for reaction in MeV or eV, depending on the data source.
Q value for reaction in eV
"""
@ -130,7 +130,7 @@ class NBodyPhaseSpace(AngleEnergy):
Index in XSS array of the start of the energy distribution data
(LDIS + LOCC - 1)
q_value : float
Q-value for reaction in MeV
Q-value for reaction in eV
Returns
-------

View file

@ -9,8 +9,9 @@ from six import string_types
import numpy as np
import h5py
from . import HDF5_VERSION, HDF5_VERSION_MAJOR
from .ace import Table, get_table
from .data import ATOMIC_SYMBOL, K_BOLTZMANN
from .data import ATOMIC_SYMBOL, K_BOLTZMANN, EV_PER_MEV
from .fission_energy import FissionEnergyRelease
from .function import Tabulated1D, Sum, ResonancesWithBackground
from .endf import Evaluation, SUM_RULES
@ -110,7 +111,7 @@ class IncidentNeutron(EqualityMixin):
Atomic mass ratio of the target nuclide.
kTs : Iterable of float
List of temperatures of the target nuclide in the data set.
The temperatures have units of MeV.
The temperatures have units of eV.
Attributes
----------
@ -121,7 +122,7 @@ class IncidentNeutron(EqualityMixin):
atomic_weight_ratio : float
Atomic weight ratio of the target nuclide.
energy : dict of numpy.ndarray
The energy values (MeV) at which reaction cross-sections are tabulated.
The energy values (eV) at which reaction cross-sections are tabulated.
They keys of the dict are the temperature string ('294K') for each
set of energies
fission_energy : None or openmc.data.FissionEnergyRelease
@ -148,7 +149,7 @@ class IncidentNeutron(EqualityMixin):
rounded to the nearest integer; e.g., '294K'
kTs : Iterable of float
List of temperatures of the target nuclide in the data set.
The temperatures have units of MeV.
The temperatures have units of eV.
urr : dict
Dictionary whose keys are temperatures (e.g., '294K') and values are
unresolved resonance region probability tables.
@ -391,7 +392,9 @@ class IncidentNeutron(EqualityMixin):
raise NotImplementedError('Cannot export incident neutron data that '
'originated from an ENDF file.')
# Open file and write version
f = h5py.File(path, mode, libver='latest')
f.attrs['version'] = np.array(HDF5_VERSION)
# Write basic data
g = f.create_group(self.name)
@ -454,6 +457,21 @@ class IncidentNeutron(EqualityMixin):
group = group_or_filename
else:
h5file = h5py.File(group_or_filename, 'r')
# Make sure version matches
if 'version' in h5file.attrs:
major, minor = h5file.attrs['version']
if major != HDF5_VERSION_MAJOR:
raise IOError(
'HDF5 data format uses version {}.{} whereas your '
'installation of the OpenMC Python API expects version '
'{}.x.'.format(major, minor, HDF5_VERSION_MAJOR))
else:
raise IOError(
'HDF5 data does not indicate a version. Your installation of '
'the OpenMC Python API expects version {}.x data.'
.format(HDF5_VERSION_MAJOR))
group = list(h5file.values())[0]
name = group.name[1:]
@ -546,7 +564,7 @@ class IncidentNeutron(EqualityMixin):
_get_metadata(int(zaid), metastable_scheme)
# Assign temperature to the running list
kTs = [ace.temperature]
kTs = [ace.temperature*EV_PER_MEV]
data = cls(name, Z, mass_number, metastable,
ace.atomic_weight_ratio, kTs)
@ -556,7 +574,7 @@ class IncidentNeutron(EqualityMixin):
# Read energy grid
n_energy = ace.nxs[3]
energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy]
energy = ace.xss[ace.jxs[1]:ace.jxs[1] + n_energy]*EV_PER_MEV
data.energy[strT] = energy
total_xs = ace.xss[ace.jxs[1] + n_energy:ace.jxs[1] + 2 * n_energy]
absorption_xs = ace.xss[ace.jxs[1] + 2 * n_energy:ace.jxs[1] +

View file

@ -14,7 +14,7 @@ from openmc.stats import Uniform, Tabular, Legendre
from .angle_distribution import AngleDistribution
from .angle_energy import AngleEnergy
from .correlated import CorrelatedAngleEnergy
from .data import ATOMIC_SYMBOL, K_BOLTZMANN
from .data import ATOMIC_SYMBOL, K_BOLTZMANN, EV_PER_MEV
from .endf import get_head_record, get_tab1_record, get_list_record, \
get_tab2_record, get_cont_record
from .energy_distribution import EnergyDistribution, LevelInelastic, \
@ -222,7 +222,9 @@ def _get_fission_products_ace(ace):
if LNU == 1:
# Polynomial function form of nu
NC = int(ace.xss[idx+1])
coefficients = ace.xss[idx+2 : idx+2+NC]
coefficients = ace.xss[idx+2 : idx+2+NC].copy()
for i in range(coefficients.size):
coefficients[i] *= EV_PER_MEV**(-i)
neutron.yield_ = Polynomial(coefficients)
elif LNU == 2:
# Tabular data form of nu
@ -241,7 +243,9 @@ def _get_fission_products_ace(ace):
if LNU == 1:
# Polynomial function form of nu
NC = int(ace.xss[idx+1])
coefficients = ace.xss[idx+2 : idx+2+NC]
coefficients = ace.xss[idx+2 : idx+2+NC].copy()
for i in range(coefficients.size):
coefficients[i] *= EV_PER_MEV**(-i)
prompt_neutron.yield_ = Polynomial(coefficients)
elif LNU == 2:
# Tabular data form of nu
@ -257,7 +261,9 @@ def _get_fission_products_ace(ace):
if LNU == 1:
# Polynomial function form of nu
NC = int(ace.xss[idx+1])
coefficients = ace.xss[idx+2 : idx+2+NC]
coefficients = ace.xss[idx+2 : idx+2+NC].copy()
for i in range(coefficients.size):
coefficients[i] *= EV_PER_MEV**(-i)
total_neutron.yield_ = Polynomial(coefficients)
elif LNU == 2:
# Tabular data form of nu
@ -521,7 +527,7 @@ def _get_photon_products_ace(ace, rx):
threshold_idx = int(ace.xss[idx]) - 1
n_energy = int(ace.xss[idx + 1])
energy = ace.xss[ace.jxs[1] + threshold_idx:
ace.jxs[1] + threshold_idx + n_energy]
ace.jxs[1] + threshold_idx + n_energy]*EV_PER_MEV
# Get photon production cross section
photon_prod_xs = ace.xss[idx + 2:idx + 2 + n_energy]
@ -697,7 +703,7 @@ class Reaction(EqualityMixin):
mt : int
The ENDF MT number for this reaction.
q_value : float
The Q-value of this reaction in MeV or eV, depending on the data source.
The Q-value of this reaction in eV.
xs : dict of str to openmc.data.Function1D
Microscopic cross section for this reaction as a function of incident
energy; these cross sections are provided in a dictionary where the key
@ -861,18 +867,18 @@ class Reaction(EqualityMixin):
def from_ace(cls, ace, i_reaction):
# Get nuclide energy grid
n_grid = ace.nxs[3]
grid = ace.xss[ace.jxs[1]:ace.jxs[1] + n_grid]
grid = ace.xss[ace.jxs[1]:ace.jxs[1] + n_grid]*EV_PER_MEV
# Convert data temperature to a "300.0K" number for indexing
# temperature data
strT = str(int(round(ace.temperature / K_BOLTZMANN))) + "K"
strT = str(int(round(ace.temperature*EV_PER_MEV / K_BOLTZMANN))) + "K"
if i_reaction > 0:
mt = int(ace.xss[ace.jxs[3] + i_reaction - 1])
rx = cls(mt)
# Get Q-value of reaction
rx.q_value = ace.xss[ace.jxs[4] + i_reaction - 1]
rx.q_value = ace.xss[ace.jxs[4] + i_reaction - 1]*EV_PER_MEV
# ==================================================================
# CROSS SECTION

View file

@ -8,7 +8,8 @@ import h5py
import openmc.checkvalue as cv
from openmc.mixin import EqualityMixin
from .data import K_BOLTZMANN, ATOMIC_SYMBOL
from . import HDF5_VERSION, HDF5_VERSION_MAJOR
from .data import K_BOLTZMANN, ATOMIC_SYMBOL, EV_PER_MEV
from .ace import Table, get_table
from .angle_energy import AngleEnergy
from .function import Tabulated1D
@ -69,14 +70,14 @@ class CoherentElastic(EqualityMixin):
Parameters
----------
bragg_edges : Iterable of float
Bragg edge energies in MeV
Bragg edge energies in eV
factors : Iterable of float
Partial sum of structure factors, :math:`\sum\limits_{i=1}^{E_i<E} S_i`
Attributes
----------
bragg_edges : Iterable of float
Bragg edge energies in MeV
Bragg edge energies in eV
factors : Iterable of float
Partial sum of structure factors, :math:`\sum\limits_{i=1}^{E_i<E} S_i`
@ -161,7 +162,7 @@ class ThermalScattering(EqualityMixin):
Atomic mass ratio of the target nuclide.
kTs : Iterable of float
List of temperatures of the target nuclide in the data set.
The temperatures have units of MeV.
The temperatures have units of eV.
Attributes
----------
@ -181,7 +182,7 @@ class ThermalScattering(EqualityMixin):
rounded to the nearest integer; e.g., '294K'
kTs : Iterable of float
List of temperatures of the target nuclide in the data set.
The temperatures have units of MeV.
The temperatures have units of eV.
nuclides : Iterable of str
Nuclide names that the thermal scattering data applies to
@ -222,8 +223,9 @@ class ThermalScattering(EqualityMixin):
to the :class:`h5py.File` constructor.
"""
# Open file and write version
f = h5py.File(path, mode, libver='latest')
f.attrs['version'] = np.array(HDF5_VERSION)
# Write basic data
g = f.create_group(self.name)
@ -331,6 +333,21 @@ class ThermalScattering(EqualityMixin):
group = group_or_filename
else:
h5file = h5py.File(group_or_filename, 'r')
# Make sure version matches
if 'version' in h5file.attrs:
major, minor = h5file.attrs['version']
if major != HDF5_VERSION_MAJOR:
raise IOError(
'HDF5 data format uses version {}.{} whereas your '
'installation of the OpenMC Python API expects version '
'{}.x.'.format(major, minor, HDF5_VERSION_MAJOR))
else:
raise IOError(
'HDF5 data does not indicate a version. Your installation of '
'the OpenMC Python API expects version {}.x data.'
.format(HDF5_VERSION_MAJOR))
group = list(h5file.values())[0]
name = group.name[1:]
@ -426,15 +443,16 @@ class ThermalScattering(EqualityMixin):
'Assigning a name of {}.'.format(ace.name, name))
# Assign temperature to the running list
kTs = [ace.temperature]
temperatures = [str(int(round(ace.temperature / K_BOLTZMANN))) + "K"]
kTs = [ace.temperature*EV_PER_MEV]
temperatures = [str(int(round(ace.temperature*EV_PER_MEV
/ K_BOLTZMANN))) + "K"]
table = cls(name, ace.atomic_weight_ratio, kTs)
# Incoherent inelastic scattering cross section
idx = ace.jxs[1]
n_energy = int(ace.xss[idx])
energy = ace.xss[idx+1 : idx+1+n_energy]
energy = ace.xss[idx+1 : idx+1+n_energy]*EV_PER_MEV
xs = ace.xss[idx+1+n_energy : idx+1+2*n_energy]
table.inelastic_xs[temperatures[0]] = Tabulated1D(energy, xs)
@ -451,7 +469,7 @@ class ThermalScattering(EqualityMixin):
idx = ace.jxs[3]
table.inelastic_e_out[temperatures[0]] = \
ace.xss[idx:idx + n_energy * n_energy_out * (n_mu + 2):
n_mu + 2]
n_mu + 2]*EV_PER_MEV
table.inelastic_e_out[temperatures[0]].shape = \
(n_energy, n_energy_out)
@ -474,9 +492,9 @@ class ThermalScattering(EqualityMixin):
# Outgoing energy distribution for incoming energy i
e = ace.xss[idx + 1:idx + 1 + n_energy_out[i]*(n_mu + 3):
n_mu + 3]
n_mu + 3]*EV_PER_MEV
p = ace.xss[idx + 2:idx + 2 + n_energy_out[i]*(n_mu + 3):
n_mu + 3]
n_mu + 3]/EV_PER_MEV
c = ace.xss[idx + 3:idx + 3 + n_energy_out[i]*(n_mu + 3):
n_mu + 3]
eout_i = Tabular(e, p, 'linear-linear', ignore_negative=True)
@ -507,11 +525,12 @@ class ThermalScattering(EqualityMixin):
idx = ace.jxs[4]
if idx != 0:
n_energy = int(ace.xss[idx])
energy = ace.xss[idx + 1: idx + 1 + n_energy]
energy = ace.xss[idx + 1: idx + 1 + n_energy]*EV_PER_MEV
P = ace.xss[idx + 1 + n_energy: idx + 1 + 2 * n_energy]
if ace.nxs[5] == 4:
table.elastic_xs[temperatures[0]] = CoherentElastic(energy, P)
table.elastic_xs[temperatures[0]] = CoherentElastic(
energy, P*EV_PER_MEV)
else:
table.elastic_xs[temperatures[0]] = Tabulated1D(energy, P)

View file

@ -5,6 +5,7 @@ import numpy as np
import openmc.checkvalue as cv
from openmc.mixin import EqualityMixin
from .data import EV_PER_MEV
class ProbabilityTables(EqualityMixin):
@ -13,7 +14,7 @@ class ProbabilityTables(EqualityMixin):
Parameters
----------
energy : Iterable of float
Energies in MeV at which probability tables exist
Energies in eV at which probability tables exist
table : numpy.ndarray
Probability tables for each energy. This array is of shape (N, 6, M)
where N is the number of energies and M is the number of bands. The
@ -40,7 +41,7 @@ class ProbabilityTables(EqualityMixin):
Attributes
----------
energy : Iterable of float
Energies in MeV at which probability tables exist
Energies in eV at which probability tables exist
table : numpy.ndarray
Probability tables for each energy. This array is of shape (N, 6, M)
where N is the number of energies and M is the number of bands. The
@ -200,12 +201,15 @@ class ProbabilityTables(EqualityMixin):
idx += 6
# Get energies at which tables exist
energy = ace.xss[idx : idx+N]
energy = ace.xss[idx : idx+N]*EV_PER_MEV
idx += N
# Get probability tables
table = ace.xss[idx : idx+N*6*M]
table = ace.xss[idx : idx+N*6*M].copy()
table.shape = (N, 6, M)
# Convert units on heating numbers
table[:,5,:] *= EV_PER_MEV
return cls(energy, table, interpolation, inelastic_flag,
absorption_flag, multiply_smooth)

View file

@ -780,12 +780,12 @@ class EnergyFilter(Filter):
Parameters
----------
bins : Iterable of Real
A grid of energy values (in MeV).
A grid of energy values in eV.
Attributes
----------
bins : Iterable of Real
A grid of energy values (in MeV).
A grid of energy values in eV.
num_bins : Integral
The number of filter bins
stride : Integral
@ -930,8 +930,8 @@ class EnergyFilter(Filter):
hi_bins = np.tile(hi_bins, tile_factor)
# Add the new energy columns to the DataFrame.
df.loc[:, self.short_name.lower() + ' low [MeV]'] = lo_bins
df.loc[:, self.short_name.lower() + ' high [MeV]'] = hi_bins
df.loc[:, self.short_name.lower() + ' low [eV]'] = lo_bins
df.loc[:, self.short_name.lower() + ' high [eV]'] = hi_bins
return df
@ -942,12 +942,12 @@ class EnergyoutFilter(EnergyFilter):
Parameters
----------
bins : Iterable of Real
A grid of energy values (in MeV).
A grid of energy values in eV.
Attributes
----------
bins : Iterable of Real
A grid of energy values (in MeV).
A grid of energy values in eV.
num_bins : Integral
The number of filter bins
stride : Integral

View file

@ -14,12 +14,12 @@ class EnergyGroups(object):
Parameters
----------
group_edges : Iterable of Real
The energy group boundaries [MeV]
The energy group boundaries [eV]
Attributes
----------
group_edges : Iterable of Real
The energy group boundaries [MeV]
The energy group boundaries [eV]
num_groups : int
The number of energy groups
@ -83,7 +83,7 @@ class EnergyGroups(object):
Parameters
----------
energy : float
The energy of interest in MeV
The energy of interest in eV
Returns
-------
@ -98,7 +98,7 @@ class EnergyGroups(object):
"""
if self.group_edges is None:
msg = 'Unable to get energy group for energy "{0}" MeV since ' \
msg = 'Unable to get energy group for energy "{0}" eV since ' \
'the group edges have not yet been set'.format(energy)
raise ValueError(msg)
@ -117,7 +117,7 @@ class EnergyGroups(object):
Returns
-------
2-tuple
The low and high energy bounds for the group in MeV
The low and high energy bounds for the group in eV
Raises
------

View file

@ -599,7 +599,7 @@ class MDGXS(MGXS):
string += template.format('', delayed_group)
string += '\n'
template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t'
template = '{0: <12}Group {1} [{2: <10} - {3: <10}eV]:\t'
# Loop over energy groups ranges
for group in range(1, self.num_groups+1):
@ -784,36 +784,36 @@ class MDGXS(MGXS):
# Override energy groups bounds with indices
all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int)
all_groups = np.repeat(all_groups, len(query_nuclides))
if 'energy low [MeV]' in df and 'energyout low [MeV]' in df:
df.rename(columns={'energy low [MeV]': 'group in'},
if 'energy low [eV]' in df and 'energyout low [eV]' in df:
df.rename(columns={'energy low [eV]': 'group in'},
inplace=True)
in_groups = np.tile(all_groups, int(self.num_subdomains *
self.num_delayed_groups))
in_groups = np.repeat(in_groups, int(df.shape[0] / in_groups.size))
df['group in'] = in_groups
del df['energy high [MeV]']
del df['energy high [eV]']
df.rename(columns={'energyout low [MeV]': 'group out'},
df.rename(columns={'energyout low [eV]': 'group out'},
inplace=True)
out_groups = np.repeat(all_groups, self.xs_tally.num_scores)
out_groups = np.tile(out_groups, int(df.shape[0] / out_groups.size))
df['group out'] = out_groups
del df['energyout high [MeV]']
del df['energyout high [eV]']
columns = ['group in', 'group out']
elif 'energyout low [MeV]' in df:
df.rename(columns={'energyout low [MeV]': 'group out'},
elif 'energyout low [eV]' in df:
df.rename(columns={'energyout low [eV]': 'group out'},
inplace=True)
in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size))
df['group out'] = in_groups
del df['energyout high [MeV]']
del df['energyout high [eV]']
columns = ['group out']
elif 'energy low [MeV]' in df:
df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True)
elif 'energy low [eV]' in df:
df.rename(columns={'energy low [eV]': 'group in'}, inplace=True)
in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size))
df['group in'] = in_groups
del df['energy high [MeV]']
del df['energy high [eV]']
columns = ['group in']
# Select out those groups the user requested

View file

@ -1214,7 +1214,7 @@ class MGXS(object):
# Build header for cross section type
string += '{0: <16}\n'.format(xs_header)
template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]:\t'
template = '{0: <12}Group {1} [{2: <10} - {3: <10}eV]:\t'
# Loop over energy groups ranges
for group in range(1, self.num_groups+1):
@ -1526,35 +1526,35 @@ class MGXS(object):
# Override energy groups bounds with indices
all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int)
all_groups = np.repeat(all_groups, len(query_nuclides))
if 'energy low [MeV]' in df and 'energyout low [MeV]' in df:
df.rename(columns={'energy low [MeV]': 'group in'},
if 'energy low [eV]' in df and 'energyout low [eV]' in df:
df.rename(columns={'energy low [eV]': 'group in'},
inplace=True)
in_groups = np.tile(all_groups, int(self.num_subdomains))
in_groups = np.repeat(in_groups, int(df.shape[0] / in_groups.size))
df['group in'] = in_groups
del df['energy high [MeV]']
del df['energy high [eV]']
df.rename(columns={'energyout low [MeV]': 'group out'},
df.rename(columns={'energyout low [eV]': 'group out'},
inplace=True)
out_groups = np.repeat(all_groups, self.xs_tally.num_scores)
out_groups = np.tile(out_groups, int(df.shape[0] / out_groups.size))
df['group out'] = out_groups
del df['energyout high [MeV]']
del df['energyout high [eV]']
columns = ['group in', 'group out']
elif 'energyout low [MeV]' in df:
df.rename(columns={'energyout low [MeV]': 'group out'},
elif 'energyout low [eV]' in df:
df.rename(columns={'energyout low [eV]': 'group out'},
inplace=True)
in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size))
df['group out'] = in_groups
del df['energyout high [MeV]']
del df['energyout high [eV]']
columns = ['group out']
elif 'energy low [MeV]' in df:
df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True)
elif 'energy low [eV]' in df:
df.rename(columns={'energy low [eV]': 'group in'}, inplace=True)
in_groups = np.tile(all_groups, int(df.shape[0] / all_groups.size))
df['group in'] = in_groups
del df['energy high [MeV]']
del df['energy high [eV]']
columns = ['group in']
# Select out those groups the user requested
@ -1978,7 +1978,7 @@ class MatrixMGXS(MGXS):
return
string += '{0: <16}\n'.format('\tEnergy Groups:')
template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n'
template = '{0: <12}Group {1} [{2: <10} - {3: <10}eV]\n'
# Loop over energy groups ranges
for group in range(1, self.num_groups + 1):
@ -3844,7 +3844,7 @@ class ScatterMatrixXS(MatrixMGXS):
return
string += '{0: <16}\n'.format('\tEnergy Groups:')
template = '{0: <12}Group {1} [{2: <10} - {3: <10}MeV]\n'
template = '{0: <12}Group {1} [{2: <10} - {3: <10}eV]\n'
# Loop over energy groups ranges
for group in range(1, self.num_groups + 1):

View file

@ -24,7 +24,7 @@ class Particle(object):
weight : float
Weight of the particle
energy : float
Energy of the particle in MeV
Energy of the particle in eV
xyz : list of float
Position of the particle
uvw : list of float

View file

@ -93,7 +93,7 @@ class Settings(object):
should be a float indicating weight cutoff below which particle undergo
Russian roulette. Value for 'weight_avg' should be a float indicating
weight assigned to particles that are not killed after Russian
roulette. Value of energy should be a float indicating energy in MeV
roulette. Value of energy should be a float indicating energy in eV
below which particle will be killed.
entropy_dimension : tuple or list
Number of Shannon entropy mesh cells in the x, y, and z directions,

View file

@ -263,7 +263,7 @@ class Watt(Univariate):
"""
def __init__(self, a=0.988, b=2.249):
def __init__(self, a=0.988e6, b=2.249e-6):
super(Watt, self).__init__()
self.a = a
self.b = b

View file

@ -121,7 +121,7 @@ contains
end if
else
if(.not.allocated(cmfd % egrid)) allocate(cmfd % egrid(2))
cmfd % egrid = [ ZERO, 20.0_8 ]
cmfd % egrid = [ ZERO, energy_max_neutron ]
cmfd % indices(4) = 1 ! one energy group
end if

View file

@ -10,6 +10,10 @@ module constants
integer, parameter :: VERSION_MINOR = 8
integer, parameter :: VERSION_RELEASE = 0
! HDF5 data format
integer, parameter :: HDF5_VERSION_MAJOR = 1
integer, parameter :: HDF5_VERSION_MINOR = 0
! Revision numbers for binary files
integer, parameter :: REVISION_STATEPOINT = 15
integer, parameter :: REVISION_PARTICLE_RESTART = 1
@ -67,12 +71,12 @@ module constants
PI = 3.1415926535898_8, & ! pi
SQRT_PI = 1.7724538509055_8, & ! square root of pi
MASS_NEUTRON = 1.008664916_8, & ! mass of a neutron in amu
MASS_NEUTRON_MEV = 939.565379_8, & ! mass of a neutron in MeV/c^2
MASS_NEUTRON_EV = 939.565379e6_8, & ! mass of a neutron in eV/c^2
MASS_PROTON = 1.007276466812_8, & ! mass of a proton in amu
AMU = 1.660538921e-27_8, & ! 1 amu in kg
C_LIGHT = 2.99792458e8_8, & ! speed of light in m/s
N_AVOGADRO = 0.602214129_8, & ! Avogadro's number in 10^24/mol
K_BOLTZMANN = 8.6173324e-11_8, & ! Boltzmann constant in MeV/K
K_BOLTZMANN = 8.6173324e-5_8, & ! Boltzmann constant in eV/K
INFINITY = huge(0.0_8), & ! positive infinity
ZERO = 0.0_8, &
HALF = 0.5_8, &

View file

@ -147,15 +147,15 @@ contains
integer :: i_low ! lower logarithmic mapping index
integer :: i_high ! upper logarithmic mapping index
real(8) :: f ! interp factor on nuclide energy grid
real(8) :: kT ! temperature in MeV
real(8) :: kT ! temperature in eV
real(8) :: sigT, sigA, sigF ! Intermediate multipole variables
associate (nuc => nuclides(i_nuclide))
! Check to see if there is multipole data present at this energy
use_mp = .false.
if (nuc % mp_present) then
if (E >= nuc % multipole % start_E/1.0e6_8 .and. &
E <= nuc % multipole % end_E/1.0e6_8) then
if (E >= nuc % multipole % start_E .and. &
E <= nuc % multipole % end_E) then
use_mp = .true.
end if
end if
@ -585,14 +585,13 @@ contains
! sections in the resolved resonance regions
!===============================================================================
subroutine multipole_eval(multipole, Emev, sqrtkT_, sigT, sigA, sigF)
subroutine multipole_eval(multipole, E, sqrtkT, sigT, sigA, sigF)
type(MultipoleArray), intent(in) :: multipole ! The windowed multipole
! object to process.
real(8), intent(in) :: Emev ! The energy at which to
real(8), intent(in) :: E ! The energy at which to
! evaluate the cross section
! in MeV
real(8), intent(in) :: sqrtkT_ ! The temperature in the form
! sqrt(kT (in MeV)), at which
real(8), intent(in) :: sqrtkT ! The temperature in the form
! sqrt(kT), at which
! to evaluate the XS.
real(8), intent(out) :: sigT ! Total cross section
real(8), intent(out) :: sigA ! Absorption cross section
@ -608,8 +607,6 @@ contains
real(8) :: invE ! 1/E, eV
real(8) :: dopp ! sqrt(atomic weight ratio / kT) = 1 / (2 sqrt(xi))
real(8) :: temp ! real temporary value
real(8) :: E ! energy, eV
real(8) :: sqrtkT ! sqrt(kT (in eV))
integer :: i_pole ! index of pole
integer :: i_poly ! index of curvefit
integer :: i_window ! index of window
@ -619,10 +616,6 @@ contains
! ==========================================================================
! Bookkeeping
! Convert to eV.
E = Emev * 1.0e6_8
sqrtkT = sqrtkT_ * 1.0e3_8
! Define some frequently used variables.
sqrtE = sqrt(E)
invE = ONE / E

View file

@ -41,7 +41,7 @@ contains
real(8) :: a, b ! values of x(k)-y and x(k+1)-y
real(8) :: sigma ! broadened cross section at one point
! Determine alpha parameter -- have to convert k to MeV/K
! Determine alpha parameter -- have to convert k to eV/K
alpha = A_target/(K_BOLTZMANN * T)
! Allocate memory for x and assign values

View file

@ -144,7 +144,7 @@ module geometry_header
integer :: distribcell_index ! Index corresponding to this cell in
! distribcell arrays
real(8), allocatable :: sqrtkT(:) ! Square root of k_Boltzmann *
! temperature in MeV. Multiple for
! temperature in eV. Multiple for
! distribcell
! Rotation matrix and translation vector

View file

@ -612,8 +612,8 @@ contains
allocate(Watt :: external_source(i)%energy)
select type(energy => external_source(i)%energy)
type is (Watt)
energy%a = 0.988_8
energy%b = 2.249_8
energy%a = 0.988e6_8
energy%b = 2.249e-6_8
end select
end if
end if
@ -5073,8 +5073,11 @@ contains
call write_message('Reading ' // trim(name) // ' from ' // &
trim(libraries(i_library) % path), 6)
! Read nuclide data from HDF5
! Open file and make sure version is sufficient
file_id = file_open(libraries(i_library) % path, 'r')
call check_data_version(file_id)
! Read nuclide data from HDF5
group_id = open_group(file_id, name)
call nuclides(i_nuclide) % from_hdf5(group_id, nuc_temps(i_nuclide), &
temperature_method, temperature_tolerance, master)
@ -5123,8 +5126,11 @@ contains
call write_message('Reading ' // trim(name) // ' from ' // &
trim(libraries(i_library) % path), 6)
! Read S(a,b) data from HDF5
! Open file and make sure version matches
file_id = file_open(libraries(i_library) % path, 'r')
call check_data_version(file_id)
! Read S(a,b) data from HDF5
group_id = open_group(file_id, name)
call sab_tables(i_sab) % from_hdf5(group_id, sab_temps(i_sab), &
temperature_method, temperature_tolerance)
@ -5145,7 +5151,7 @@ contains
if (nuclides(i) % grid(1) % energy(size(nuclides(i) % grid(1) % energy)) &
== energy_max_neutron) then
call write_message("Maximum neutron transport energy: " // &
trim(to_str(energy_max_neutron)) // " MeV for " // &
trim(to_str(energy_max_neutron)) // " eV for " // &
trim(adjustl(nuclides(i) % name)), 6)
exit
end if
@ -5244,8 +5250,10 @@ contains
call write_message('Reading ' // trim(name) // ' 0K data from ' // &
trim(libraries(i_library) % path), 6)
! Read nuclide data from HDF5
! Open file and make sure version matches
file_id = file_open(libraries(i_library) % path, 'r')
! Read nuclide data from HDF5
group_id = open_group(file_id, name)
method = TEMPERATURE_NEAREST
call resonant_nuc % from_hdf5(group_id, temperature, &
@ -5330,4 +5338,29 @@ contains
end subroutine read_multipole_data
!===============================================================================
! CHECK_DATA_VERSION checks for the right version of nuclear data within HDF5
! files
!===============================================================================
subroutine check_data_version(file_id)
integer(HID_T), intent(in) :: file_id
integer, allocatable :: version(:)
if (attribute_exists(file_id, 'version')) then
call read_attribute(version, file_id, 'version')
if (version(1) /= HDF5_VERSION_MAJOR) then
call fatal_error("HDF5 data format uses version " // trim(to_str(&
version(1))) // "." // trim(to_str(version(2))) // " whereas &
&your installation of OpenMC expects version " // trim(to_str(&
HDF5_VERSION_MAJOR)) // ".x data.")
end if
else
call fatal_error("HDF5 data does not indicate a version. Your &
&installation of OpenMC expects version " // trim(to_str(&
HDF5_VERSION_MAJOR)) // ".x data.")
end if
end subroutine check_data_version
end module input_xml

View file

@ -200,7 +200,7 @@ contains
end subroutine create_macro_xs
!===============================================================================
! GET_MAT_kTs returns a list of temperatures (in MeV) that each
! GET_MAT_kTs returns a list of temperatures (in eV) that each
! material appears at in the model.
!===============================================================================
@ -209,7 +209,7 @@ contains
integer :: i, j
integer :: i_material ! Index in materials array
real(8) :: kT ! temperature in MeV
real(8) :: kT ! temperature in eV
allocate(kTs(size(materials)))

View file

@ -53,7 +53,7 @@ module mgxs_header
type, abstract :: Mgxs
character(len=MAX_WORD_LEN) :: name ! name of dataset, e.g. UO2
real(8) :: awr ! Atomic Weight Ratio
real(8), allocatable :: kTs(:) ! temperature in MeV (k*T)
real(8), allocatable :: kTs(:) ! temperature in eV (k*T)
! Fission information
logical :: fissionable ! mgxs object is fissionable?
@ -242,7 +242,7 @@ module mgxs_header
do i = 1, size(dset_names)
! Read temperature value
call read_dataset(temps_available(i), kT_group, trim(dset_names(i)))
! Convert MeV to Kelvin
! Convert eV to Kelvin
temps_available(i) = temps_available(i) / K_BOLTZMANN
end do
call sort(temps_available)
@ -1239,7 +1239,7 @@ module mgxs_header
subroutine mgxsiso_combine(this, temps, mat, nuclides, groups, max_order, &
tolerance, method)
class(MgxsIso), intent(inout) :: this ! The Mgxs to initialize
type(VectorReal), intent(in) :: temps ! Temperatures to obtain [MeV]
type(VectorReal), intent(in) :: temps ! Temperatures to obtain [eV]
type(Material), pointer, intent(in) :: mat ! base material
type(MgxsContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from
integer, intent(in) :: groups ! Number of E groups
@ -2079,12 +2079,12 @@ module mgxs_header
!===============================================================================
! MGXS_FIND_TEMPERATURE sets the temperature index for the given
! sqrt(temperature), (with temperature in units of MeV)
! sqrt(temperature), (with temperature in units of eV)
!===============================================================================
subroutine mgxs_find_temperature(this, sqrtkT)
class(Mgxs), intent(inout) :: this
real(8), intent(in) :: sqrtkT ! Temperature (in units of of MeV)
real(8), intent(in) :: sqrtkT ! Temperature (in units of eV)
this % index_temp = minloc(abs(this % kTs - (sqrtkT * sqrtkT)), dim=1)

View file

@ -53,7 +53,7 @@ module nuclide_header
integer :: A ! mass number
integer :: metastable ! metastable state
real(8) :: awr ! Atomic Weight Ratio
real(8), allocatable :: kTs(:) ! temperature in MeV (k*T)
real(8), allocatable :: kTs(:) ! temperature in eV (k*T)
! Fission information
logical :: fissionable = .false. ! nuclide is fissionable?
@ -115,8 +115,8 @@ module nuclide_header
type Nuclide0K
character(10) :: nuclide ! name of nuclide, e.g. U238
character(16) :: scheme = 'ares' ! target velocity sampling scheme
real(8) :: E_min = 0.01e-6_8 ! lower cutoff energy for res scattering
real(8) :: E_max = 1000.0e-6_8 ! upper cutoff energy for res scattering
real(8) :: E_min = 0.01_8 ! lower cutoff energy for res scattering
real(8) :: E_max = 1000.0_8 ! upper cutoff energy for res scattering
end type Nuclide0K
!===============================================================================
@ -146,7 +146,7 @@ module nuclide_header
! Information for Doppler broadening
real(8) :: last_sqrtkT = ZERO ! Last temperature in sqrt(Boltzmann
! constant * temperature (MeV))
! constant * temperature (eV))
end type NuclideMicroXS
!===============================================================================

View file

@ -87,7 +87,7 @@ module particle_header
integer :: last_material ! index for last material
! Temperature of the current cell
real(8) :: sqrtkT ! sqrt(k_Boltzmann * temperature) in MeV
real(8) :: sqrtkT ! sqrt(k_Boltzmann * temperature) in eV
real(8) :: last_sqrtKT ! last temperature
! Statistical data

View file

@ -47,7 +47,7 @@ contains
if (verbosity >= 10 .or. trace) then
call write_message(" " // trim(reaction_name(p % event_MT)) &
&// " with " // trim(adjustl(nuclides(p % event_nuclide) % name)) &
&// ". Energy = " // trim(to_str(p % E * 1e6_8)) // " eV.")
&// ". Energy = " // trim(to_str(p % E)) // " eV.")
end if
! check for very low energy
@ -230,8 +230,8 @@ contains
! Check to see if we are in a windowed multipole range. WMP only supports
! the first fission reaction.
if (nuc % mp_present) then
if (E >= nuc % multipole % start_E/1.0e6_8 .and. &
E <= nuc % multipole % end_E/1.0e6_8) then
if (E >= nuc % multipole % start_E .and. &
E <= nuc % multipole % end_E) then
i_reaction = nuc % index_fission(1)
return
end if
@ -322,7 +322,7 @@ contains
real(8) :: uvw_new(3) ! outgoing uvw for iso-in-lab scattering
real(8) :: uvw_old(3) ! incoming uvw for iso-in-lab scattering
real(8) :: phi ! azimuthal angle for iso-in-lab scattering
real(8) :: kT ! temperature in MeV
real(8) :: kT ! temperature in eV
type(Nuclide), pointer :: nuc
! copy incoming direction
@ -436,7 +436,7 @@ contains
subroutine elastic_scatter(i_nuclide, rxn, kT, E, uvw, mu_lab, wgt)
integer, intent(in) :: i_nuclide
type(Reaction), intent(in) :: rxn
real(8), intent(in) :: kT ! temperature in MeV
real(8), intent(in) :: kT ! temperature in eV
real(8), intent(inout) :: E
real(8), intent(inout) :: uvw(3)
real(8), intent(out) :: mu_lab
@ -785,7 +785,7 @@ contains
real(8), intent(in) :: v_neut(3) ! neutron velocity
real(8), intent(inout) :: wgt ! particle weight
real(8), intent(in) :: xs_eff ! effective elastic xs at temperature T
real(8), intent(in) :: kT ! equilibrium temperature of target in MeV
real(8), intent(in) :: kT ! equilibrium temperature of target in eV
real(8) :: awr ! target/neutron mass ratio
real(8) :: E_rel ! trial relative energy
@ -1026,7 +1026,7 @@ contains
real(8), intent(out) :: v_target(3)
real(8), intent(in) :: E
real(8), intent(in) :: uvw(3)
real(8), intent(in) :: kT ! equilibrium temperature of target in MeV
real(8), intent(in) :: kT ! equilibrium temperature of target in eV
real(8) :: awr ! target/neutron mass ratio
real(8) :: alpha ! probability of sampling f2 over f1

View file

@ -68,7 +68,7 @@ module sab_header
type SAlphaBeta
character(150) :: name ! name of table, e.g. lwtr.10t
real(8) :: awr ! weight of nucleus in neutron masses
real(8), allocatable :: kTs(:) ! temperatures in MeV (k*T)
real(8), allocatable :: kTs(:) ! temperatures in eV (k*T)
character(10), allocatable :: nuclides(:) ! List of valid nuclides
integer :: secondary_mode ! secondary mode (equal/skewed/continuous)

View file

@ -187,12 +187,12 @@ contains
! Score the flux weighted inverse velocity with velocity in units of
! cm/s
score = score / material_xs % total &
/ (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0_8) * flux
/ (sqrt(TWO * E / MASS_NEUTRON_EV) * C_LIGHT * 100.0_8) * flux
else
! For inverse velocity, we don't need a cross section. The velocity is
! in units of cm/s.
score = flux / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0_8)
score = flux / (sqrt(TWO * E / MASS_NEUTRON_EV) * C_LIGHT * 100.0_8)
end if
@ -898,6 +898,8 @@ contains
end if
case (SCORE_FISS_Q_PROMPT)
score = ZERO
if (t % estimator == ESTIMATOR_ANALOG) then
if (survival_biasing) then
! No fission events occur if survival biasing is on -- need to
@ -939,11 +941,8 @@ contains
if (allocated(nuclides(i_nuclide) % fission_q_prompt)) then
score = micro_xs(i_nuclide) % fission * atom_density * flux &
* nuclides(i_nuclide) % fission_q_prompt % evaluate(E)
else
score = ZERO
end if
else
score = ZERO
do l = 1, materials(p % material) % n_nuclides
atom_density_ = materials(p % material) % atom_density(l)
i_nuc = materials(p % material) % nuclide(l)
@ -957,6 +956,8 @@ contains
end if
case (SCORE_FISS_Q_RECOV)
score = ZERO
if (t % estimator == ESTIMATOR_ANALOG) then
if (survival_biasing) then
! No fission events occur if survival biasing is on -- need to
@ -998,11 +999,8 @@ contains
if (allocated(nuclides(i_nuclide) % fission_q_recov)) then
score = micro_xs(i_nuclide) % fission * atom_density * flux &
* nuclides(i_nuclide) % fission_q_recov % evaluate(E)
else
score = ZERO
end if
else
score = ZERO
do l = 1, materials(p % material) % n_nuclides
atom_density_ = materials(p % material) % atom_density(l)
i_nuc = materials(p % material) % nuclide(l)
@ -1616,7 +1614,6 @@ contains
t % results(score_index, filter_index) % value = &
t % results(score_index, filter_index) % value + score
end select
end subroutine expand_and_score

Binary file not shown.

View file

@ -1 +1 @@
a2848fdb0a12c99ce31f4ddee766e0cf33bd5c6feca927bcb4bceca6fbb094bb1309fb8548589a99fcb09a830911457b9175b460aa45773822f8112a34b3b5c1
e18c2318bab6c42a263e5079fd796b1bee609e4274884fbc7bfd8b33e59aeb5e5a167da8e093f339f766815e007bd606c002939e3f730af523cbc9cf75c53faa

View file

@ -86,8 +86,8 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness):
# Create a string of all mean, std. dev. values for both tallies
outstr = ''
outstr += ', '.join(map(str, tally.mean.flatten())) + '\n'
outstr += ', '.join(map(str, tally.std_dev.flatten())) + '\n'
outstr += '\n'.join(map('{:.8e}'.format, tally.mean.flatten())) + '\n'
outstr += '\n'.join(map('{:.8e}'.format, tally.std_dev.flatten())) + '\n'
# Extract fuel assembly lattices from the summary
core = sp.summary.get_cell_by_id(1)

View file

@ -1 +1 @@
c3581501d1486293c255390251d20584431a198fbb7c07dc2879dc95dc96e26786d3913ce0db8007f542468fd137ff3267824844c03b4687fdad81ea568c92d7
2feaef10cd32d90d89bf3f1c10cddcb7b1c2daaf739dfe13427c3453168cef0d9f57d272bab24d4493bdcae6f97e2afdf636f5b966a7a93d1d16edb6728cc2eb

View file

@ -1 +1 @@
4dc6a7b131f6757ecc9b06e93d425712f0813c546ed9eaa0aafa4990383b2f3a5b742a5a39ef5f27300d2c861b344e78de2d2c569b9439e7893dc06b03bf3b02
3c242912caf520c09de59edc2911d886fe77041577c1ab6a57985527f5b9e34d79d74c1fefff13d83462909d37d2318626cc14dcc717ce42f32420a799bd5c58

View file

@ -10,7 +10,7 @@ import openmc
class EnergyCutoffTestHarness(PyAPITestHarness):
def _build_inputs(self):
# Set energy cutoff
energy_cutoff = 4e-6
energy_cutoff = 4.0
# Material is composed of H-1
mat = openmc.Material(material_id=1, name='mat')

View file

@ -1 +1 @@
54cd9db30bc8e671591d76e8da2b5dead54eb4cead1eef09a005e96ca2c0fd707872e0cc21f31d198915b156605de78322fbb7957698ea8febceb23f048e44ad
8f9b2d1ba196fc0ad2e70647fb8691c5fc06b64b78f17414149a7fadfe63dd7e431830f73cb239e9c84f01e88896bf3f3d3cad1f57645bd63936dcc7db67e8a9

View file

@ -21,8 +21,8 @@ class MGTalliesTestHarness(HashedPyAPITestHarness):
mesh.upper_right = [10, 10, 5]
# Instantiate some tally filters
energy_filter = openmc.EnergyFilter([0.0, 20.0])
energyout_filter = openmc.EnergyoutFilter([0.0, 20.0])
energy_filter = openmc.EnergyFilter([0.0, 20.0e6])
energyout_filter = openmc.EnergyoutFilter([0.0, 20.0e6])
mesh_filter = openmc.MeshFilter(mesh)
mat_ids = [mat.id for mat in self._input_set.materials]

View file

@ -1 +1 @@
5c35e26926a43abf3ddcf782b09d96ce82d447a7db9ee9994c0aa811e431f8c06c11ce022c2a6ccf8d5f79f1cdedee2e8c20ca6d1e7cc5129ebcfae9568b2f87
74f306b40647c6d7125af404234bbd6883ae88a446b00f828fcda9adc8bca5167b544b23d083c802e2c0630f7fcec9052e31bced490cc94b3e3193512359cb96

View file

@ -20,8 +20,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a two-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6,
20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625, 20.e6])
# Initialize MGXS Library for a few cross section types
self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry)

View file

@ -1 +1 @@
723ce48152faa9ec1576c26a825dfa45cdd858e721bd698d72d559ac3b9e5c37e5048305bd9af9c3137a781798ab2eee20e5df46455bfd9d6819a08fd2bff47d
e86f24e20f37096c7898f459fc5bf336f3e0670fb30f321443f2bb3a01a154ef3d234bb48d4cee8e0d3730fd182b6a2051ec1b4c09d771420886a56ba928fdd9

View file

@ -12,8 +12,8 @@
0 10000 1 total 0.036855 0.002622
material group in nuclide mean std. dev.
0 10000 1 total 0.090649 0.00641
material group in nuclide mean std. dev.
0 10000 1 total 7.137955 0.507364
material group in nuclide mean std. dev.
0 10000 1 total 7.137955e+06 507363.814553
material group in nuclide mean std. dev.
0 10000 1 total 0.388721 0.01783
material group in nuclide mean std. dev.

View file

@ -20,8 +20,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a two-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6,
20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625, 20.e6])
# Initialize a six-delayed-group structure
delayed_groups = list(range(1,7))
@ -55,7 +54,7 @@ class MGXSTestHarness(PyAPITestHarness):
self.mgxs_lib.load_from_statepoint(sp)
# Build a condensed 1-group MGXS Library
one_group = openmc.mgxs.EnergyGroups([0., 20.])
one_group = openmc.mgxs.EnergyGroups([0., 20.e6])
condense_lib = self.mgxs_lib.get_condensed_library(one_group)
# Build a string from Pandas Dataframe for each 1-group MGXS

View file

@ -1 +1 @@
7d95d5cf3f4d1f3277d1a1bbc638b47888d7eb1e6afeedea73140ae5caeebead7c5f1a2945f2a18b49ce75adbd9df17773390530fee129d981a3af50141fe116
67ee414eed54f596464831e734ac365e43b88bf03297e2b08adfb97510e1d8e631ff45061d5b99aa0ad85ec08d5b51e341866e60f35cdbfae078030bcde6c794

View file

@ -12,8 +12,8 @@
0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.037577 0.001487
avg(distribcell) group in nuclide mean std. dev.
0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.092377 0.003628
avg(distribcell) group in nuclide mean std. dev.
0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.276707 0.287579
avg(distribcell) group in nuclide mean std. dev.
0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 7.276707e+06 287579.26286
avg(distribcell) group in nuclide mean std. dev.
0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.390797 0.008717
avg(distribcell) group in nuclide mean std. dev.

View file

@ -20,7 +20,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a one-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.e6])
# Initialize a six-delayed-group structure
delayed_groups = list(range(1,7))

View file

@ -1 +1 @@
723ce48152faa9ec1576c26a825dfa45cdd858e721bd698d72d559ac3b9e5c37e5048305bd9af9c3137a781798ab2eee20e5df46455bfd9d6819a08fd2bff47d
e86f24e20f37096c7898f459fc5bf336f3e0670fb30f321443f2bb3a01a154ef3d234bb48d4cee8e0d3730fd182b6a2051ec1b4c09d771420886a56ba928fdd9

View file

@ -1,378 +1,378 @@
domain=10000 type=total
[ 0.41482549 0.66016992]
[ 0.02279291 0.04751893]
[4.14825490e-01 6.60169919e-01]
[2.27929091e-02 4.75189279e-02]
domain=10000 type=transport
[ 0.35685964 0.64764766]
[ 0.0254936 0.02370374]
[3.56859637e-01 6.47647660e-01]
[2.54935956e-02 2.37037352e-02]
domain=10000 type=nu-transport
[ 0.35685964 0.64764766]
[ 0.0254936 0.02370374]
[3.56859637e-01 6.47647660e-01]
[2.54935956e-02 2.37037352e-02]
domain=10000 type=absorption
[ 0.02740784 0.26451074]
[ 0.0026925 0.02336708]
[2.74078449e-02 2.64510742e-01]
[2.69249711e-03 2.33670774e-02]
domain=10000 type=capture
[ 0.01984455 0.07171935]
[ 0.0026433 0.02520786]
[1.98445499e-02 7.17193529e-02]
[2.64330433e-03 2.52078594e-02]
domain=10000 type=fission
[ 0.00756329 0.19279139]
[ 0.00050848 0.01710592]
[7.56329498e-03 1.92791389e-01]
[5.08483678e-04 1.71059219e-02]
domain=10000 type=nu-fission
[ 0.01943174 0.46977478]
[ 0.00132298 0.041682 ]
[1.94317404e-02 4.69774777e-01]
[1.32297561e-03 4.16819998e-02]
domain=10000 type=kappa-fission
[ 1.47456982 37.28689641]
[ 0.09923532 3.30837772]
[1.47456982e+06 3.72868964e+07]
[9.92353211e+04 3.30837772e+06]
domain=10000 type=scatter
[ 0.38741765 0.39565918]
[ 0.02062573 0.02512506]
[3.87417645e-01 3.95659177e-01]
[2.06257321e-02 2.51250568e-02]
domain=10000 type=nu-scatter
[ 0.38518839 0.4123894 ]
[ 0.02694562 0.01542528]
[3.85188388e-01 4.12389399e-01]
[2.69456211e-02 1.54252770e-02]
domain=10000 type=scatter matrix
[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03]
[ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]]
[[[3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03]
[9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]]
[[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04]
[ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]]
[[[ 0.02700101 0.00698255 0.0028465 0.00223352]
[ 0.00048242 0.00014901 0.00018432 0.00012817]]
[[9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04]
[4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]]
[[[2.70010136e-02 6.98254888e-03 2.84649518e-03 2.23351977e-03]
[4.82419445e-04 1.49010775e-04 1.84316312e-04 1.28173111e-04]]
[[ 0.00092488 0.00076791 0.00049392 0.00017154]
[ 0.01524494 0.00450173 0.01055075 0.01043819]]]
[[9.24883464e-04 7.67907186e-04 4.93918938e-04 1.71542403e-04]
[1.52449354e-02 4.50172796e-03 1.05507493e-02 1.04381877e-02]]]
domain=10000 type=nu-scatter matrix
[[[ 3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03]
[ 9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]]
[[[3.84199458e-01 5.18702843e-02 2.00688453e-02 9.47771571e-03]
[9.88930393e-04 -2.07234596e-04 -1.03366181e-04 2.34290623e-04]]
[[ 9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04]
[ 4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]]
[[[ 0.02700101 0.00698255 0.0028465 0.00223352]
[ 0.00048242 0.00014901 0.00018432 0.00012817]]
[[9.24639909e-04 -7.67704968e-04 4.93788872e-04 -1.71497229e-04]
[4.11464759e-01 1.64817280e-02 6.37149049e-03 -1.04991221e-02]]]
[[[2.70010136e-02 6.98254888e-03 2.84649518e-03 2.23351977e-03]
[4.82419445e-04 1.49010775e-04 1.84316312e-04 1.28173111e-04]]
[[ 0.00092488 0.00076791 0.00049392 0.00017154]
[ 0.01524494 0.00450173 0.01055075 0.01043819]]]
[[9.24883464e-04 7.67907186e-04 4.93918938e-04 1.71542403e-04]
[1.52449354e-02 4.50172796e-03 1.05507493e-02 1.04381877e-02]]]
domain=10000 type=multiplicity matrix
[[ 1. 1.]
[ 1. 1.]]
[[ 0.07851646 0.68718427]
[ 1.41421356 0.04113035]]
[[1.00000000e+00 1.00000000e+00]
[1.00000000e+00 1.00000000e+00]]
[[7.85164550e-02 6.87184271e-01]
[1.41421356e+00 4.11303488e-02]]
domain=10000 type=nu-fission matrix
[[ 0.02014243 0. ]
[ 0.45436647 0. ]]
[[ 0.00314909 0. ]
[ 0.02742551 0. ]]
[[2.01424282e-02 0.00000000e+00]
[4.54366467e-01 0.00000000e+00]]
[[3.14909168e-03 0.00000000e+00]
[2.74255069e-02 0.00000000e+00]]
domain=10000 type=chi
[ 1. 0.]
[ 0.04607052 0. ]
[1.00000000e+00 0.00000000e+00]
[4.60705235e-02 0.00000000e+00]
domain=10000 type=chi-prompt
[ 1. 0.]
[ 0.05147146 0. ]
[1.00000000e+00 0.00000000e+00]
[5.14714567e-02 0.00000000e+00]
domain=10000 type=inverse-velocity
[ 5.70932329e-08 2.85573950e-06]
[ 4.68792969e-09 2.44216503e-07]
[5.70932329e-08 2.85573950e-06]
[4.68792969e-09 2.44216503e-07]
domain=10000 type=prompt-nu-fission
[ 0.01923922 0.46671903]
[ 0.00130951 0.04141087]
[1.92392215e-02 4.66719027e-01]
[1.30950595e-03 4.14108704e-02]
domain=10000 type=delayed-nu-fission
[[ 2.29808234e-05 1.06974158e-04]
[ 1.43606337e-04 5.52167907e-04]
[ 1.51382216e-04 5.27147681e-04]
[ 7.42603178e-05 2.22018043e-04]
[ 4.14908454e-05 9.10244403e-05]
[ 1.70016000e-05 3.81298119e-05]]
[[ 1.66363133e-06 9.49156242e-06]
[ 1.05907806e-05 4.89925426e-05]
[ 1.12671238e-05 4.67725567e-05]
[ 5.22610273e-06 1.87563195e-05]
[ 2.99830766e-06 7.68984041e-06]
[ 1.22654684e-06 3.22124663e-06]]
[[2.29808234e-05 1.06974158e-04]
[1.43606337e-04 5.52167907e-04]
[1.51382216e-04 5.27147681e-04]
[7.42603178e-05 2.22018043e-04]
[4.14908454e-05 9.10244403e-05]
[1.70016000e-05 3.81298119e-05]]
[[1.66363133e-06 9.49156242e-06]
[1.05907806e-05 4.89925426e-05]
[1.12671238e-05 4.67725567e-05]
[5.22610273e-06 1.87563195e-05]
[2.99830766e-06 7.68984041e-06]
[1.22654684e-06 3.22124663e-06]]
domain=10000 type=chi-delayed
[[ 0. 0.]
[ 1. 0.]
[ 1. 0.]
[ 1. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0. ]
[ 0.86912776 0. ]
[ 1.41421356 0. ]
[ 0.36035904 0. ]
[ 0. 0. ]
[ 0. 0. ]]
[[0.00000000e+00 0.00000000e+00]
[1.00000000e+00 0.00000000e+00]
[1.00000000e+00 0.00000000e+00]
[1.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[8.69127759e-01 0.00000000e+00]
[1.41421356e+00 0.00000000e+00]
[3.60359043e-01 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10000 type=beta
[[ 4.89188107e-05 2.27713711e-04]
[ 3.05691886e-04 1.17538858e-03]
[ 3.22244241e-04 1.12212853e-03]
[ 3.82159891e-03 1.14255357e-02]
[ 2.13520995e-03 4.68431744e-03]
[ 8.74939644e-04 1.96224379e-03]]
[[ 4.67388620e-06 2.46946810e-05]
[ 2.95223877e-05 1.27466393e-04]
[ 3.12885004e-05 1.21690543e-04]
[ 3.21434855e-04 1.09939816e-03]
[ 1.82980497e-04 4.50738567e-04]
[ 7.48899920e-05 1.88812772e-04]]
[[4.89188107e-05 2.27713711e-04]
[3.05691886e-04 1.17538858e-03]
[3.22244241e-04 1.12212853e-03]
[3.82159891e-03 1.14255357e-02]
[2.13520995e-03 4.68431744e-03]
[8.74939644e-04 1.96224379e-03]]
[[4.67388620e-06 2.46946810e-05]
[2.95223877e-05 1.27466393e-04]
[3.12885004e-05 1.21690543e-04]
[3.21434855e-04 1.09939816e-03]
[1.82980497e-04 4.50738567e-04]
[7.48899920e-05 1.88812772e-04]]
domain=10000 type=decay-rate
[[ 0. 0. ]
[ 0. 0.032739]
[ 0. 0.12078 ]
[ 0. 0.30278 ]
[ 0. 0. ]
[ 0. 0. ]]
[[ 0. 0. ]
[ 0. 0.02845437]
[ 0. 0.17080871]
[ 0. 0.10910951]
[ 0. 0. ]
[ 0. 0. ]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 3.27390000e-02]
[0.00000000e+00 1.20780000e-01]
[0.00000000e+00 3.02780000e-01]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 2.84543737e-02]
[0.00000000e+00 1.70808714e-01]
[0.00000000e+00 1.09109511e-01]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10001 type=total
[ 0.31373767 0.3008214 ]
[ 0.0155819 0.02805245]
[3.13737671e-01 3.00821402e-01]
[1.55819024e-02 2.80524484e-02]
domain=10001 type=transport
[ 0.27322787 0.31237484]
[ 0.03311537 0.04960583]
[2.73227872e-01 3.12374836e-01]
[3.31153664e-02 4.96058317e-02]
domain=10001 type=nu-transport
[ 0.27322787 0.31237484]
[ 0.03311537 0.04960583]
[2.73227872e-01 3.12374836e-01]
[3.31153664e-02 4.96058317e-02]
domain=10001 type=absorption
[ 0.00157499 0.00540038]
[ 0.00032255 0.00061814]
[1.57499139e-03 5.40037883e-03]
[3.22547891e-04 6.18138308e-04]
domain=10001 type=capture
[ 0.00157499 0.00540038]
[ 0.00032255 0.00061814]
[1.57499139e-03 5.40037883e-03]
[3.22547891e-04 6.18138308e-04]
domain=10001 type=fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10001 type=nu-fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10001 type=kappa-fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10001 type=scatter
[ 0.31216268 0.29542102]
[ 0.01532192 0.02744549]
[3.12162680e-01 2.95421023e-01]
[1.53219231e-02 2.74454889e-02]
domain=10001 type=nu-scatter
[ 0.31012074 0.29626427]
[ 0.03378811 0.04379223]
[3.10120735e-01 2.96264270e-01]
[3.37881061e-02 4.37922257e-02]
domain=10001 type=scatter matrix
[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ]
[ 0. 0. 0. 0. ]]
[[[3.10120735e-01 3.82295904e-02 2.07449420e-02 7.96429677e-03]
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
[[ 0. 0. 0. 0. ]
[ 0.29626427 -0.01121364 0.00883657 -0.00327007]]]
[[[ 0.03378811 0.008484 0.00469561 0.00373162]
[ 0. 0. 0. 0. ]]
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[2.96264270e-01 -1.12136361e-02 8.83656630e-03 -3.27006731e-03]]]
[[[3.37881061e-02 8.48399710e-03 4.69561068e-03 3.73162261e-03]
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
[[ 0. 0. 0. 0. ]
[ 0.04379223 0.01618037 0.01150396 0.00732885]]]
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[4.37922257e-02 1.61803665e-02 1.15039645e-02 7.32884580e-03]]]
domain=10001 type=nu-scatter matrix
[[[ 0.31012074 0.03822959 0.02074494 0.0079643 ]
[ 0. 0. 0. 0. ]]
[[[3.10120735e-01 3.82295904e-02 2.07449420e-02 7.96429677e-03]
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
[[ 0. 0. 0. 0. ]
[ 0.29626427 -0.01121364 0.00883657 -0.00327007]]]
[[[ 0.03378811 0.008484 0.00469561 0.00373162]
[ 0. 0. 0. 0. ]]
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[2.96264270e-01 -1.12136361e-02 8.83656630e-03 -3.27006731e-03]]]
[[[3.37881061e-02 8.48399710e-03 4.69561068e-03 3.73162261e-03]
[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]
[[ 0. 0. 0. 0. ]
[ 0.04379223 0.01618037 0.01150396 0.00732885]]]
[[0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[4.37922257e-02 1.61803665e-02 1.15039645e-02 7.32884580e-03]]]
domain=10001 type=multiplicity matrix
[[ 1. 0.]
[ 0. 1.]]
[[ 0.1087787 0. ]
[ 0. 0.14242717]]
[[1.00000000e+00 0.00000000e+00]
[0.00000000e+00 1.00000000e+00]]
[[1.08778697e-01 0.00000000e+00]
[0.00000000e+00 1.42427173e-01]]
domain=10001 type=nu-fission matrix
[[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10001 type=chi
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10001 type=chi-prompt
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10001 type=inverse-velocity
[ 5.99598048e-08 2.98549021e-06]
[ 4.55309296e-09 3.41701554e-07]
[5.99598048e-08 2.98549021e-06]
[4.55309296e-09 3.41701554e-07]
domain=10001 type=prompt-nu-fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10001 type=delayed-nu-fission
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10001 type=chi-delayed
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10001 type=beta
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10001 type=decay-rate
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10002 type=total
[ 0.66457226 2.05238401]
[ 0.03121475 0.22434291]
[6.64572261e-01 2.05238401e+00]
[3.12147519e-02 2.24342907e-01]
domain=10002 type=transport
[ 0.29056526 1.51643801]
[ 0.02385185 0.23519727]
[2.90565257e-01 1.51643801e+00]
[2.38518546e-02 2.35197269e-01]
domain=10002 type=nu-transport
[ 0.29056526 1.51643801]
[ 0.02385185 0.23519727]
[2.90565257e-01 1.51643801e+00]
[2.38518546e-02 2.35197269e-01]
domain=10002 type=absorption
[ 0.0006904 0.03168726]
[ 4.41475687e-05 3.74655858e-03]
[6.90399522e-04 3.16872566e-02]
[4.41475687e-05 3.74655858e-03]
domain=10002 type=capture
[ 0.0006904 0.03168726]
[ 4.41475687e-05 3.74655858e-03]
[6.90399522e-04 3.16872566e-02]
[4.41475687e-05 3.74655858e-03]
domain=10002 type=fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10002 type=nu-fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10002 type=kappa-fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10002 type=scatter
[ 0.66388186 2.02069676]
[ 0.03117268 0.22060445]
[6.63881861e-01 2.02069676e+00]
[3.11726840e-02 2.20604454e-01]
domain=10002 type=nu-scatter
[ 0.6712692 2.03538833]
[ 0.02618637 0.25806033]
[6.71269205e-01 2.03538833e+00]
[2.61863712e-02 2.58060329e-01]
domain=10002 type=scatter matrix
[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03]
[ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]]
[[[6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03]
[3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]]
[[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04]
[ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]]
[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03]
[ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]]
[[4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04]
[2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]]
[[[2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03]
[1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]]
[[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04]
[ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]]
[[4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04]
[2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]]
domain=10002 type=nu-scatter matrix
[[[ 6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03]
[ 3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]]
[[[6.39901485e-01 3.81167449e-01 1.52391898e-01 9.14802229e-03]
[3.13677198e-02 8.75772321e-03 -2.56790106e-03 -3.78480288e-03]]
[[ 4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04]
[ 2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]]
[[[ 2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03]
[ 1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]]
[[4.43343134e-04 3.99960414e-04 3.19562707e-04 2.13846969e-04]
[2.03494499e+00 5.09940513e-01 1.11174609e-01 2.49884357e-02]]]
[[[2.47091228e-02 1.62432649e-02 8.15627770e-03 3.88856214e-03]
[1.72811290e-03 9.25670501e-04 1.01398475e-03 8.17075571e-04]]
[[ 4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04]
[ 2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]]
[[4.44850393e-04 4.01320183e-04 3.20649143e-04 2.14573997e-04]
[2.57799889e-01 5.12359063e-02 1.30198170e-02 8.31235256e-03]]]
domain=10002 type=multiplicity matrix
[[ 1. 1.]
[ 1. 1.]]
[[ 0.03860919 0.06766735]
[ 1.41421356 0.13592921]]
[[1.00000000e+00 1.00000000e+00]
[1.00000000e+00 1.00000000e+00]]
[[3.86091908e-02 6.76673480e-02]
[1.41421356e+00 1.35929207e-01]]
domain=10002 type=nu-fission matrix
[[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10002 type=chi
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10002 type=chi-prompt
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10002 type=inverse-velocity
[ 6.02207831e-08 3.04495537e-06]
[ 3.78043696e-09 3.60007673e-07]
[6.02207831e-08 3.04495537e-06]
[3.78043696e-09 3.60007673e-07]
domain=10002 type=prompt-nu-fission
[ 0. 0.]
[ 0. 0.]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
domain=10002 type=delayed-nu-fission
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10002 type=chi-delayed
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10002 type=beta
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
domain=10002 type=decay-rate
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]
[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]

View file

@ -4,7 +4,10 @@ import os
import sys
import glob
import hashlib
import numpy as np
import h5py
sys.path.insert(0, os.pardir)
from testing_harness import PyAPITestHarness
from input_set import PinCellInputSet
@ -12,6 +15,9 @@ import openmc
import openmc.mgxs
np.set_printoptions(formatter={'float_kind': '{:.8e}'.format})
class MGXSTestHarness(PyAPITestHarness):
def _build_inputs(self):
# Set the input set to use the pincell model
@ -21,8 +27,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a two-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6,
20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625, 20.e6])
# Initialize a six-delayed-group structure
delayed_groups = list(range(1,7))
@ -66,10 +71,9 @@ class MGXSTestHarness(PyAPITestHarness):
for domain in self.mgxs_lib.domains:
for mgxs_type in self.mgxs_lib.mgxs_types:
outstr += 'domain={0} type={1}\n'.format(domain.id, mgxs_type)
key = 'material/{0}/{1}/average'.format(domain.id, mgxs_type)
outstr += str(f[key][...]) + '\n'
key = 'material/{0}/{1}/std. dev.'.format(domain.id, mgxs_type)
outstr += str(f[key][...]) + '\n'
avg_key = 'material/{0}/{1}/average'.format(domain.id, mgxs_type)
std_key = 'material/{0}/{1}/std. dev.'.format(domain.id, mgxs_type)
outstr += '{}\n{}\n'.format(f[avg_key][...], f[std_key][...])
# Close the MGXS HDF5 file
f.close()

View file

@ -1 +1 @@
5011f0aec7bb04e22f96cec2c23ae485fe21371dc03e16cb38695b3765cb92545459a897184b501bb99f8e7d162cfbf85eb3fb52ce2d82b2d2ca722b567cbff3
a0d62fc011ae33756cd87202432f5c49f847793a40ec50efc6e4366755a70196f9ae970b24244766c011e2991961ea92317b53f6839b89363262b4e67ed4b289

View file

@ -40,12 +40,12 @@
1 1 2 1 1 total 0.020546 0.008145
2 2 1 1 1 total 0.026008 0.003213
3 2 2 1 1 total 0.021015 0.004911
mesh 1 group in nuclide mean std. dev.
x y z
0 1 1 1 1 total 1.596880 0.348354
1 1 2 1 1 total 1.610266 0.638515
2 2 1 1 1 total 2.048209 0.257682
3 2 2 1 1 total 1.660283 0.390011
mesh 1 group in nuclide mean std. dev.
x y z
0 1 1 1 1 total 1.596880e+06 348353.788370
1 1 2 1 1 total 1.610266e+06 638514.814974
2 2 1 1 1 total 2.048209e+06 257681.654621
3 2 2 1 1 total 1.660283e+06 390011.391278
mesh 1 group in nuclide mean std. dev.
x y z
0 1 1 1 1 total 0.633490 0.094536

View file

@ -16,7 +16,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a one-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 20.e6])
# Initialize a six-delayed-group structure
delayed_groups = list(range(1,7))

View file

@ -1 +1 @@
723ce48152faa9ec1576c26a825dfa45cdd858e721bd698d72d559ac3b9e5c37e5048305bd9af9c3137a781798ab2eee20e5df46455bfd9d6819a08fd2bff47d
e86f24e20f37096c7898f459fc5bf336f3e0670fb30f321443f2bb3a01a154ef3d234bb48d4cee8e0d3730fd182b6a2051ec1b4c09d771420886a56ba928fdd9

View file

@ -19,9 +19,9 @@
material group in nuclide mean std. dev.
1 10000 1 total 0.019432 0.001323
0 10000 2 total 0.469775 0.041682
material group in nuclide mean std. dev.
1 10000 1 total 1.474570 0.099235
0 10000 2 total 37.286896 3.308378
material group in nuclide mean std. dev.
1 10000 1 total 1.474570e+06 9.923532e+04
0 10000 2 total 3.728690e+07 3.308378e+06
material group in nuclide mean std. dev.
1 10000 1 total 0.387418 0.020626
0 10000 2 total 0.395659 0.025125

View file

@ -20,8 +20,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a two-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6,
20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625, 20.e6])
# Initialize a six-delayed-group structure
delayed_groups = list(range(1,7))

View file

@ -1 +1 @@
63f6f8ae24e0d8e23731c903a59e3f5e0edff730933ef6f8836ebf78949db75542c5794a6486c27016ad22e4375b8a18092cd1d1e025162afd01936cac2f205b
1e8d0f408ba9d47fc9278e750dbf68d3104d248f7783ca1185c8b7666c9ee2ba3ec6fcf4a49bb614956bb8eb3a57dc1c104725b4160171dfbe6dc972a268df56

View file

@ -1 +1 @@
e494320a213b5704a2ac915a2ba504857be91961ceb6735b6ad05d81eb31c44c9584d5bd9d40baececf1dcb5b030e6ecec63cfbd20639baf69bcb596c5c46591
ce682f577fd65dd9b6e5da58763cf2ae4cf8e5041b38b5d1ed64d3ba7a3a4df7338aadfa8830a0764fc9ffb737f05fc989a494158c714047186dd18605a7d2b8

View file

@ -20,8 +20,7 @@ class MGXSTestHarness(PyAPITestHarness):
super(MGXSTestHarness, self)._build_inputs()
# Initialize a two-group structure
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625e-6,
20.])
energy_groups = openmc.mgxs.EnergyGroups(group_edges=[0, 0.625, 20.e6])
# Initialize MGXS Library for a few cross section types
self.mgxs_lib = openmc.mgxs.Library(self._input_set.geometry)

View file

@ -9,7 +9,7 @@ k-eigenvalue
particle weight:
1.000000E+00
particle energy:
3.158576E+00
3.158576E+06
particle xyz:
5.846530E+01 -3.717881E+01 -3.787515E+00
particle uvw:

View file

@ -9,7 +9,7 @@ fixed source
particle weight:
1.000000E+00
particle energy:
5.749729E+00
5.749729E+06
particle xyz:
8.754675E+00 2.551620E+00 4.394350E-01
particle uvw:

View file

@ -1,2 +1,2 @@
k-combined:
9.570770E-01 2.513234E-02
1.001024E+00 1.133206E-02

View file

@ -1 +1 @@
15d4ce20d34fbafc757689f1a1f014c42b25efd1cac6bbefdd284c5c1af8bca264c75055fef719441655a61201d0ef098c82cacaa2aeea2b410d3006e983a942
13dde9c81e70ffdbb94f2ef47b64a63d5af0557424748cd224104bc0e1ca3c1078c0c8968ff29953d61dd8ddd8f90905ab945470d296faba18a99bd9ad278af2

View file

@ -42,9 +42,9 @@ class ResonanceScatteringTestHarness(PyAPITestHarness):
geometry.export_to_xml()
# Settings
res_scatt_dbrc = openmc.ResonanceScattering(u238, 'DBRC', 1e-6, 210e-6)
res_scatt_wcm = openmc.ResonanceScattering(u235, 'WCM', 1e-6, 210e-6)
res_scatt_ares = openmc.ResonanceScattering(pu239, 'ARES', 1e-6, 210e-6)
res_scatt_dbrc = openmc.ResonanceScattering(u238, 'DBRC', 1.0, 210.0)
res_scatt_wcm = openmc.ResonanceScattering(u235, 'WCM', 1.0, 210.0)
res_scatt_ares = openmc.ResonanceScattering(pu239, 'ARES', 1.0, 210.0)
sets_file = openmc.Settings()
sets_file.batches = 10

View file

@ -15,7 +15,7 @@
<tally id="2">
<filter type="mesh" bins="1" />
<filter type="energy" bins="0. 0.253e-6 20.0" />
<filter type="energy" bins="0. 0.253 20.0e6" />
<scores>current</scores>
</tally>

View file

@ -1 +1 @@
b791dc4a37d20599afe375d91a9c6da123d6579cdc3ae7093a4a464c82bce43f2349fc6828f0b5d9f6b11b8a1aa1031459cd19f2771277ef40d775fedb68c00f
d9298c0829bc671a41883023a12caee5cb17eb863f30898f48b60212f646ac8869bd55b66f4dd0157daa053b31b7e6f4f393ed98162952f243565b70a19c249f

View file

@ -44,11 +44,11 @@ class SourceTestHarness(PyAPITestHarness):
angle2 = openmc.stats.Monodirectional(reference_uvw=[0., 1., 0.])
angle3 = openmc.stats.Isotropic()
E = np.logspace(-6, 1)
E = np.logspace(0, 7)
p = np.sin(np.linspace(0., pi))
p /= sum(np.diff(E)*p[:-1])
energy1 = openmc.stats.Maxwell(1.2895)
energy2 = openmc.stats.Watt(0.988, 2.249)
energy1 = openmc.stats.Maxwell(1.2895e6)
energy2 = openmc.stats.Watt(0.988e6, 2.249e-6)
energy3 = openmc.stats.Tabular(E, p, interpolation='histogram')
source1 = openmc.Source(spatial1, angle1, energy1, strength=0.5)

View file

@ -10,8 +10,8 @@
<tally id="10">
<filter type="mesh" bins="1" />
<filter type="energy" bins="0.0 5.0 10.0" />
<filter type="energyout" bins="0.0 5.0 10.0" />
<filter type="energy" bins="0.0 5.0e6 10.0e6" />
<filter type="energyout" bins="0.0 5.0e6 10.0e6" />
<scores>scatter-P3 nu-fission</scores>
</tally>

View file

@ -10,8 +10,8 @@
<tally id="10">
<filter type="mesh" bins="1" />
<filter type="energy" bins="0.0 5.0 10.0" />
<filter type="energyout" bins="0.0 5.0 10.0" />
<filter type="energy" bins="0.0 5.0e6 10.0e6" />
<filter type="energyout" bins="0.0 5.0e6 10.0e6" />
<scores>scatter-P3 nu-fission</scores>
</tally>

View file

@ -13,8 +13,8 @@ tally 1:
4.744828E+00
3.400887E-02
2.314715E-04
3.644408E+02
2.658287E+04
3.644408E+08
2.658287E+16
tally 2:
1.770205E+01
6.273029E+01

View file

@ -1 +1 @@
b112ccd96ff89c706c62b4c334021e352de78fc494c4c0513ca7a924bb2e9b18139c5b4fd50c9a92fff07525cc1d9b1464fcc5ca24293e6fd3a8d03d9e12b171
b1f616bc0e342e3886b4b27eca22c4d1e55e445979254d5ba5f9ea01048f53d0e9a01c575745ae130eb34108080d2256ab9e4cb926ea0050891a44ae37ecdd88

View file

@ -1 +1 @@
1e0ce3915c37809cf147e5c0634b696bafd99fa3f41573235d884e54a9a62e8440234a4ee1bf4ce94b363e7afde2ded7c0fd22d0dd897b8aacf1ee017b974449
ceb1420d48e097185dd0798a495676c8e968c37c6e75fd6232137a4df8f6fae33d8232b95c68f6479815a014d20ccfc7611f96b22fcb7da159b42346e00cdf4e

View file

@ -57,7 +57,7 @@ class TalliesTestHarness(PyAPITestHarness):
dg_tally.filters = [DelayedGroupFilter((1, 2, 3, 4, 5, 6))]
dg_tally.scores = ['delayed-nu-fission']
four_groups = (0.0, 0.253e-6, 1.0e-3, 1.0, 20.0)
four_groups = (0.0, 0.253, 1.0e3, 1.0e6, 20.0e6)
energy_filter = EnergyFilter(four_groups)
energy_tally = Tally()
energy_tally.filters = [energy_filter]

View file

@ -1 +1 @@
e6604f58a6a3115b902364ac9c73fcb8babb9df0c527b0b04780fefda61fb41856cffac548a1f81fba5fdac8ab55dd00f683b724c732ed54506933e9d943574d
2ca11b519f903c106940ca4095764a5decab2c474f76a13a0869a9527db7e5bb5733b53b18b4dbb2a5e0dd0ae58cf55017491dae94d41b8094c1140d9079beb8

Some files were not shown because too many files have changed in this diff Show more