Update the diff tally testing

This commit is contained in:
Sterling Harper 2016-01-23 21:38:44 -05:00
parent cbe4c55e65
commit 453d395bcd
17 changed files with 221 additions and 526 deletions

View file

@ -1,150 +0,0 @@
import openmc
def make_mats(mod_density=0.7420582):
water = openmc.Material(name='water')
water.set_density('g/cm3', mod_density)
water.add_nuclide(openmc.Nuclide('H-1'), 2.0)
water.add_nuclide(openmc.Nuclide('O-16'), 1.0)
fuel = openmc.Material(name='fuel 2.4%')
fuel.set_density('g/cm3', 10.29769)
fuel.add_nuclide(openmc.Nuclide('U-234'), 5.7987e-06)
fuel.add_nuclide(openmc.Nuclide('U-235'), 7.2175e-04)
fuel.add_nuclide(openmc.Nuclide('U-238'), 2.2253e-02)
fuel.add_nuclide(openmc.Nuclide('O-16'), 4.5750e-02)
fuel.add_nuclide(openmc.Nuclide('O-17'), 9.4222e-05)
zirc4 = openmc.Material(name='zircaloy 4')
zirc4.set_density('g/cm3', 6.55)
zirc4.add_nuclide(openmc.Nuclide('O-16'), 3.0743e-04)
zirc4.add_nuclide(openmc.Nuclide('O-17'), 1.1711e-07)
# O-18 omitted
zirc4.add_nuclide(openmc.Nuclide('Cr-50'), 3.2962e-06)
zirc4.add_nuclide(openmc.Nuclide('Cr-52'), 6.3564e-05)
zirc4.add_nuclide(openmc.Nuclide('Cr-53'), 7.2076e-06)
zirc4.add_nuclide(openmc.Nuclide('Cr-54'), 1.7941e-06)
zirc4.add_nuclide(openmc.Nuclide('Fe-54'), 8.6699e-06)
zirc4.add_nuclide(openmc.Nuclide('Fe-56'), 1.3610e-04)
zirc4.add_nuclide(openmc.Nuclide('Fe-57'), 3.1431e-06)
zirc4.add_nuclide(openmc.Nuclide('Fe-58'), 4.1829e-07)
zirc4.add_nuclide(openmc.Nuclide('Zr-90'), 2.1827e-02)
zirc4.add_nuclide(openmc.Nuclide('Zr-91'), 4.7600e-03)
zirc4.add_nuclide(openmc.Nuclide('Zr-92'), 7.2758e-03)
zirc4.add_nuclide(openmc.Nuclide('Zr-94'), 7.3734e-03)
zirc4.add_nuclide(openmc.Nuclide('Zr-96'), 1.1879e-03)
zirc4.add_nuclide(openmc.Nuclide('Sn-112'), 4.6735e-06)
zirc4.add_nuclide(openmc.Nuclide('Sn-114'), 3.1799e-06)
zirc4.add_nuclide(openmc.Nuclide('Sn-115'), 1.6381e-06)
zirc4.add_nuclide(openmc.Nuclide('Sn-116'), 7.0055e-05)
zirc4.add_nuclide(openmc.Nuclide('Sn-117'), 3.7003e-05)
zirc4.add_nuclide(openmc.Nuclide('Sn-118'), 1.1669e-04)
zirc4.add_nuclide(openmc.Nuclide('Sn-119'), 4.1387e-05)
zirc4.add_nuclide(openmc.Nuclide('Sn-120'), 1.5697e-04)
zirc4.add_nuclide(openmc.Nuclide('Sn-122'), 2.2308e-05)
zirc4.add_nuclide(openmc.Nuclide('Sn-124'), 2.7897e-05)
materials_file = openmc.MaterialsFile()
materials_file.default_xs = '71c'
materials_file.add_materials([water, fuel, zirc4])
return (materials_file,
{'mod':water,
'fuel':fuel,
'clad':zirc4})
def make_geom(mats):
# Instantiate surfaces.
rfo = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.39218, name='fuel outer')
rci = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.40005, name='clad inner')
rco = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.45720, name='clad outer')
x0 = openmc.XPlane(x0=-0.62992)
x1 = openmc.XPlane(x0=0.62992)
y0 = openmc.YPlane(y0=-0.62992)
y1 = openmc.YPlane(y0=0.62992)
z0 = openmc.ZPlane(z0=-1.0)
z1 = openmc.ZPlane(z0=1.0)
x0.boundary_type = 'reflective'
x1.boundary_type = 'reflective'
y0.boundary_type = 'reflective'
y1.boundary_type = 'reflective'
z0.boundary_type = 'reflective'
z1.boundary_type = 'reflective'
# Instantiate cells.
fuel_c = openmc.Cell(name='fuel')
fuel_c.add_surface(rfo, halfspace=-1)
fuel_c.add_surface(z0, halfspace=+1)
fuel_c.add_surface(z1, halfspace=-1)
gap = openmc.Cell(name='gap')
gap.add_surface(rci, halfspace=-1)
gap.add_surface(rfo, halfspace=+1)
gap.add_surface(z0, halfspace=+1)
gap.add_surface(z1, halfspace=-1)
clad_c = openmc.Cell(name='clad')
clad_c.add_surface(rco, halfspace=-1)
clad_c.add_surface(rci, halfspace=+1)
clad_c.add_surface(z0, halfspace=+1)
clad_c.add_surface(z1, halfspace=-1)
mod_c = openmc.Cell(name='moderator')
mod_c.add_surface(rco, halfspace=+1)
mod_c.add_surface(x0, halfspace=+1)
mod_c.add_surface(x1, halfspace=-1)
mod_c.add_surface(y0, halfspace=+1)
mod_c.add_surface(y1, halfspace=-1)
mod_c.add_surface(z0, halfspace=+1)
mod_c.add_surface(z1, halfspace=-1)
# Add materials to cells.
fuel_c.fill = mats['fuel']
gap.fill = 'void'
clad_c.fill = mats['clad']
mod_c.fill = mats['mod']
# Instantiate universes.
u0 = openmc.Universe(universe_id=0)
u0.add_cells([fuel_c, gap, clad_c, mod_c])
# Write the XML file.
geometry = openmc.Geometry()
geometry.root_universe = u0
geometry_file = openmc.GeometryFile()
geometry_file.geometry = geometry
return geometry_file
def make_settings(**kwargs):
if 'batches' in kwargs:
batches = kwargs['batches']
settings_file = openmc.SettingsFile()
settings_file.batches = kwargs.setdefault('batches', 100)
settings_file.inactive = kwargs.setdefault('inactive', 10)
settings_file.particles = kwargs.setdefault('particles', 1000)
settings_file.set_source_space('box', (-0.6, -0.6, -0.9,
0.6, 0.6, 0.9))
settings_file.entropy_lower_left = (-0.7, -0.7, -1.1)
settings_file.entropy_upper_right = (0.7, 0.7, 1.1)
settings_file.entropy_dimension = (10, 10, 10)
return settings_file
def make_inputs(mod_density=0.7420582, **kwargs):
(mat_file, mats) = make_mats(mod_density)
mat_file.export_to_xml()
geo_file = make_geom(mats)
geo_file.export_to_xml()
sets_file = make_settings(**kwargs)
sets_file.export_to_xml()
if __name__ == '__main__':
make_inputs(inactive=5, batches=10, particles=100)

