This notebook demonstrates how systematic analysis of tally scores is possible using Pandas dataframes. A dataframe can be automatically generated using the Tally.get_pandas_dataframe(...)
method. Furthermore, by linking the tally data in a statepoint file with geometry and material information from a summary file, the dataframe can be shown with user-supplied labels.
import glob
from IPython.display import Image
import matplotlib.pyplot as plt
import scipy.stats
import numpy as np
import pandas as pd
import openmc
%matplotlib inline
First we need to define materials that will be used in the problem. We will create three materials for the fuel, water, and cladding of the fuel pin.
# 1.6 enriched fuel
fuel = openmc.Material(name='1.6% Fuel')
fuel.set_density('g/cm3', 10.31341)
fuel.add_nuclide('U235', 3.7503e-4)
fuel.add_nuclide('U238', 2.2625e-2)
fuel.add_nuclide('O16', 4.6007e-2)
# borated water
water = openmc.Material(name='Borated Water')
water.set_density('g/cm3', 0.740582)
water.add_nuclide('H1', 4.9457e-2)
water.add_nuclide('O16', 2.4732e-2)
water.add_nuclide('B10', 8.0042e-6)
# zircaloy
zircaloy = openmc.Material(name='Zircaloy')
zircaloy.set_density('g/cm3', 6.55)
zircaloy.add_nuclide('Zr90', 7.2758e-3)
With our three materials, we can now create a materials file object that can be exported to an actual XML file.
# Instantiate a Materials collection
materials = openmc.Materials([fuel, water, zircaloy])
# Export to "materials.xml"
materials.export_to_xml()
Now let's move on to the geometry. This problem will be a square array of fuel pins for which we can use OpenMC's lattice/universe feature. The basic universe will have three regions for the fuel, the clad, and the surrounding coolant. The first step is to create the bounding surfaces for fuel and clad, as well as the outer bounding surfaces of the problem.
# Create cylinders for the fuel and clad
fuel_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, r=0.39218)
clad_outer_radius = openmc.ZCylinder(x0=0.0, y0=0.0, r=0.45720)
# Create boundary planes to surround the geometry
# Use both reflective and vacuum boundaries to make life interesting
min_x = openmc.XPlane(x0=-10.71, boundary_type='reflective')
max_x = openmc.XPlane(x0=+10.71, boundary_type='vacuum')
min_y = openmc.YPlane(y0=-10.71, boundary_type='vacuum')
max_y = openmc.YPlane(y0=+10.71, boundary_type='reflective')
min_z = openmc.ZPlane(z0=-10.71, boundary_type='reflective')
max_z = openmc.ZPlane(z0=+10.71, boundary_type='reflective')
With the surfaces defined, we can now construct a fuel pin cell from cells that are defined by intersections of half-spaces created by the surfaces.
# Create fuel Cell
fuel_cell = openmc.Cell(name='1.6% Fuel', fill=fuel,
region=-fuel_outer_radius)
# Create a clad Cell
clad_cell = openmc.Cell(name='1.6% Clad', fill=zircaloy)
clad_cell.region = +fuel_outer_radius & -clad_outer_radius
# Create a moderator Cell
moderator_cell = openmc.Cell(name='1.6% Moderator', fill=water,
region=+clad_outer_radius)
# Create a Universe to encapsulate a fuel pin
pin_cell_universe = openmc.Universe(name='1.6% Fuel Pin', cells=[
fuel_cell, clad_cell, moderator_cell
])
Using the pin cell universe, we can construct a 17x17 rectangular lattice with a 1.26 cm pitch.
# Create fuel assembly Lattice
assembly = openmc.RectLattice(name='1.6% Fuel - 0BA')
assembly.pitch = (1.26, 1.26)
assembly.lower_left = [-1.26 * 17. / 2.0] * 2
assembly.universes = [[pin_cell_universe] * 17] * 17
OpenMC requires that there is a "root" universe. Let us create a root cell that is filled by the pin cell universe and then assign it to the root universe.
# Create root Cell
root_cell = openmc.Cell(name='root cell', fill=assembly)
# Add boundary planes
root_cell.region = +min_x & -max_x & +min_y & -max_y & +min_z & -max_z
# Create root Universe
root_universe = openmc.Universe(name='root universe')
root_universe.add_cell(root_cell)
We now must create a geometry that is assigned a root universe and export it to XML.
# Create Geometry and export to "geometry.xml"
geometry = openmc.Geometry(root_universe)
geometry.export_to_xml()
With the geometry and materials finished, we now just need to define simulation parameters. In this case, we will use 5 inactive batches and 15 minimum active batches each with 2500 particles. We also tell OpenMC to turn tally triggers on, which means it will keep running until some criterion on the uncertainty of tallies is reached.
# OpenMC simulation parameters
min_batches = 20
max_batches = 200
inactive = 5
particles = 2500
# Instantiate a Settings object
settings = openmc.Settings()
settings.batches = min_batches
settings.inactive = inactive
settings.particles = particles
settings.output = {'tallies': False}
settings.trigger_active = True
settings.trigger_max_batches = max_batches
# Create an initial uniform spatial source distribution over fissionable zones
bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]
uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)
settings.source = openmc.Source(space=uniform_dist)
# Export to "settings.xml"
settings.export_to_xml()
Let us also create a plot file that we can use to verify that our pin cell geometry was created successfully.
# Instantiate a Plot
plot = openmc.Plot(plot_id=1)
plot.filename = 'materials-xy'
plot.origin = [0, 0, 0]
plot.width = [21.5, 21.5]
plot.pixels = [250, 250]
plot.color_by = 'material'
# Show plot
openmc.plot_inline(plot)
As we can see from the plot, we have a nice array of pin cells with fuel, cladding, and water! Before we run our simulation, we need to tell the code what we want to tally. The following code shows how to create a variety of tallies.
# Instantiate an empty Tallies object
tallies = openmc.Tallies()
Instantiate a fission rate mesh Tally
# Instantiate a tally Mesh
mesh = openmc.RegularMesh(mesh_id=1)
mesh.dimension = [17, 17]
mesh.lower_left = [-10.71, -10.71]
mesh.width = [1.26, 1.26]
# Instantiate tally Filter
mesh_filter = openmc.MeshFilter(mesh)
# Instantiate energy Filter
energy_filter = openmc.EnergyFilter([0, 0.625, 20.0e6])
# Instantiate the Tally
tally = openmc.Tally(name='mesh tally')
tally.filters = [mesh_filter, energy_filter]
tally.scores = ['fission', 'nu-fission']
# Add mesh and Tally to Tallies
tallies.append(tally)
Instantiate a cell Tally with nuclides
# Instantiate tally Filter
cell_filter = openmc.CellFilter(fuel_cell)
# Instantiate the tally
tally = openmc.Tally(name='cell tally')
tally.filters = [cell_filter]
tally.scores = ['scatter']
tally.nuclides = ['U235', 'U238']
# Add mesh and tally to Tallies
tallies.append(tally)
Create a "distribcell" Tally. The distribcell filter allows us to tally multiple repeated instances of the same cell throughout the geometry.
# Instantiate tally Filter
distribcell_filter = openmc.DistribcellFilter(moderator_cell)
# Instantiate tally Trigger for kicks
trigger = openmc.Trigger(trigger_type='std_dev', threshold=5e-5)
trigger.scores = ['absorption']
# Instantiate the Tally
tally = openmc.Tally(name='distribcell tally')
tally.filters = [distribcell_filter]
tally.scores = ['absorption', 'scatter']
tally.triggers = [trigger]
# Add mesh and tally to Tallies
tallies.append(tally)
# Export to "tallies.xml"
tallies.export_to_xml()
Now we a have a complete set of inputs, so we can go ahead and run our simulation.
# Remove old HDF5 (summary, statepoint) files
!rm statepoint.*
# Run OpenMC!
openmc.run()
zsh:1: no matches found: statepoint.* %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% ############### %%%%%%%%%%%%%%%%%%%%%%%% ################## %%%%%%%%%%%%%%%%%%%%%%% ################### %%%%%%%%%%%%%%%%%%%%%%% #################### %%%%%%%%%%%%%%%%%%%%%% ##################### %%%%%%%%%%%%%%%%%%%%% ###################### %%%%%%%%%%%%%%%%%%%% ####################### %%%%%%%%%%%%%%%%%% ####################### %%%%%%%%%%%%%%%%% ###################### %%%%%%%%%%%%%%%%% #################### %%%%%%%%%%%%%%%%% ################# %%%%%%%%%%%%%%%%% ############### %%%%%%%%%%%%%%%% ############ %%%%%%%%%%%%%%% ######## %%%%%%%%%%%%%% %%%%%%%%%%% | The OpenMC Monte Carlo Code Copyright | 2011-2022 MIT, UChicago Argonne LLC, and contributors License | https://docs.openmc.org/en/latest/license.html Version | 0.13.1 Git SHA1 | 33bc948f4b855c037975f16d16091fe4ecd12de3 Date/Time | 2022-10-04 13:34:46 OpenMP Threads | 2 Reading settings XML file... Reading cross sections XML file... Reading materials XML file... Reading geometry XML file... Reading U235 from /home/pshriwise/data/xs/openmc/nndc_hdf5/U235.h5 Reading U238 from /home/pshriwise/data/xs/openmc/nndc_hdf5/U238.h5 Reading O16 from /home/pshriwise/data/xs/openmc/nndc_hdf5/O16.h5 Reading H1 from /home/pshriwise/data/xs/openmc/nndc_hdf5/H1.h5 Reading B10 from /home/pshriwise/data/xs/openmc/nndc_hdf5/B10.h5 Reading Zr90 from /home/pshriwise/data/xs/openmc/nndc_hdf5/Zr90.h5 Minimum neutron data temperature: 294 K Maximum neutron data temperature: 294 K Reading tallies XML file... Preparing distributed cell instances... Reading plot XML file... Writing summary.h5 file... Maximum neutron transport energy: 20000000 eV for U235 Initializing source particles... ====================> K EIGENVALUE SIMULATION <==================== Bat./Gen. k Average k ========= ======== ==================== 1/1 0.56788 2/1 0.66344 3/1 0.67801 4/1 0.64662 5/1 0.69912 6/1 0.72720 7/1 0.71337 0.72029 +/- 0.00691 8/1 0.70564 0.71540 +/- 0.00630 9/1 0.69707 0.71082 +/- 0.00639 10/1 0.69745 0.70815 +/- 0.00563 11/1 0.68982 0.70509 +/- 0.00552 12/1 0.69541 0.70371 +/- 0.00486 13/1 0.69724 0.70290 +/- 0.00429 14/1 0.71009 0.70370 +/- 0.00387 15/1 0.69614 0.70294 +/- 0.00354 16/1 0.68883 0.70166 +/- 0.00345 17/1 0.68635 0.70038 +/- 0.00340 18/1 0.70665 0.70087 +/- 0.00316 19/1 0.65747 0.69777 +/- 0.00426 20/1 0.69228 0.69740 +/- 0.00399 Triggers unsatisfied, max unc./thresh. is 93.89673349355503 for absorption in tally 3 WARNING: The estimated number of batches is 132254 --- greater than max batches Creating state point statepoint.020.h5... 21/1 0.70753 0.69803 +/- 0.00378 Triggers unsatisfied, max unc./thresh. is 88.01427279111518 for absorption in tally 3 WARNING: The estimated number of batches is 123950 --- greater than max batches 22/1 0.71245 0.69888 +/- 0.00365 Triggers unsatisfied, max unc./thresh. is 84.70931054977731 for absorption in tally 3 WARNING: The estimated number of batches is 121992 --- greater than max batches 23/1 0.65293 0.69633 +/- 0.00429 Triggers unsatisfied, max unc./thresh. is 86.59494174561316 for absorption in tally 3 WARNING: The estimated number of batches is 134982 --- greater than max batches 24/1 0.66415 0.69464 +/- 0.00439 Triggers unsatisfied, max unc./thresh. is 83.04784122809853 for absorption in tally 3 WARNING: The estimated number of batches is 131047 --- greater than max batches 25/1 0.71052 0.69543 +/- 0.00424 Triggers unsatisfied, max unc./thresh. is 81.86075666632895 for absorption in tally 3 WARNING: The estimated number of batches is 134029 --- greater than max batches 26/1 0.64576 0.69307 +/- 0.00468 Triggers unsatisfied, max unc./thresh. is 77.87299751572496 for absorption in tally 3 WARNING: The estimated number of batches is 127354 --- greater than max batches 27/1 0.66691 0.69188 +/- 0.00462 Triggers unsatisfied, max unc./thresh. is 74.42216649773451 for absorption in tally 3 WARNING: The estimated number of batches is 121856 --- greater than max batches 28/1 0.65694 0.69036 +/- 0.00467 Triggers unsatisfied, max unc./thresh. is 71.15138613524442 for absorption in tally 3 WARNING: The estimated number of batches is 116443 --- greater than max batches 29/1 0.69674 0.69062 +/- 0.00447 Triggers unsatisfied, max unc./thresh. is 69.5666585341282 for absorption in tally 3 WARNING: The estimated number of batches is 116154 --- greater than max batches 30/1 0.63556 0.68842 +/- 0.00482 Triggers unsatisfied, max unc./thresh. is 66.88106610912472 for absorption in tally 3 WARNING: The estimated number of batches is 111832 --- greater than max batches 31/1 0.69809 0.68879 +/- 0.00465 Triggers unsatisfied, max unc./thresh. is 64.26124103687252 for absorption in tally 3 WARNING: The estimated number of batches is 107373 --- greater than max batches 32/1 0.64298 0.68710 +/- 0.00479 Triggers unsatisfied, max unc./thresh. is 62.02092253926227 for absorption in tally 3 WARNING: The estimated number of batches is 103864 --- greater than max batches 33/1 0.68559 0.68704 +/- 0.00461 Triggers unsatisfied, max unc./thresh. is 60.428539392862184 for absorption in tally 3 WARNING: The estimated number of batches is 102251 --- greater than max batches 34/1 0.65886 0.68607 +/- 0.00455 Triggers unsatisfied, max unc./thresh. is 58.33270366377693 for absorption in tally 3 WARNING: The estimated number of batches is 98684 --- greater than max batches 35/1 0.68743 0.68611 +/- 0.00440 Triggers unsatisfied, max unc./thresh. is 61.227018115820606 for absorption in tally 3 WARNING: The estimated number of batches is 112468 --- greater than max batches 36/1 0.69354 0.68635 +/- 0.00426 Triggers unsatisfied, max unc./thresh. is 59.98985062152096 for absorption in tally 3 WARNING: The estimated number of batches is 111568 --- greater than max batches 37/1 0.65095 0.68525 +/- 0.00427 Triggers unsatisfied, max unc./thresh. is 58.08611480082295 for absorption in tally 3 WARNING: The estimated number of batches is 107973 --- greater than max batches 38/1 0.74212 0.68697 +/- 0.00449 Triggers unsatisfied, max unc./thresh. is 56.428639900078956 for absorption in tally 3 WARNING: The estimated number of batches is 105084 --- greater than max batches 39/1 0.70258 0.68743 +/- 0.00438 Triggers unsatisfied, max unc./thresh. is 56.00920365851815 for absorption in tally 3 WARNING: The estimated number of batches is 106665 --- greater than max batches 40/1 0.73458 0.68878 +/- 0.00446 Triggers unsatisfied, max unc./thresh. is 54.62032757647575 for absorption in tally 3 WARNING: The estimated number of batches is 104424 --- greater than max batches 41/1 0.66256 0.68805 +/- 0.00439 Triggers unsatisfied, max unc./thresh. is 53.09826256813744 for absorption in tally 3 WARNING: The estimated number of batches is 101505 --- greater than max batches 42/1 0.68262 0.68790 +/- 0.00427 Triggers unsatisfied, max unc./thresh. is 51.6433641977662 for absorption in tally 3 WARNING: The estimated number of batches is 98686 --- greater than max batches 43/1 0.70218 0.68828 +/- 0.00418 Triggers unsatisfied, max unc./thresh. is 50.670570340521 for absorption in tally 3 WARNING: The estimated number of batches is 97571 --- greater than max batches 44/1 0.67643 0.68797 +/- 0.00408 Triggers unsatisfied, max unc./thresh. is 49.69199356348444 for absorption in tally 3 WARNING: The estimated number of batches is 96308 --- greater than max batches 45/1 0.67103 0.68755 +/- 0.00400 Triggers unsatisfied, max unc./thresh. is 48.44632012703269 for absorption in tally 3 WARNING: The estimated number of batches is 93887 --- greater than max batches 46/1 0.65599 0.68678 +/- 0.00398 Triggers unsatisfied, max unc./thresh. is 47.34469866921707 for absorption in tally 3 WARNING: The estimated number of batches is 91908 --- greater than max batches 47/1 0.64796 0.68586 +/- 0.00399 Triggers unsatisfied, max unc./thresh. is 46.49104551846509 for absorption in tally 3 WARNING: The estimated number of batches is 90785 --- greater than max batches 48/1 0.69638 0.68610 +/- 0.00390 Triggers unsatisfied, max unc./thresh. is 45.70905849558008 for absorption in tally 3 WARNING: The estimated number of batches is 89846 --- greater than max batches 49/1 0.69484 0.68630 +/- 0.00382 Triggers unsatisfied, max unc./thresh. is 44.85300785363907 for absorption in tally 3 WARNING: The estimated number of batches is 88524 --- greater than max batches 50/1 0.69678 0.68653 +/- 0.00374 Triggers unsatisfied, max unc./thresh. is 43.84946296158621 for absorption in tally 3 WARNING: The estimated number of batches is 86530 --- greater than max batches 51/1 0.72852 0.68745 +/- 0.00377 Triggers unsatisfied, max unc./thresh. is 43.78709466281985 for absorption in tally 3 WARNING: The estimated number of batches is 88202 --- greater than max batches 52/1 0.69916 0.68769 +/- 0.00370 Triggers unsatisfied, max unc./thresh. is 43.14074745406192 for absorption in tally 3 WARNING: The estimated number of batches is 87478 --- greater than max batches 53/1 0.70809 0.68812 +/- 0.00364 Triggers unsatisfied, max unc./thresh. is 42.78319111440113 for absorption in tally 3 WARNING: The estimated number of batches is 87865 --- greater than max batches 54/1 0.67049 0.68776 +/- 0.00359 Triggers unsatisfied, max unc./thresh. is 41.901523213902486 for absorption in tally 3 WARNING: The estimated number of batches is 86037 --- greater than max batches 55/1 0.67612 0.68753 +/- 0.00352 Triggers unsatisfied, max unc./thresh. is 41.247941809899636 for absorption in tally 3 WARNING: The estimated number of batches is 85075 --- greater than max batches 56/1 0.68035 0.68739 +/- 0.00346 Triggers unsatisfied, max unc./thresh. is 40.465158917081396 for absorption in tally 3 WARNING: The estimated number of batches is 83514 --- greater than max batches 57/1 0.70520 0.68773 +/- 0.00341 Triggers unsatisfied, max unc./thresh. is 40.05474461353258 for absorption in tally 3 WARNING: The estimated number of batches is 83433 --- greater than max batches 58/1 0.70938 0.68814 +/- 0.00337 Triggers unsatisfied, max unc./thresh. is 39.36707588200204 for absorption in tally 3 WARNING: The estimated number of batches is 82143 --- greater than max batches 59/1 0.71202 0.68858 +/- 0.00333 Triggers unsatisfied, max unc./thresh. is 38.66137944696039 for absorption in tally 3 WARNING: The estimated number of batches is 80719 --- greater than max batches 60/1 0.66559 0.68816 +/- 0.00330 Triggers unsatisfied, max unc./thresh. is 37.98682899227783 for absorption in tally 3 WARNING: The estimated number of batches is 79370 --- greater than max batches 61/1 0.65921 0.68765 +/- 0.00328 Triggers unsatisfied, max unc./thresh. is 38.02946096759635 for absorption in tally 3 WARNING: The estimated number of batches is 80995 --- greater than max batches 62/1 0.66584 0.68726 +/- 0.00324 Triggers unsatisfied, max unc./thresh. is 37.38147456631768 for absorption in tally 3 WARNING: The estimated number of batches is 79656 --- greater than max batches 63/1 0.69512 0.68740 +/- 0.00319 Triggers unsatisfied, max unc./thresh. is 36.764088830319764 for absorption in tally 3 WARNING: The estimated number of batches is 78398 --- greater than max batches 64/1 0.72240 0.68799 +/- 0.00319 Triggers unsatisfied, max unc./thresh. is 36.18011705136985 for absorption in tally 3 WARNING: The estimated number of batches is 77237 --- greater than max batches 65/1 0.68739 0.68798 +/- 0.00314 Triggers unsatisfied, max unc./thresh. is 35.60153732817237 for absorption in tally 3 WARNING: The estimated number of batches is 76054 --- greater than max batches 66/1 0.63734 0.68715 +/- 0.00320 Triggers unsatisfied, max unc./thresh. is 35.031719804043895 for absorption in tally 3 WARNING: The estimated number of batches is 74866 --- greater than max batches 67/1 0.67068 0.68689 +/- 0.00315 Triggers unsatisfied, max unc./thresh. is 34.51557177787714 for absorption in tally 3 WARNING: The estimated number of batches is 73868 --- greater than max batches 68/1 0.67713 0.68673 +/- 0.00311 Triggers unsatisfied, max unc./thresh. is 33.969950490099805 for absorption in tally 3 WARNING: The estimated number of batches is 72705 --- greater than max batches 69/1 0.71729 0.68721 +/- 0.00310 Triggers unsatisfied, max unc./thresh. is 33.74180433615716 for absorption in tally 3 WARNING: The estimated number of batches is 72870 --- greater than max batches 70/1 0.69537 0.68733 +/- 0.00305 Triggers unsatisfied, max unc./thresh. is 33.22569238074973 for absorption in tally 3 WARNING: The estimated number of batches is 71762 --- greater than max batches 71/1 0.67200 0.68710 +/- 0.00301 Triggers unsatisfied, max unc./thresh. is 33.22256499836698 for absorption in tally 3 WARNING: The estimated number of batches is 72852 --- greater than max batches 72/1 0.71865 0.68757 +/- 0.00300 Triggers unsatisfied, max unc./thresh. is 32.73550028508711 for absorption in tally 3 WARNING: The estimated number of batches is 71804 --- greater than max batches 73/1 0.69590 0.68769 +/- 0.00296 Triggers unsatisfied, max unc./thresh. is 32.26730455836069 for absorption in tally 3 WARNING: The estimated number of batches is 70806 --- greater than max batches 74/1 0.68222 0.68762 +/- 0.00292 Triggers unsatisfied, max unc./thresh. is 32.10780833971512 for absorption in tally 3 WARNING: The estimated number of batches is 71138 --- greater than max batches 75/1 0.70643 0.68788 +/- 0.00289 Triggers unsatisfied, max unc./thresh. is 31.81893605358122 for absorption in tally 3 WARNING: The estimated number of batches is 70877 --- greater than max batches 76/1 0.67658 0.68772 +/- 0.00285 Triggers unsatisfied, max unc./thresh. is 31.799932820986882 for absorption in tally 3 WARNING: The estimated number of batches is 71803 --- greater than max batches 77/1 0.67857 0.68760 +/- 0.00282 Triggers unsatisfied, max unc./thresh. is 32.2671133722935 for absorption in tally 3 WARNING: The estimated number of batches is 74969 --- greater than max batches 78/1 0.69108 0.68765 +/- 0.00278 Triggers unsatisfied, max unc./thresh. is 31.827343187502493 for absorption in tally 3 WARNING: The estimated number of batches is 73953 --- greater than max batches 79/1 0.68226 0.68757 +/- 0.00274 Triggers unsatisfied, max unc./thresh. is 31.40561277543132 for absorption in tally 3 WARNING: The estimated number of batches is 72993 --- greater than max batches 80/1 0.67648 0.68742 +/- 0.00271 Triggers unsatisfied, max unc./thresh. is 31.18206568121962 for absorption in tally 3 WARNING: The estimated number of batches is 72930 --- greater than max batches 81/1 0.65907 0.68705 +/- 0.00270 Triggers unsatisfied, max unc./thresh. is 30.770354748328618 for absorption in tally 3 WARNING: The estimated number of batches is 71963 --- greater than max batches 82/1 0.63285 0.68635 +/- 0.00276 Triggers unsatisfied, max unc./thresh. is 30.494055493974386 for absorption in tally 3 WARNING: The estimated number of batches is 71607 --- greater than max batches 83/1 0.65128 0.68590 +/- 0.00276 Triggers unsatisfied, max unc./thresh. is 30.31368198832349 for absorption in tally 3 WARNING: The estimated number of batches is 71681 --- greater than max batches 84/1 0.65957 0.68556 +/- 0.00274 Triggers unsatisfied, max unc./thresh. is 29.927509740510708 for absorption in tally 3 WARNING: The estimated number of batches is 70762 --- greater than max batches 85/1 0.69936 0.68574 +/- 0.00271 Triggers unsatisfied, max unc./thresh. is 29.684480624880837 for absorption in tally 3 WARNING: The estimated number of batches is 70499 --- greater than max batches 86/1 0.71538 0.68610 +/- 0.00270 Triggers unsatisfied, max unc./thresh. is 30.428213734574186 for absorption in tally 3 WARNING: The estimated number of batches is 75001 --- greater than max batches 87/1 0.67737 0.68600 +/- 0.00267 Triggers unsatisfied, max unc./thresh. is 30.08396896887296 for absorption in tally 3 WARNING: The estimated number of batches is 74219 --- greater than max batches 88/1 0.67516 0.68587 +/- 0.00264 Triggers unsatisfied, max unc./thresh. is 29.820034395214684 for absorption in tally 3 WARNING: The estimated number of batches is 73812 --- greater than max batches 89/1 0.71831 0.68625 +/- 0.00264 Triggers unsatisfied, max unc./thresh. is 29.52222913175473 for absorption in tally 3 WARNING: The estimated number of batches is 73217 --- greater than max batches 90/1 0.69057 0.68630 +/- 0.00261 Triggers unsatisfied, max unc./thresh. is 29.192694331349163 for absorption in tally 3 WARNING: The estimated number of batches is 72444 --- greater than max batches 91/1 0.72527 0.68676 +/- 0.00262 Triggers unsatisfied, max unc./thresh. is 28.8828546327987 for absorption in tally 3 WARNING: The estimated number of batches is 71748 --- greater than max batches 92/1 0.68240 0.68671 +/- 0.00259 Triggers unsatisfied, max unc./thresh. is 28.746406074791647 for absorption in tally 3 WARNING: The estimated number of batches is 71898 --- greater than max batches 93/1 0.68284 0.68666 +/- 0.00256 Triggers unsatisfied, max unc./thresh. is 28.55969474438906 for absorption in tally 3 WARNING: The estimated number of batches is 71783 --- greater than max batches 94/1 0.67323 0.68651 +/- 0.00254 Triggers unsatisfied, max unc./thresh. is 28.56264444554437 for absorption in tally 3 WARNING: The estimated number of batches is 72614 --- greater than max batches 95/1 0.67226 0.68635 +/- 0.00251 Triggers unsatisfied, max unc./thresh. is 28.266619502256543 for absorption in tally 3 WARNING: The estimated number of batches is 71916 --- greater than max batches 96/1 0.69225 0.68642 +/- 0.00249 Triggers unsatisfied, max unc./thresh. is 28.090316060577223 for absorption in tally 3 WARNING: The estimated number of batches is 71810 --- greater than max batches 97/1 0.67708 0.68632 +/- 0.00246 Triggers unsatisfied, max unc./thresh. is 27.82156180416623 for absorption in tally 3 WARNING: The estimated number of batches is 71217 --- greater than max batches 98/1 0.68583 0.68631 +/- 0.00243 Triggers unsatisfied, max unc./thresh. is 27.55014670870297 for absorption in tally 3 WARNING: The estimated number of batches is 70593 --- greater than max batches 99/1 0.64118 0.68583 +/- 0.00246 Triggers unsatisfied, max unc./thresh. is 27.31334480980206 for absorption in tally 3 WARNING: The estimated number of batches is 70131 --- greater than max batches 100/1 0.67711 0.68574 +/- 0.00243 Triggers unsatisfied, max unc./thresh. is 27.045284630831645 for absorption in tally 3 WARNING: The estimated number of batches is 69493 --- greater than max batches 101/1 0.68084 0.68569 +/- 0.00241 Triggers unsatisfied, max unc./thresh. is 26.78334317556062 for absorption in tally 3 WARNING: The estimated number of batches is 68871 --- greater than max batches 102/1 0.69024 0.68573 +/- 0.00238 Triggers unsatisfied, max unc./thresh. is 26.507109183929384 for absorption in tally 3 WARNING: The estimated number of batches is 68160 --- greater than max batches 103/1 0.66758 0.68555 +/- 0.00236 Triggers unsatisfied, max unc./thresh. is 26.757066176393757 for absorption in tally 3 WARNING: The estimated number of batches is 70168 --- greater than max batches 104/1 0.70685 0.68576 +/- 0.00235 Triggers unsatisfied, max unc./thresh. is 26.504222816390143 for absorption in tally 3 WARNING: The estimated number of batches is 69550 --- greater than max batches 105/1 0.65411 0.68545 +/- 0.00235 Triggers unsatisfied, max unc./thresh. is 26.700673023873687 for absorption in tally 3 WARNING: The estimated number of batches is 71298 --- greater than max batches 106/1 0.66632 0.68526 +/- 0.00233 Triggers unsatisfied, max unc./thresh. is 26.660322217781694 for absorption in tally 3 WARNING: The estimated number of batches is 71794 --- greater than max batches 107/1 0.72095 0.68561 +/- 0.00234 Triggers unsatisfied, max unc./thresh. is 26.493921620269276 for absorption in tally 3 WARNING: The estimated number of batches is 71602 --- greater than max batches 108/1 0.68486 0.68560 +/- 0.00231 Triggers unsatisfied, max unc./thresh. is 26.261958164864215 for absorption in tally 3 WARNING: The estimated number of batches is 71044 --- greater than max batches 109/1 0.70300 0.68577 +/- 0.00230 Triggers unsatisfied, max unc./thresh. is 26.026316755257078 for absorption in tally 3 WARNING: The estimated number of batches is 70452 --- greater than max batches 110/1 0.63861 0.68532 +/- 0.00232 Triggers unsatisfied, max unc./thresh. is 25.92602895583822 for absorption in tally 3 WARNING: The estimated number of batches is 70582 --- greater than max batches 111/1 0.68795 0.68534 +/- 0.00230 Triggers unsatisfied, max unc./thresh. is 25.71712442074191 for absorption in tally 3 WARNING: The estimated number of batches is 70111 --- greater than max batches 112/1 0.64471 0.68496 +/- 0.00231 Triggers unsatisfied, max unc./thresh. is 25.505784104673843 for absorption in tally 3 WARNING: The estimated number of batches is 69614 --- greater than max batches 113/1 0.68637 0.68498 +/- 0.00229 Triggers unsatisfied, max unc./thresh. is 25.844123724835992 for absorption in tally 3 WARNING: The estimated number of batches is 72141 --- greater than max batches 114/1 0.70597 0.68517 +/- 0.00227 Triggers unsatisfied, max unc./thresh. is 26.4137374000716 for absorption in tally 3 WARNING: The estimated number of batches is 76053 --- greater than max batches 115/1 0.67258 0.68506 +/- 0.00225 Triggers unsatisfied, max unc./thresh. is 26.356728326257265 for absorption in tally 3 WARNING: The estimated number of batches is 76420 --- greater than max batches 116/1 0.68671 0.68507 +/- 0.00223 Triggers unsatisfied, max unc./thresh. is 26.12385981970673 for absorption in tally 3 WARNING: The estimated number of batches is 75758 --- greater than max batches 117/1 0.65467 0.68480 +/- 0.00223 Triggers unsatisfied, max unc./thresh. is 25.891227947363426 for absorption in tally 3 WARNING: The estimated number of batches is 75085 --- greater than max batches 118/1 0.68299 0.68478 +/- 0.00221 Triggers unsatisfied, max unc./thresh. is 25.66357949026415 for absorption in tally 3 WARNING: The estimated number of batches is 74429 --- greater than max batches 119/1 0.71640 0.68506 +/- 0.00221 Triggers unsatisfied, max unc./thresh. is 25.798931705980632 for absorption in tally 3 WARNING: The estimated number of batches is 75882 --- greater than max batches 120/1 0.67682 0.68499 +/- 0.00219 Triggers unsatisfied, max unc./thresh. is 25.600502535564395 for absorption in tally 3 WARNING: The estimated number of batches is 75375 --- greater than max batches 121/1 0.64612 0.68465 +/- 0.00220 Triggers unsatisfied, max unc./thresh. is 25.442401128263437 for absorption in tally 3 WARNING: The estimated number of batches is 75094 --- greater than max batches 122/1 0.65743 0.68442 +/- 0.00219 Triggers unsatisfied, max unc./thresh. is 25.314147177380775 for absorption in tally 3 WARNING: The estimated number of batches is 74980 --- greater than max batches 123/1 0.67460 0.68434 +/- 0.00217 Triggers unsatisfied, max unc./thresh. is 25.120655147896837 for absorption in tally 3 WARNING: The estimated number of batches is 74469 --- greater than max batches 124/1 0.63622 0.68393 +/- 0.00219 Triggers unsatisfied, max unc./thresh. is 25.17374854397212 for absorption in tally 3 WARNING: The estimated number of batches is 75418 --- greater than max batches 125/1 0.74014 0.68440 +/- 0.00222 Triggers unsatisfied, max unc./thresh. is 24.96990847535278 for absorption in tally 3 WARNING: The estimated number of batches is 74825 --- greater than max batches 126/1 0.66532 0.68424 +/- 0.00221 Triggers unsatisfied, max unc./thresh. is 24.763458905086484 for absorption in tally 3 WARNING: The estimated number of batches is 74206 --- greater than max batches 127/1 0.66150 0.68406 +/- 0.00220 Triggers unsatisfied, max unc./thresh. is 24.715390376099315 for absorption in tally 3 WARNING: The estimated number of batches is 74529 --- greater than max batches 128/1 0.66861 0.68393 +/- 0.00219 Triggers unsatisfied, max unc./thresh. is 24.53214499997655 for absorption in tally 3 WARNING: The estimated number of batches is 74030 --- greater than max batches 129/1 0.69363 0.68401 +/- 0.00217 Triggers unsatisfied, max unc./thresh. is 24.3508538828241 for absorption in tally 3 WARNING: The estimated number of batches is 73533 --- greater than max batches 130/1 0.70857 0.68421 +/- 0.00216 Triggers unsatisfied, max unc./thresh. is 24.174442566114134 for absorption in tally 3 WARNING: The estimated number of batches is 73056 --- greater than max batches 131/1 0.67714 0.68415 +/- 0.00215 Triggers unsatisfied, max unc./thresh. is 23.983232671129187 for absorption in tally 3 WARNING: The estimated number of batches is 72480 --- greater than max batches 132/1 0.67410 0.68407 +/- 0.00213 Triggers unsatisfied, max unc./thresh. is 23.867449217879173 for absorption in tally 3 WARNING: The estimated number of batches is 72352 --- greater than max batches 133/1 0.69079 0.68412 +/- 0.00211 Triggers unsatisfied, max unc./thresh. is 23.6857708644691 for absorption in tally 3 WARNING: The estimated number of batches is 71816 --- greater than max batches 134/1 0.67606 0.68406 +/- 0.00210 Triggers unsatisfied, max unc./thresh. is 23.736182299674752 for absorption in tally 3 WARNING: The estimated number of batches is 72685 --- greater than max batches 135/1 0.69637 0.68416 +/- 0.00208 Triggers unsatisfied, max unc./thresh. is 23.696430912734872 for absorption in tally 3 WARNING: The estimated number of batches is 73003 --- greater than max batches 136/1 0.67044 0.68405 +/- 0.00207 Triggers unsatisfied, max unc./thresh. is 23.571101620170353 for absorption in tally 3 WARNING: The estimated number of batches is 72789 --- greater than max batches 137/1 0.69621 0.68414 +/- 0.00206 Triggers unsatisfied, max unc./thresh. is 23.48120895070458 for absorption in tally 3 WARNING: The estimated number of batches is 72786 --- greater than max batches 138/1 0.71568 0.68438 +/- 0.00206 Triggers unsatisfied, max unc./thresh. is 23.30415910951134 for absorption in tally 3 WARNING: The estimated number of batches is 72236 --- greater than max batches 139/1 0.69041 0.68443 +/- 0.00204 Triggers unsatisfied, max unc./thresh. is 23.136930058514952 for absorption in tally 3 WARNING: The estimated number of batches is 71738 --- greater than max batches 140/1 0.68872 0.68446 +/- 0.00203 Triggers unsatisfied, max unc./thresh. is 22.974363808251983 for absorption in tally 3 WARNING: The estimated number of batches is 71261 --- greater than max batches 141/1 0.68717 0.68448 +/- 0.00201 Triggers unsatisfied, max unc./thresh. is 22.91818719747599 for absorption in tally 3 WARNING: The estimated number of batches is 71439 --- greater than max batches 142/1 0.70148 0.68460 +/- 0.00200 Triggers unsatisfied, max unc./thresh. is 22.906648117571184 for absorption in tally 3 WARNING: The estimated number of batches is 71891 --- greater than max batches 143/1 0.70002 0.68471 +/- 0.00199 Triggers unsatisfied, max unc./thresh. is 22.80072669054916 for absorption in tally 3 WARNING: The estimated number of batches is 71748 --- greater than max batches 144/1 0.68586 0.68472 +/- 0.00197 Triggers unsatisfied, max unc./thresh. is 22.666610635130866 for absorption in tally 3 WARNING: The estimated number of batches is 71420 --- greater than max batches 145/1 0.64403 0.68443 +/- 0.00198 Triggers unsatisfied, max unc./thresh. is 22.85078652693249 for absorption in tally 3 WARNING: The estimated number of batches is 73108 --- greater than max batches 146/1 0.64824 0.68417 +/- 0.00198 Triggers unsatisfied, max unc./thresh. is 22.780126847767363 for absorption in tally 3 WARNING: The estimated number of batches is 73175 --- greater than max batches 147/1 0.66962 0.68407 +/- 0.00197 Triggers unsatisfied, max unc./thresh. is 22.713317620827834 for absorption in tally 3 WARNING: The estimated number of batches is 73263 --- greater than max batches 148/1 0.67953 0.68404 +/- 0.00196 Triggers unsatisfied, max unc./thresh. is 22.555984411927444 for absorption in tally 3 WARNING: The estimated number of batches is 72760 --- greater than max batches 149/1 0.70028 0.68415 +/- 0.00195 Triggers unsatisfied, max unc./thresh. is 22.467339125811773 for absorption in tally 3 WARNING: The estimated number of batches is 72694 --- greater than max batches 150/1 0.66858 0.68405 +/- 0.00194 Triggers unsatisfied, max unc./thresh. is 22.317895054338617 for absorption in tally 3 WARNING: The estimated number of batches is 72228 --- greater than max batches 151/1 0.64729 0.68379 +/- 0.00194 Triggers unsatisfied, max unc./thresh. is 22.256511911132613 for absorption in tally 3 WARNING: The estimated number of batches is 72327 --- greater than max batches 152/1 0.68669 0.68381 +/- 0.00193 Triggers unsatisfied, max unc./thresh. is 22.104617489185 for absorption in tally 3 WARNING: The estimated number of batches is 71832 --- greater than max batches 153/1 0.65299 0.68361 +/- 0.00193 Triggers unsatisfied, max unc./thresh. is 21.973197923947662 for absorption in tally 3 WARNING: The estimated number of batches is 71463 --- greater than max batches 154/1 0.68069 0.68359 +/- 0.00191 Triggers unsatisfied, max unc./thresh. is 21.83662123023189 for absorption in tally 3 WARNING: The estimated number of batches is 71054 --- greater than max batches 155/1 0.69270 0.68365 +/- 0.00190 Triggers unsatisfied, max unc./thresh. is 21.693707709175182 for absorption in tally 3 WARNING: The estimated number of batches is 70598 --- greater than max batches 156/1 0.67507 0.68359 +/- 0.00189 Triggers unsatisfied, max unc./thresh. is 21.59386795740036 for absorption in tally 3 WARNING: The estimated number of batches is 70416 --- greater than max batches 157/1 0.68589 0.68360 +/- 0.00188 Triggers unsatisfied, max unc./thresh. is 21.661356097401395 for absorption in tally 3 WARNING: The estimated number of batches is 71326 --- greater than max batches 158/1 0.69068 0.68365 +/- 0.00187 Triggers unsatisfied, max unc./thresh. is 21.52579051330482 for absorption in tally 3 WARNING: The estimated number of batches is 70900 --- greater than max batches 159/1 0.67616 0.68360 +/- 0.00185 Triggers unsatisfied, max unc./thresh. is 21.482995971825506 for absorption in tally 3 WARNING: The estimated number of batches is 71079 --- greater than max batches 160/1 0.67492 0.68355 +/- 0.00184 Triggers unsatisfied, max unc./thresh. is 21.35292717227001 for absorption in tally 3 WARNING: The estimated number of batches is 70677 --- greater than max batches 161/1 0.69218 0.68360 +/- 0.00183 Triggers unsatisfied, max unc./thresh. is 21.31450245992177 for absorption in tally 3 WARNING: The estimated number of batches is 70878 --- greater than max batches 162/1 0.66037 0.68345 +/- 0.00183 Triggers unsatisfied, max unc./thresh. is 21.182040871953692 for absorption in tally 3 WARNING: The estimated number of batches is 70448 --- greater than max batches 163/1 0.65640 0.68328 +/- 0.00182 Triggers unsatisfied, max unc./thresh. is 21.086966342350518 for absorption in tally 3 WARNING: The estimated number of batches is 70262 --- greater than max batches 164/1 0.65113 0.68308 +/- 0.00182 Triggers unsatisfied, max unc./thresh. is 20.95392746879447 for absorption in tally 3 WARNING: The estimated number of batches is 69817 --- greater than max batches 165/1 0.70691 0.68323 +/- 0.00182 Triggers unsatisfied, max unc./thresh. is 20.837836858585195 for absorption in tally 3 WARNING: The estimated number of batches is 69480 --- greater than max batches 166/1 0.67295 0.68317 +/- 0.00181 Triggers unsatisfied, max unc./thresh. is 20.76965344402802 for absorption in tally 3 WARNING: The estimated number of batches is 69457 --- greater than max batches 167/1 0.66620 0.68306 +/- 0.00180 Triggers unsatisfied, max unc./thresh. is 20.676559815652364 for absorption in tally 3 WARNING: The estimated number of batches is 69264 --- greater than max batches 168/1 0.66855 0.68297 +/- 0.00179 Triggers unsatisfied, max unc./thresh. is 20.729564534345286 for absorption in tally 3 WARNING: The estimated number of batches is 70049 --- greater than max batches 169/1 0.69800 0.68306 +/- 0.00178 Triggers unsatisfied, max unc./thresh. is 20.880997532545944 for absorption in tally 3 WARNING: The estimated number of batches is 71512 --- greater than max batches 170/1 0.69435 0.68313 +/- 0.00177 Triggers unsatisfied, max unc./thresh. is 20.817259379833427 for absorption in tally 3 WARNING: The estimated number of batches is 71510 --- greater than max batches 171/1 0.65628 0.68297 +/- 0.00177 Triggers unsatisfied, max unc./thresh. is 20.751648716409104 for absorption in tally 3 WARNING: The estimated number of batches is 71490 --- greater than max batches 172/1 0.68216 0.68297 +/- 0.00176 Triggers unsatisfied, max unc./thresh. is 20.63392061753699 for absorption in tally 3 WARNING: The estimated number of batches is 71107 --- greater than max batches 173/1 0.67774 0.68293 +/- 0.00175 Triggers unsatisfied, max unc./thresh. is 20.517289218805363 for absorption in tally 3 WARNING: The estimated number of batches is 70727 --- greater than max batches 174/1 0.71232 0.68311 +/- 0.00175 Triggers unsatisfied, max unc./thresh. is 20.397375101025485 for absorption in tally 3 WARNING: The estimated number of batches is 70318 --- greater than max batches 175/1 0.65712 0.68295 +/- 0.00174 Triggers unsatisfied, max unc./thresh. is 20.340809150523164 for absorption in tally 3 WARNING: The estimated number of batches is 70343 --- greater than max batches 176/1 0.67973 0.68294 +/- 0.00173 Triggers unsatisfied, max unc./thresh. is 20.225760844958906 for absorption in tally 3 WARNING: The estimated number of batches is 69958 --- greater than max batches 177/1 0.70262 0.68305 +/- 0.00173 Triggers unsatisfied, max unc./thresh. is 20.188734566509453 for absorption in tally 3 WARNING: The estimated number of batches is 70110 --- greater than max batches 178/1 0.66234 0.68293 +/- 0.00172 Triggers unsatisfied, max unc./thresh. is 20.365846675766896 for absorption in tally 3 WARNING: The estimated number of batches is 71760 --- greater than max batches 179/1 0.67778 0.68290 +/- 0.00171 Triggers unsatisfied, max unc./thresh. is 20.266332469411914 for absorption in tally 3 WARNING: The estimated number of batches is 71472 --- greater than max batches 180/1 0.63949 0.68265 +/- 0.00172 Triggers unsatisfied, max unc./thresh. is 20.153693580077913 for absorption in tally 3 WARNING: The estimated number of batches is 71085 --- greater than max batches 181/1 0.66641 0.68256 +/- 0.00171 Triggers unsatisfied, max unc./thresh. is 20.06531024570685 for absorption in tally 3 WARNING: The estimated number of batches is 70866 --- greater than max batches 182/1 0.70248 0.68267 +/- 0.00171 Triggers unsatisfied, max unc./thresh. is 19.9948494014597 for absorption in tally 3 WARNING: The estimated number of batches is 70769 --- greater than max batches 183/1 0.68906 0.68271 +/- 0.00170 Triggers unsatisfied, max unc./thresh. is 20.09202626796155 for absorption in tally 3 WARNING: The estimated number of batches is 71862 --- greater than max batches 184/1 0.64815 0.68252 +/- 0.00170 Triggers unsatisfied, max unc./thresh. is 20.010212893652305 for absorption in tally 3 WARNING: The estimated number of batches is 71679 --- greater than max batches 185/1 0.66689 0.68243 +/- 0.00169 Triggers unsatisfied, max unc./thresh. is 19.898829712842296 for absorption in tally 3 WARNING: The estimated number of batches is 71279 --- greater than max batches 186/1 0.68573 0.68245 +/- 0.00168 Triggers unsatisfied, max unc./thresh. is 19.796151037696795 for absorption in tally 3 WARNING: The estimated number of batches is 70937 --- greater than max batches 187/1 0.66673 0.68236 +/- 0.00167 Triggers unsatisfied, max unc./thresh. is 19.7015255155044 for absorption in tally 3 WARNING: The estimated number of batches is 70649 --- greater than max batches 188/1 0.65563 0.68222 +/- 0.00167 Triggers unsatisfied, max unc./thresh. is 19.864637065809237 for absorption in tally 3 WARNING: The estimated number of batches is 72218 --- greater than max batches 189/1 0.69960 0.68231 +/- 0.00167 Triggers unsatisfied, max unc./thresh. is 19.85591184981352 for absorption in tally 3 WARNING: The estimated number of batches is 72549 --- greater than max batches 190/1 0.68178 0.68231 +/- 0.00166 Triggers unsatisfied, max unc./thresh. is 19.762972685185634 for absorption in tally 3 WARNING: The estimated number of batches is 72262 --- greater than max batches 191/1 0.69760 0.68239 +/- 0.00165 Triggers unsatisfied, max unc./thresh. is 19.7609343058741 for absorption in tally 3 WARNING: The estimated number of batches is 72637 --- greater than max batches 192/1 0.66122 0.68228 +/- 0.00164 Triggers unsatisfied, max unc./thresh. is 19.80418051094423 for absorption in tally 3 WARNING: The estimated number of batches is 73348 --- greater than max batches 193/1 0.69346 0.68234 +/- 0.00164 Triggers unsatisfied, max unc./thresh. is 19.801360007084376 for absorption in tally 3 WARNING: The estimated number of batches is 73719 --- greater than max batches 194/1 0.67831 0.68231 +/- 0.00163 Triggers unsatisfied, max unc./thresh. is 19.73891559058344 for absorption in tally 3 WARNING: The estimated number of batches is 73645 --- greater than max batches 195/1 0.65285 0.68216 +/- 0.00163 Triggers unsatisfied, max unc./thresh. is 19.65303479951205 for absorption in tally 3 WARNING: The estimated number of batches is 73391 --- greater than max batches 196/1 0.66672 0.68208 +/- 0.00162 Triggers unsatisfied, max unc./thresh. is 19.625879969536705 for absorption in tally 3 WARNING: The estimated number of batches is 73574 --- greater than max batches 197/1 0.67536 0.68204 +/- 0.00161 Triggers unsatisfied, max unc./thresh. is 19.528488790397677 for absorption in tally 3 WARNING: The estimated number of batches is 73227 --- greater than max batches 198/1 0.66675 0.68196 +/- 0.00161 Triggers unsatisfied, max unc./thresh. is 19.511910293025363 for absorption in tally 3 WARNING: The estimated number of batches is 73483 --- greater than max batches 199/1 0.64492 0.68177 +/- 0.00161 Triggers unsatisfied, max unc./thresh. is 19.511121679344882 for absorption in tally 3 WARNING: The estimated number of batches is 73858 --- greater than max batches 200/1 0.69441 0.68184 +/- 0.00160 Triggers unsatisfied, max unc./thresh. is 19.41826281743187 for absorption in tally 3 WARNING: The estimated number of batches is 73534 --- greater than max batches Creating state point statepoint.200.h5... =======================> TIMING STATISTICS <======================= Total time for initialization = 6.7469e-01 seconds Reading cross sections = 6.6495e-01 seconds Total time in simulation = 1.3884e+02 seconds Time in transport only = 1.3872e+02 seconds Time in inactive batches = 1.6291e+00 seconds Time in active batches = 1.3721e+02 seconds Time synchronizing fission bank = 4.2426e-02 seconds Sampling source sites = 3.9046e-02 seconds SEND/RECV source sites = 3.2353e-03 seconds Time accumulating tallies = 2.5633e-02 seconds Time writing statepoints = 4.3956e-03 seconds Total time for finalization = 1.8500e-06 seconds Total time elapsed = 1.3954e+02 seconds Calculation Rate (inactive) = 7672.85 particles/second Calculation Rate (active) = 3552.9 particles/second ============================> RESULTS <============================ k-effective (Collision) = 0.68290 +/- 0.00158 k-effective (Track-length) = 0.68184 +/- 0.00160 k-effective (Absorption) = 0.68167 +/- 0.00151 Combined k-effective = 0.68200 +/- 0.00134 Leakage Fraction = 0.33996 +/- 0.00079
# We do not know how many batches were needed to satisfy the
# tally trigger(s), so find the statepoint file(s)
statepoints = glob.glob('statepoint.*.h5')
# Load the last statepoint file
sp = openmc.StatePoint(statepoints[-1])
Analyze the mesh fission rate tally
# Find the mesh tally with the StatePoint API
tally = sp.get_tally(name='mesh tally')
# Print a little info about the mesh tally to the screen
print(tally)
Tally ID = 1 Name = mesh tally Filters = MeshFilter, EnergyFilter Nuclides = total Scores = ['fission', 'nu-fission'] Estimator = tracklength
Use the new Tally data retrieval API with pure NumPy
# Get the relative error for the thermal fission reaction
# rates in the four corner pins
data = tally.get_values(scores=['fission'],
filters=[openmc.MeshFilter, openmc.EnergyFilter], \
filter_bins=[((1,1),(1,17), (17,1), (17,17)), \
((0., 0.625),)], value='rel_err')
print(data)
[[[0.04969994]] [[0.02200773]] [[0.12289506]] [[0.05303359]]]
# Get a pandas dataframe for the mesh tally data
df = tally.get_pandas_dataframe(nuclides=False)
# Set the Pandas float display settings
pd.options.display.float_format = '{:.2e}'.format
# Print the first twenty rows in the dataframe
df.head(20)
mesh 1 | energy low [eV] | energy high [eV] | score | mean | std. dev. | |||
---|---|---|---|---|---|---|---|---|
x | y | z | ||||||
0 | 1 | 1 | 1 | 0.00e+00 | 6.25e-01 | fission | 2.10e-04 | 1.04e-05 |
1 | 1 | 1 | 1 | 0.00e+00 | 6.25e-01 | nu-fission | 5.11e-04 | 2.54e-05 |
2 | 1 | 1 | 1 | 6.25e-01 | 2.00e+07 | fission | 7.19e-05 | 1.83e-06 |
3 | 1 | 1 | 1 | 6.25e-01 | 2.00e+07 | nu-fission | 1.89e-04 | 4.75e-06 |
4 | 2 | 1 | 1 | 0.00e+00 | 6.25e-01 | fission | 2.19e-04 | 9.36e-06 |
5 | 2 | 1 | 1 | 0.00e+00 | 6.25e-01 | nu-fission | 5.33e-04 | 2.28e-05 |
6 | 2 | 1 | 1 | 6.25e-01 | 2.00e+07 | fission | 6.98e-05 | 1.63e-06 |
7 | 2 | 1 | 1 | 6.25e-01 | 2.00e+07 | nu-fission | 1.85e-04 | 4.24e-06 |
8 | 3 | 1 | 1 | 0.00e+00 | 6.25e-01 | fission | 2.23e-04 | 1.02e-05 |
9 | 3 | 1 | 1 | 0.00e+00 | 6.25e-01 | nu-fission | 5.44e-04 | 2.48e-05 |
10 | 3 | 1 | 1 | 6.25e-01 | 2.00e+07 | fission | 6.69e-05 | 1.65e-06 |
11 | 3 | 1 | 1 | 6.25e-01 | 2.00e+07 | nu-fission | 1.76e-04 | 4.27e-06 |
12 | 4 | 1 | 1 | 0.00e+00 | 6.25e-01 | fission | 2.09e-04 | 9.24e-06 |
13 | 4 | 1 | 1 | 0.00e+00 | 6.25e-01 | nu-fission | 5.09e-04 | 2.25e-05 |
14 | 4 | 1 | 1 | 6.25e-01 | 2.00e+07 | fission | 6.72e-05 | 1.65e-06 |
15 | 4 | 1 | 1 | 6.25e-01 | 2.00e+07 | nu-fission | 1.77e-04 | 4.32e-06 |
16 | 5 | 1 | 1 | 0.00e+00 | 6.25e-01 | fission | 2.11e-04 | 8.34e-06 |
17 | 5 | 1 | 1 | 0.00e+00 | 6.25e-01 | nu-fission | 5.15e-04 | 2.03e-05 |
18 | 5 | 1 | 1 | 6.25e-01 | 2.00e+07 | fission | 6.47e-05 | 1.40e-06 |
19 | 5 | 1 | 1 | 6.25e-01 | 2.00e+07 | nu-fission | 1.70e-04 | 3.66e-06 |
# Create a boxplot to view the distribution of
# fission and nu-fission rates in the pins
bp = df.boxplot(column='mean', by='score')
# Extract thermal nu-fission rates from pandas
fiss = df[df['score'] == 'nu-fission']
fiss = fiss[fiss['energy low [eV]'] == 0.0]
# Extract mean and reshape as 2D NumPy arrays
mean = fiss['mean'].values.reshape((17,17))
plt.imshow(mean, interpolation='nearest')
plt.title('fission rate')
plt.xlabel('x')
plt.ylabel('y')
plt.colorbar()
<matplotlib.colorbar.Colorbar at 0x7fa602978940>
Analyze the cell+nuclides scatter-y2 rate tally
# Find the cell Tally with the StatePoint API
tally = sp.get_tally(name='cell tally')
# Print a little info about the cell tally to the screen
print(tally)
Tally ID = 2 Name = cell tally Filters = CellFilter Nuclides = U235 U238 Scores = ['scatter'] Estimator = tracklength
# Get a pandas dataframe for the cell tally data
df = tally.get_pandas_dataframe()
# Print the first twenty rows in the dataframe
df.head(20)
cell | nuclide | score | mean | std. dev. | |
---|---|---|---|---|---|
0 | 1 | U235 | scatter | 3.82e-02 | 4.48e-05 |
1 | 1 | U238 | scatter | 2.34e+00 | 2.52e-03 |
Use the new Tally data retrieval API with pure NumPy
# Get the standard deviations the total scattering rate
data = tally.get_values(scores=['scatter'],
nuclides=['U238', 'U235'], value='std_dev')
print(data)
[[[2.52057168e-03] [4.48210729e-05]]]
Analyze the distribcell tally
# Find the distribcell Tally with the StatePoint API
tally = sp.get_tally(name='distribcell tally')
# Print a little info about the distribcell tally to the screen
print(tally)
Tally ID = 3 Name = distribcell tally Filters = DistribcellFilter Nuclides = total Scores = ['absorption', 'scatter'] Estimator = tracklength
Use the new Tally data retrieval API with pure NumPy
# Get the relative error for the scattering reaction rates in
# the first 10 distribcell instances
data = tally.get_values(scores=['scatter'], filters=[openmc.DistribcellFilter],
filter_bins=[tuple(range(10))], value='rel_err')
print(data)
[[[0.01301476]] [[0.0136507 ]] [[0.01260538]] [[0.01293374]] [[0.01219012]] [[0.01191931]] [[0.0127884 ]] [[0.01339325]] [[0.01309524]] [[0.0133674 ]]]
Now that we're done getting data from the statepoint file, we'll close it to free the file handle for subsequent OpenMC runs.
# Close the statepoint file now that we're done gathering info from it
sp.close()
Print the distribcell tally dataframe
# Get a pandas dataframe for the distribcell tally data
df = tally.get_pandas_dataframe(nuclides=False)
# Print the last twenty rows in the dataframe
df.tail(20)
level 1 | level 2 | level 3 | distribcell | score | mean | std. dev. | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
univ | cell | lat | univ | cell | |||||||
id | id | id | x | y | id | id | |||||
558 | 3 | 4 | 2 | 7 | 16 | 1 | 3 | 279 | absorption | 7.23e-04 | 1.05e-05 |
559 | 3 | 4 | 2 | 7 | 16 | 1 | 3 | 279 | scatter | 9.08e-02 | 6.39e-04 |
560 | 3 | 4 | 2 | 8 | 16 | 1 | 3 | 280 | absorption | 6.75e-04 | 1.09e-05 |
561 | 3 | 4 | 2 | 8 | 16 | 1 | 3 | 280 | scatter | 8.49e-02 | 6.75e-04 |
562 | 3 | 4 | 2 | 9 | 16 | 1 | 3 | 281 | absorption | 6.22e-04 | 1.06e-05 |
563 | 3 | 4 | 2 | 9 | 16 | 1 | 3 | 281 | scatter | 7.85e-02 | 6.36e-04 |
564 | 3 | 4 | 2 | 10 | 16 | 1 | 3 | 282 | absorption | 5.66e-04 | 1.01e-05 |
565 | 3 | 4 | 2 | 10 | 16 | 1 | 3 | 282 | scatter | 7.17e-02 | 5.80e-04 |
566 | 3 | 4 | 2 | 11 | 16 | 1 | 3 | 283 | absorption | 4.94e-04 | 9.18e-06 |
567 | 3 | 4 | 2 | 11 | 16 | 1 | 3 | 283 | scatter | 6.35e-02 | 5.45e-04 |
568 | 3 | 4 | 2 | 12 | 16 | 1 | 3 | 284 | absorption | 4.34e-04 | 8.41e-06 |
569 | 3 | 4 | 2 | 12 | 16 | 1 | 3 | 284 | scatter | 5.54e-02 | 5.15e-04 |
570 | 3 | 4 | 2 | 13 | 16 | 1 | 3 | 285 | absorption | 3.58e-04 | 7.60e-06 |
571 | 3 | 4 | 2 | 13 | 16 | 1 | 3 | 285 | scatter | 4.70e-02 | 4.81e-04 |
572 | 3 | 4 | 2 | 14 | 16 | 1 | 3 | 286 | absorption | 2.83e-04 | 7.08e-06 |
573 | 3 | 4 | 2 | 14 | 16 | 1 | 3 | 286 | scatter | 3.84e-02 | 4.47e-04 |
574 | 3 | 4 | 2 | 15 | 16 | 1 | 3 | 287 | absorption | 2.19e-04 | 6.36e-06 |
575 | 3 | 4 | 2 | 15 | 16 | 1 | 3 | 287 | scatter | 2.99e-02 | 3.89e-04 |
576 | 3 | 4 | 2 | 16 | 16 | 1 | 3 | 288 | absorption | 1.18e-04 | 4.29e-06 |
577 | 3 | 4 | 2 | 16 | 16 | 1 | 3 | 288 | scatter | 1.85e-02 | 2.75e-04 |
# Show summary statistics for absorption distribcell tally data
absorption = df[df['score'] == 'absorption']
absorption[['mean', 'std. dev.']].dropna().describe()
# Note that the maximum standard deviation does indeed
# meet the 5e-5 threshold set by the tally trigger
mean | std. dev. | |
---|---|---|
count | 2.89e+02 | 2.89e+02 |
mean | 4.19e-04 | 6.85e-06 |
std | 2.43e-04 | 2.55e-06 |
min | 1.65e-05 | 1.25e-06 |
25% | 2.08e-04 | 4.81e-06 |
50% | 3.95e-04 | 6.87e-06 |
75% | 6.19e-04 | 8.77e-06 |
max | 9.04e-04 | 1.51e-05 |
Perform a statistical test comparing the tally sample distributions for two categories of fuel pins.
# Extract tally data from pins in the pins divided along y=-x diagonal
multi_index = ('level 2', 'lat',)
lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]
upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]
lower = lower[lower['score'] == 'absorption']
upper = upper[upper['score'] == 'absorption']
# Perform non-parametric Mann-Whitney U Test to see if the
# absorption rates (may) come from same sampling distribution
u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])
print('Mann-Whitney Test p-value: {0}'.format(p))
Mann-Whitney Test p-value: 0.9772478044850605
Note that the symmetry implied by the y=-x diagonal ensures that the two sampling distributions are identical. Indeed, as illustrated by the test above, for any reasonable significance level (e.g., $\alpha$=0.05) one would not reject the null hypothesis that the two sampling distributions are identical.
Next, perform the same test but with two groupings of pins which are not symmetrically identical to one another.
# Extract tally data from pins in the pins divided along y=x diagonal
multi_index = ('level 2', 'lat',)
lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]
upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]
lower = lower[lower['score'] == 'absorption']
upper = upper[upper['score'] == 'absorption']
# Perform non-parametric Mann-Whitney U Test to see if the
# absorption rates (may) come from same sampling distribution
u, p = scipy.stats.mannwhitneyu(lower['mean'], upper['mean'])
print('Mann-Whitney Test p-value: {0}'.format(p))
Mann-Whitney Test p-value: 6.571087274814189e-42
Note that the asymmetry implied by the y=x diagonal ensures that the two sampling distributions are not identical. Indeed, as illustrated by the test above, for any reasonable significance level (e.g., $\alpha$=0.05) one would reject the null hypothesis that the two sampling distributions are identical.
# Extract the scatter tally data from pandas
scatter = df[df['score'] == 'scatter']
scatter['rel. err.'] = scatter['std. dev.'] / scatter['mean']
# Show a scatter plot of the mean vs. the std. dev.
scatter.plot(kind='scatter', x='mean', y='rel. err.', title='Scattering Rates')
/tmp/ipykernel_458910/1422565182.py:4: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy scatter['rel. err.'] = scatter['std. dev.'] / scatter['mean']
<AxesSubplot:title={'center':'Scattering Rates'}, xlabel='mean', ylabel='rel. err.'>
# Plot a histogram and kernel density estimate for the scattering rates
scatter['mean'].plot(kind='hist', bins=25)
scatter['mean'].plot(kind='kde')
plt.title('Scattering Rates')
plt.xlabel('Mean')
plt.legend(['KDE', 'Histogram'])
<matplotlib.legend.Legend at 0x7fa601d820a0>