View file

@ -1,16 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<geometry>
<cell id="10000" material="10001" name="fuel" region="(-10000 10007 -10008)" universe="0" />
<cell id="10001" material="void" name="gap" region="(-10001 10000 10007 -10008)" universe="0" />
<cell id="10002" material="10002" name="clad" region="(-10002 10001 10007 -10008)" universe="0" />
<cell id="10003" material="10000" name="moderator" region="(10002 10003 -10004 10005 -10006 10007 -10008)" universe="0" />
<surface boundary="transmission" coeffs="0.0 0.0 0.39218" id="10000" name="fuel outer" type="z-cylinder" />
<surface boundary="transmission" coeffs="0.0 0.0 0.40005" id="10001" name="clad inner" type="z-cylinder" />
<surface boundary="transmission" coeffs="0.0 0.0 0.4572" id="10002" name="clad outer" type="z-cylinder" />
<surface boundary="reflective" coeffs="-0.62992" id="10003" type="x-plane" />
<surface boundary="reflective" coeffs="0.62992" id="10004" type="x-plane" />
<surface boundary="reflective" coeffs="-0.62992" id="10005" type="y-plane" />
<surface boundary="reflective" coeffs="0.62992" id="10006" type="y-plane" />
<surface boundary="reflective" coeffs="-1.0" id="10007" type="z-plane" />
<surface boundary="reflective" coeffs="1.0" id="10008" type="z-plane" />
</geometry>

View file

@ -1,45 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<materials>
<default_xs>71c</default_xs>
<material id="10000" name="water">
<density units="g/cm3" value="0.7420582" />
<nuclide ao="2.0" name="H-1" />
<nuclide ao="1.0" name="O-16" />
</material>
<material id="10001" name="fuel 2.4%">
<density units="g/cm3" value="10.29769" />
<nuclide ao="5.7987e-06" name="U-234" />
<nuclide ao="0.00072175" name="U-235" />
<nuclide ao="0.022253" name="U-238" />
<nuclide ao="0.04575" name="O-16" />
<nuclide ao="9.4222e-05" name="O-17" />
</material>
<material id="10002" name="zircaloy 4">
<density units="g/cm3" value="6.55" />
<nuclide ao="0.00030743" name="O-16" />
<nuclide ao="1.1711e-07" name="O-17" />
<nuclide ao="3.2962e-06" name="Cr-50" />
<nuclide ao="6.3564e-05" name="Cr-52" />
<nuclide ao="7.2076e-06" name="Cr-53" />
<nuclide ao="1.7941e-06" name="Cr-54" />
<nuclide ao="8.6699e-06" name="Fe-54" />
<nuclide ao="0.0001361" name="Fe-56" />
<nuclide ao="3.1431e-06" name="Fe-57" />
<nuclide ao="4.1829e-07" name="Fe-58" />
<nuclide ao="0.021827" name="Zr-90" />
<nuclide ao="0.00476" name="Zr-91" />
<nuclide ao="0.0072758" name="Zr-92" />
<nuclide ao="0.0073734" name="Zr-94" />
<nuclide ao="0.0011879" name="Zr-96" />
<nuclide ao="4.6735e-06" name="Sn-112" />
<nuclide ao="3.1799e-06" name="Sn-114" />
<nuclide ao="1.6381e-06" name="Sn-115" />
<nuclide ao="7.0055e-05" name="Sn-116" />
<nuclide ao="3.7003e-05" name="Sn-117" />
<nuclide ao="0.00011669" name="Sn-118" />
<nuclide ao="4.1387e-05" name="Sn-119" />
<nuclide ao="0.00015697" name="Sn-120" />
<nuclide ao="2.2308e-05" name="Sn-122" />
<nuclide ao="2.7897e-05" name="Sn-124" />
</material>
</materials>

View file

@ -1,5 +0,0 @@
k-combined:
1.502605E+00 2.273838E-02
tally 1:
5.280104E+00
1.379258E+01

View file

@ -1,18 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<settings>
<eigenvalue>
<particles>100</particles>
<batches>10</batches>
<inactive>5</inactive>
</eigenvalue>
<source>
<space type="box">
<parameters>-0.6 -0.6 -0.9 0.6 0.6 0.9</parameters>
</space>
</source>
<entropy>
<dimension>10 10 10</dimension>
<lower_left>-0.7 -0.7 -1.1</lower_left>
<upper_right>0.7 0.7 1.1</upper_right>
</entropy>
</settings>

View file

@ -1,7 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<tallies>
<tally id="1">
<scores>keff</scores>
<derivative variable="density" material="10000"/>
</tally>
</tallies>

View file

@ -1,11 +0,0 @@
#!/usr/bin/env python
import os
import sys
sys.path.insert(0, os.pardir)
from testing_harness import TestHarness
if __name__ == '__main__':
harness = TestHarness('statepoint.10.*', True)
harness.main()

View file

@ -1,164 +0,0 @@
import openmc
def make_mats(**kwargs):
water_dict = {
'B-10': 8.0042e-06,
'B-11': 3.2218e-05,
'H-1': 4.9457e-02,
'H-2': 7.4196e-06,
'O-16': 2.4672e-02,
'O-17': 9.3982e-06 + 5.0701e-05}
water = openmc.Material(name='water')
water.set_density('sum')
for nuclide in water_dict:
water.add_nuclide(nuclide, water_dict[nuclide])
U235_dens = kwargs.setdefault('U235_dens', 5.5814e-04)
fuel_dict = {
'B-10': 8.0042e-06,
'U-234': 4.4842e-06,
'U-235': U235_dens,
'U-238': 2.2407e-02,
'O-16': 4.5828e-02,
'O-17': 1.7457e-05 + 9.4176e-05}
fuel = openmc.Material(name='fuel 2.4%')
fuel.set_density('sum')
for nuclide in fuel_dict:
fuel.add_nuclide(nuclide, fuel_dict[nuclide])
zirc4_dict = {
'O-16': 3.0743e-04,
'O-17': 1.1711e-07 + 6.3176e-07,
'Cr-50': 3.2962e-06,
'Cr-52': 6.3564e-05,
'Cr-53': 7.2076e-06,
'Cr-54': 1.7941e-06,
'Fe-54': 8.6699e-06,
'Fe-56': 1.3610e-04,
'Fe-57': 3.1431e-06,
'Fe-58': 4.1829e-07,
'Zr-90': 2.1827e-02,
'Zr-91': 4.7600e-03,
'Zr-92': 7.2758e-03,
'Zr-94': 7.3734e-03,
'Zr-96': 1.1879e-03,
'Sn-112': 4.6735e-06,
'Sn-114': 3.1799e-06,
'Sn-115': 1.6381e-06,
'Sn-116': 7.0055e-05,
'Sn-117': 3.7003e-05,
'Sn-118': 1.1669e-04,
'Sn-119': 4.1387e-05,
'Sn-120': 1.5697e-04,
'Sn-122': 2.2308e-05,
'Sn-124': 2.7897e-05}
zirc4 = openmc.Material(name='zircaloy 4')
zirc4.set_density('sum')
for nuclide in zirc4_dict:
zirc4.add_nuclide(nuclide, zirc4_dict[nuclide])
materials_file = openmc.MaterialsFile()
materials_file.default_xs = '71c'
materials_file.add_materials([water, fuel, zirc4])
return (materials_file,
{'mod':water,
'fuel':fuel,
'clad':zirc4})
def make_geom(mats):
# Instantiate surfaces.
rfo = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.39218, name='fuel outer')
rci = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.40005, name='clad inner')
rco = openmc.ZCylinder(x0=0.0, y0=0.0, R=0.45720, name='clad outer')
x0 = openmc.XPlane(x0=-0.62992)
x1 = openmc.XPlane(x0=0.62992)
y0 = openmc.YPlane(y0=-0.62992)
y1 = openmc.YPlane(y0=0.62992)
z0 = openmc.ZPlane(z0=-1.0)
z1 = openmc.ZPlane(z0=1.0)
x0.boundary_type = 'reflective'
x1.boundary_type = 'reflective'
y0.boundary_type = 'reflective'
y1.boundary_type = 'reflective'
z0.boundary_type = 'reflective'
z1.boundary_type = 'reflective'
# Instantiate cells.
fuel_c = openmc.Cell(name='fuel')
fuel_c.add_surface(rfo, halfspace=-1)
fuel_c.add_surface(z0, halfspace=+1)
fuel_c.add_surface(z1, halfspace=-1)
gap = openmc.Cell(name='gap')
gap.add_surface(rci, halfspace=-1)
gap.add_surface(rfo, halfspace=+1)
gap.add_surface(z0, halfspace=+1)
gap.add_surface(z1, halfspace=-1)
clad_c = openmc.Cell(name='clad')
clad_c.add_surface(rco, halfspace=-1)
clad_c.add_surface(rci, halfspace=+1)
clad_c.add_surface(z0, halfspace=+1)
clad_c.add_surface(z1, halfspace=-1)
mod_c = openmc.Cell(name='moderator')
mod_c.add_surface(rco, halfspace=+1)
mod_c.add_surface(x0, halfspace=+1)
mod_c.add_surface(x1, halfspace=-1)
mod_c.add_surface(y0, halfspace=+1)
mod_c.add_surface(y1, halfspace=-1)
mod_c.add_surface(z0, halfspace=+1)
mod_c.add_surface(z1, halfspace=-1)
# Add materials to cells.
fuel_c.fill = mats['fuel']
gap.fill = 'void'
clad_c.fill = mats['clad']
mod_c.fill = mats['mod']
# Instantiate universes.
u0 = openmc.Universe(universe_id=0)
u0.add_cells([fuel_c, gap, clad_c, mod_c])
# Write the XML file.
geometry = openmc.Geometry()
geometry.root_universe = u0
geometry_file = openmc.GeometryFile()
geometry_file.geometry = geometry
return geometry_file
def make_settings(**kwargs):
if 'batches' in kwargs:
batches = kwargs['batches']
settings_file = openmc.SettingsFile()
settings_file.batches = kwargs.setdefault('batches', 1610)
settings_file.inactive = kwargs.setdefault('inactive', 10)
settings_file.particles = kwargs.setdefault('particles', 1000)
settings_file.set_source_space('box', (-0.6, -0.6, -0.9,
0.6, 0.6, 0.9))
settings_file.entropy_lower_left = (-0.7, -0.7, -1.1)
settings_file.entropy_upper_right = (0.7, 0.7, 1.1)
settings_file.entropy_dimension = (10, 10, 10)
return settings_file
def make_inputs(**kwargs):
(mat_file, mats) = make_mats(**kwargs)
mat_file.export_to_xml()
geo_file = make_geom(mats)
geo_file.export_to_xml()
sets_file = make_settings(**kwargs)
sets_file.export_to_xml()
if __name__ == '__main__':
make_inputs(inactive=5, batches=10, particles=100)

View file

@ -1,16 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<geometry>
<cell id="10000" material="10001" name="fuel" region="(-10000 10007 -10008)" universe="0" />
<cell id="10001" material="void" name="gap" region="(-10001 10000 10007 -10008)" universe="0" />
<cell id="10002" material="10002" name="clad" region="(-10002 10001 10007 -10008)" universe="0" />
<cell id="10003" material="10000" name="moderator" region="(10002 10003 -10004 10005 -10006 10007 -10008)" universe="0" />
<surface boundary="transmission" coeffs="0.0 0.0 0.39218" id="10000" name="fuel outer" type="z-cylinder" />
<surface boundary="transmission" coeffs="0.0 0.0 0.40005" id="10001" name="clad inner" type="z-cylinder" />
<surface boundary="transmission" coeffs="0.0 0.0 0.4572" id="10002" name="clad outer" type="z-cylinder" />
<surface boundary="reflective" coeffs="-0.62992" id="10003" type="x-plane" />
<surface boundary="reflective" coeffs="0.62992" id="10004" type="x-plane" />
<surface boundary="reflective" coeffs="-0.62992" id="10005" type="y-plane" />
<surface boundary="reflective" coeffs="0.62992" id="10006" type="y-plane" />
<surface boundary="reflective" coeffs="-1.0" id="10007" type="z-plane" />
<surface boundary="reflective" coeffs="1.0" id="10008" type="z-plane" />
</geometry>

View file

@ -1,50 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<materials>
<default_xs>71c</default_xs>
<material id="10000" name="water">
<density units="sum" />
<nuclide ao="6.00992e-05" name="O-17" />
<nuclide ao="0.024672" name="O-16" />
<nuclide ao="8.0042e-06" name="B-10" />
<nuclide ao="3.2218e-05" name="B-11" />
<nuclide ao="0.049457" name="H-1" />
<nuclide ao="7.4196e-06" name="H-2" />
</material>
<material id="10001" name="fuel 2.4%">
<density units="sum" />
<nuclide ao="0.022407" name="U-238" />
<nuclide ao="0.000111633" name="O-17" />
<nuclide ao="8.0042e-06" name="B-10" />
<nuclide ao="0.045828" name="O-16" />
<nuclide ao="4.4842e-06" name="U-234" />
<nuclide ao="0.00055814" name="U-235" />
</material>
<material id="10002" name="zircaloy 4">
<density units="sum" />
<nuclide ao="0.00011669" name="Sn-118" />
<nuclide ao="4.1387e-05" name="Sn-119" />
<nuclide ao="4.6735e-06" name="Sn-112" />
<nuclide ao="3.1799e-06" name="Sn-114" />
<nuclide ao="1.6381e-06" name="Sn-115" />
<nuclide ao="7.0055e-05" name="Sn-116" />
<nuclide ao="3.7003e-05" name="Sn-117" />
<nuclide ao="0.0001361" name="Fe-56" />
<nuclide ao="3.1431e-06" name="Fe-57" />
<nuclide ao="8.6699e-06" name="Fe-54" />
<nuclide ao="4.1829e-07" name="Fe-58" />
<nuclide ao="0.0072758" name="Zr-92" />
<nuclide ao="2.7897e-05" name="Sn-124" />
<nuclide ao="0.00015697" name="Sn-120" />
<nuclide ao="2.2308e-05" name="Sn-122" />
<nuclide ao="1.7941e-06" name="Cr-54" />
<nuclide ao="6.3564e-05" name="Cr-52" />
<nuclide ao="7.2076e-06" name="Cr-53" />
<nuclide ao="3.2962e-06" name="Cr-50" />
<nuclide ao="7.4887e-07" name="O-17" />
<nuclide ao="0.00030743" name="O-16" />
<nuclide ao="0.00476" name="Zr-91" />
<nuclide ao="0.021827" name="Zr-90" />
<nuclide ao="0.0011879" name="Zr-96" />
<nuclide ao="0.0073734" name="Zr-94" />
</material>
</materials>

View file

@ -1,5 +0,0 @@
k-combined:
1.055198E+00 5.785829E-02
tally 1:
2.547151E+03
1.303757E+06

View file

@ -1,18 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<settings>
<eigenvalue>
<particles>100</particles>
<batches>10</batches>
<inactive>5</inactive>
</eigenvalue>
<source>
<space type="box">
<parameters>-0.6 -0.6 -0.9 0.6 0.6 0.9</parameters>
</space>
</source>
<entropy>
<dimension>10 10 10</dimension>
<lower_left>-0.7 -0.7 -1.1</lower_left>
<upper_right>0.7 0.7 1.1</upper_right>
</entropy>
</settings>

View file

@ -1,10 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<tallies>
<tally id="1">
<scores>keff</scores>
<!--
<derivative variable="density" material="10000"/>
-->
<derivative variable="nuclide_density" material="10001" nuclide="U-235.71c"/>
</tally>
</tallies>

View file

@ -1,11 +0,0 @@
#!/usr/bin/env python
import os
import sys
sys.path.insert(0, os.pardir)
from testing_harness import TestHarness
if __name__ == '__main__':
harness = TestHarness('statepoint.10.*', True)
harness.main()

View file

@ -0,0 +1 @@
cb132b2211831bf333bc9be0b10d092ad3bbe9a188743cf4c430ae97037987763b268997757a0602c164d8c2deb3eb9843590d860ba5a4858092a9ad0b8adeba

View file

@ -0,0 +1,97 @@
d_material,d_nuclide,d_variable,score,mean,std. dev.
3,,density,flux,-5.12e+00,8.94e-01
3,,density,flux,-1.07e+01,8.84e-01
1,,density,flux,-3.14e-01,4.48e-02
1,,density,flux,-2.73e-01,8.51e-02
1,O-16.71c,nuclide_density,flux,-3.58e+00,7.77e+00
1,O-16.71c,nuclide_density,flux,-7.64e+00,1.09e+01
1,U-235.71c,nuclide_density,flux,-1.19e+03,1.18e+02
1,U-235.71c,nuclide_density,flux,-1.25e+03,1.63e+02
3,,density,total,-1.92e+00,4.49e-01
3,,density,absorption,5.89e-02,6.68e-02
3,,density,fission,8.55e-02,3.33e-02
3,,density,nu-fission,2.20e-01,8.60e-02
3,,density,total,4.49e-02,3.15e-02
3,,density,absorption,6.66e-02,2.74e-02
3,,density,fission,6.12e-02,2.24e-02
3,,density,nu-fission,1.49e-01,5.45e-02
3,,density,total,7.72e+00,9.45e-01
3,,density,absorption,1.26e-01,2.24e-02
3,,density,fission,0.00e+00,0.00e+00
3,,density,nu-fission,0.00e+00,0.00e+00
3,,density,total,0.00e+00,0.00e+00
3,,density,absorption,0.00e+00,0.00e+00
3,,density,fission,0.00e+00,0.00e+00
3,,density,nu-fission,0.00e+00,0.00e+00
1,,density,total,3.79e-01,1.14e-02
1,,density,absorption,1.27e-02,4.48e-03
1,,density,fission,1.88e-03,1.96e-03
1,,density,nu-fission,5.22e-03,5.08e-03
1,,density,total,5.43e-03,1.67e-03
1,,density,absorption,1.29e-03,1.64e-03
1,,density,fission,3.13e-05,1.30e-03
1,,density,nu-fission,1.12e-04,3.17e-03
1,,density,total,-2.91e-01,9.67e-02
1,,density,absorption,-5.40e-03,1.29e-03
1,,density,fission,0.00e+00,0.00e+00
1,,density,nu-fission,0.00e+00,0.00e+00
1,,density,total,0.00e+00,0.00e+00
1,,density,absorption,0.00e+00,0.00e+00
1,,density,fission,0.00e+00,0.00e+00
1,,density,nu-fission,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,total,4.33e+01,3.24e+00
1,O-16.71c,nuclide_density,absorption,6.59e-01,5.83e-01
1,O-16.71c,nuclide_density,fission,4.31e-01,1.26e-01
1,O-16.71c,nuclide_density,nu-fission,1.08e+00,3.25e-01
1,O-16.71c,nuclide_density,total,4.52e-01,1.50e-01
1,O-16.71c,nuclide_density,absorption,4.58e-01,1.12e-01
1,O-16.71c,nuclide_density,fission,3.54e-01,9.55e-02
1,O-16.71c,nuclide_density,nu-fission,8.62e-01,2.33e-01
1,O-16.71c,nuclide_density,total,-4.58e-01,1.17e+01
1,O-16.71c,nuclide_density,absorption,1.23e-01,1.75e-01
1,O-16.71c,nuclide_density,fission,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,total,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,absorption,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,fission,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,total,-2.41e+02,5.64e+01
1,U-235.71c,nuclide_density,absorption,1.11e+02,1.40e+01
1,U-235.71c,nuclide_density,fission,1.79e+02,9.60e+00
1,U-235.71c,nuclide_density,nu-fission,3.97e+02,2.44e+01
1,U-235.71c,nuclide_density,total,4.56e+02,1.09e+01
1,U-235.71c,nuclide_density,absorption,3.45e+02,1.09e+01
1,U-235.71c,nuclide_density,fission,2.70e+02,8.42e+00
1,U-235.71c,nuclide_density,nu-fission,6.59e+02,2.05e+01
1,U-235.71c,nuclide_density,total,-2.29e+03,2.59e+02
1,U-235.71c,nuclide_density,absorption,-5.31e+01,5.44e+00
1,U-235.71c,nuclide_density,fission,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,total,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,absorption,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,fission,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
3,,density,absorption,-3.29e-02,8.34e-02
3,,density,absorption,1.21e-01,4.42e-02
1,,density,absorption,1.51e-02,2.89e-03
1,,density,absorption,-4.61e-03,2.30e-03
1,O-16.71c,nuclide_density,absorption,2.87e-01,5.33e-01
1,O-16.71c,nuclide_density,absorption,2.86e-01,3.59e-01
1,U-235.71c,nuclide_density,absorption,1.14e+02,1.15e+01
1,U-235.71c,nuclide_density,absorption,-5.10e+01,4.74e+00
3,,density,nu-fission,4.24e-04,6.13e-02
3,,density,nu-fission,2.40e-02,6.37e-02
3,,density,nu-fission,0.00e+00,0.00e+00
3,,density,nu-fission,0.00e+00,0.00e+00
1,,density,nu-fission,-2.85e-02,2.57e-03
1,,density,nu-fission,-6.16e-02,5.51e-03
1,,density,nu-fission,0.00e+00,0.00e+00
1,,density,nu-fission,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,nu-fission,1.70e-01,2.18e-01
1,O-16.71c,nuclide_density,nu-fission,6.30e-01,5.11e-01
1,O-16.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
1,O-16.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,nu-fission,-2.00e+02,1.68e+01
1,U-235.71c,nuclide_density,nu-fission,-4.76e+02,1.41e+01
1,U-235.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00
1,U-235.71c,nuclide_density,nu-fission,0.00e+00,0.00e+00

View file

@ -0,0 +1,123 @@
#!/usr/bin/env python
import glob
import os
import pandas as pd
try:
from StringIO import StringIO
except:
from io import StringIO
import sys
sys.path.insert(0, os.pardir)
from testing_harness import PyAPITestHarness
from openmc import Filter, Mesh, Tally, TalliesFile, Summary, StatePoint
#from openmc.statepoint import StatePoint
from openmc.source import Source
from openmc.stats import Box
class DiffTallyTestHarness(PyAPITestHarness):
def _build_inputs(self):
# Build default materials/geometry
self._input_set.build_default_materials_and_geometry()
# Set settings explicitly
self._input_set.settings.batches = 5
self._input_set.settings.inactive = 0
self._input_set.settings.particles = 400
self._input_set.settings.source = Source(space=Box(
[-160, -160, -183], [160, 160, 183]))
self._input_set.settings.output = {'summary':True}
self._input_set.tallies = TalliesFile()
filt_mats = Filter(type='material', bins=(1, 3))
filt_eout = Filter(type='energyout', bins=(0.0, 1.0, 20.0))
def add_derivs(tally_list):
assert len(tally_list) == 4
# We want density derivatives for both water and fuel to get
# coverage for both fissile and non-fissile materials.
tally_list[0].diff_variable = 'density'
tally_list[0].diff_material = 3
tally_list[1].diff_variable = 'density'
tally_list[1].diff_material = 1
# O-16 is a good nuclide to test against because it is present
# in both water and fuel. Some routines need to recognize that they
# have the perturbed nuclide but not the perturbed material.
tally_list[2].diff_variable = 'nuclide_density'
tally_list[2].diff_material = 1
tally_list[2].diff_nuclide = 'O-16'
# A fissile nuclide, just for good measure.
tally_list[3].diff_variable = 'nuclide_density'
tally_list[3].diff_material = 1
tally_list[3].diff_nuclide = 'U-235'
# Cover the flux score.
tallies = [Tally() for i in range(4)]
for t in tallies: t.add_score('flux')
for t in tallies: t.add_filter(filt_mats)
add_derivs(tallies)
for t in tallies: self._input_set.tallies.add_tally(t)
# Cover supported scores with a collision estimator.
tallies = [Tally() for i in range(4)]
for t in tallies: t.add_score('total')
for t in tallies: t.add_score('absorption')
for t in tallies: t.add_score('fission')
for t in tallies: t.add_score('nu-fission')
for t in tallies: t.add_filter(filt_mats)
for t in tallies: t.add_nuclide('total')
for t in tallies: t.add_nuclide('U-235')
add_derivs(tallies)
for t in tallies: self._input_set.tallies.add_tally(t)
# Cover an analog estimator.
tallies = [Tally() for i in range(4)]
for t in tallies: t.add_score('absorption')
for t in tallies: t.add_filter(filt_mats)
for t in tallies: t.estimator = 'analog'
add_derivs(tallies)
for t in tallies: self._input_set.tallies.add_tally(t)
# And the special fission with energyout filter.
tallies = [Tally() for i in range(4)]
for t in tallies: t.add_score('nu-fission')
for t in tallies: t.add_filter(filt_mats)
for t in tallies: t.add_filter(filt_eout)
add_derivs(tallies)
for t in tallies: self._input_set.tallies.add_tally(t)
self._input_set.export()
def _get_results(self):
#return super(DiffTallyTestHarness, self)._get_results(hash_output=True)
# Read the statepoint and summary files.
statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0]
sp = StatePoint(statepoint)
su = Summary('summary.h5')
sp.link_with_summary(su)
# Extract the tally data as a Pandas DataFrame.
df = pd.DataFrame()
for t in sp.tallies.values():
df = df.append(t.get_pandas_dataframe(), ignore_index=True)
# Extract the relevant data as a CSV string.
out = StringIO()
cols = ('d_material', 'd_nuclide', 'd_variable', 'score', 'mean',
'std. dev.')
df.to_csv(out, columns=cols, index=False, float_format='%.2e')
return out.getvalue()
def _cleanup(self):
super(DiffTallyTestHarness, self)._cleanup()
f = os.path.join(os.getcwd(), 'tallies.xml')
if os.path.exists(f): os.remove(f)
if __name__ == '__main__':
harness = DiffTallyTestHarness('statepoint.5.*', True)
harness.main()