From 500843bce431d9efaf9e4ef275501a6535024fc8 Mon Sep 17 00:00:00 2001 From: walshjon Date: Thu, 19 Mar 2015 03:19:04 -0700 Subject: [PATCH 01/48] user option to enforce LAB isotropic elastic, disable S(a,b) --- src/input_xml.F90 | 23 +++- src/list_header.F90 | 247 ++++++++++++++++++++++++++++++++++++++++ src/material_header.F90 | 3 + src/physics.F90 | 52 ++++++--- 4 files changed, 306 insertions(+), 19 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 4c1f3c244c..9b6259a57c 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -7,7 +7,7 @@ module input_xml use error, only: fatal_error, warning use geometry_header, only: Cell, Surface, Lattice, RectLattice, HexLattice use global - use list_header, only: ListChar, ListReal + use list_header, only: ListChar, ListLog, ListReal use mesh_header, only: StructuredMesh use output, only: write_message use plot_header @@ -1577,6 +1577,7 @@ contains character(MAX_LINE_LEN) :: temp_str ! temporary string when reading type(ListChar) :: list_names ! temporary list of nuclide names type(ListReal) :: list_density ! temporary list of nuclide densities + type(ListLog) :: list_iso_lab ! temporary list of isotropic lab scatterers type(Material), pointer :: mat => null() type(Node), pointer :: doc => null() type(Node), pointer :: node_mat => null() @@ -1731,6 +1732,20 @@ contains end if end if + ! Check enforced isotropic lab scattering + if (check_for_node(node_nuc, "lab")) then + call get_node_value(node_nuc, "lab", temp_str) + if (trim(adjustl(to_lower(temp_str))) == "true") then + call list_iso_lab % append(.true.) + else if (trim(adjustl(to_lower(temp_str))) == "false") then + call list_iso_lab % append(.false.) + else + call fatal_error("Isotropic lab scattering must be true or false") + end if + else + call list_iso_lab % append(.false.) + end if + ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & @@ -1822,6 +1837,7 @@ contains allocate(mat % names(n)) allocate(mat % nuclide(n)) allocate(mat % atom_density(n)) + allocate(mat % p0(n)) ALL_NUCLIDES: do j = 1, mat % n_nuclides ! Check that this nuclide is listed in the cross_sections.xml file @@ -1858,6 +1874,10 @@ contains ! Copy name and atom/weight percent mat % names(j) = name mat % atom_density(j) = list_density % get_item(j) + + ! Copy isotropic lab scattering flag + mat % p0(j) = list_iso_lab % get_item(j) + end do ALL_NUCLIDES ! Check to make sure either all atom percents or all weight percents are @@ -1874,6 +1894,7 @@ contains ! Clear lists call list_names % clear() call list_density % clear() + call list_iso_lab % clear() ! ======================================================================= ! READ AND PARSE TAG FOR S(a,b) DATA diff --git a/src/list_header.F90 b/src/list_header.F90 index a9311ec64a..e4cc56ed0a 100644 --- a/src/list_header.F90 +++ b/src/list_header.F90 @@ -34,6 +34,13 @@ module list_header type(ListElemChar), pointer :: prev => null() end type ListElemChar + type :: ListElemLog + logical :: data + type(ListElemLog), pointer :: next => null() + type(ListElemLog), pointer :: prev => null() + end type ListElemLog + + !=============================================================================== ! LIST* types contain the linked list with convenience methods. We originally ! considered using unlimited polymorphism to provide a single type, but compiler @@ -107,6 +114,28 @@ module list_header procedure :: size => list_size_char ! Size of list end type ListChar + type, public :: ListLog + private + integer :: count = 0 ! Number of elements in list + + ! Used in get_item for fast sequential lookups + integer :: last_index = huge(0) + type(ListElemLog), pointer :: last_elem => null() + + ! Pointers to beginning and end of list + type(ListElemLog), public, pointer :: head => null() + type(ListElemLog), public, pointer :: tail => null() + contains + procedure :: append => list_append_log ! Add item to end of list + procedure :: clear => list_clear_log ! Remove all items + procedure :: contains => list_contains_log ! Does list contain? + procedure :: get_item => list_get_item_log ! Get i-th item in list + procedure :: index => list_index_log ! Determine index of given item + procedure :: insert => list_insert_log ! Insert item in i-th position + procedure :: remove => list_remove_log ! Remove specified item + procedure :: size => list_size_log ! Size of list + end type ListLog + contains !=============================================================================== @@ -189,6 +218,31 @@ contains end subroutine list_append_char + subroutine list_append_log(this, data) + class(ListLog) :: this + logical :: data + + type(ListElemLog), pointer :: elem + + ! Create element and set dat + allocate(elem) + elem % data = data + + if (.not. associated(this % head)) then + ! If list is empty, set head and tail to new element + this % head => elem + this % tail => elem + else + ! Otherwise append element at end of list + this % tail % next => elem + elem % prev => this % tail + this % tail => this % tail % next + end if + + this % count = this % count + 1 + + end subroutine list_append_log + !=============================================================================== ! LIST_CLEAR removes all elements from the list !=============================================================================== @@ -271,6 +325,32 @@ contains end subroutine list_clear_char + subroutine list_clear_log(this) + class(ListLog) :: this + + type(ListElemLog), pointer :: current => null() + type(ListElemLog), pointer :: next => null() + + if (this % count > 0) then + current => this % head + do while (associated(current)) + ! Set pointer to next element + next => current % next + + ! Deallocate memory for current element + deallocate(current) + + ! Move to next element + current => next + end do + + nullify(this % head) + nullify(this % tail) + this % count = 0 + end if + + end subroutine list_clear_log + !=============================================================================== ! LIST_CONTAINS determines whether the list contains a specified item. Since it ! relies on the index method, it is O(n). @@ -303,6 +383,15 @@ contains end function list_contains_char + function list_contains_log(this, data) result(in_list) + class(ListLog) :: this + logical :: data + logical :: in_list + + in_list = (this % index(data) > 0) + + end function list_contains_log + !=============================================================================== ! LIST_GET_ITEM returns the item in the list at position 'i_list'. If the index ! is out of bounds, an error code is returned. @@ -407,6 +496,39 @@ contains end function list_get_item_char + function list_get_item_log(this, i_list) result(data) + class(ListLog) :: this + integer :: i_list + logical :: data + + integer :: last_index + + if (i_list < 1 .or. i_list > this % count) then + ! Check for index out of bounds + data = .false. + elseif (i_list == 1) then + data = this % head % data + this % last_index = 1 + this % last_elem => this % head + elseif (i_list == this % count) then + data = this % tail % data + this % last_index = this % count + this % last_elem => this % tail + else + if (i_list < this % last_index) then + this % last_index = 1 + this % last_elem => this % head + end if + + do last_index = this % last_index + 1, i_list + this % last_elem => this % last_elem % next + this % last_index = last_index + end do + data = this % last_elem % data + end if + + end function list_get_item_log + !=============================================================================== ! LIST_INDEX determines the first index in the list that contains 'data'. If ! 'data' is not present in the list, the return value is -1. @@ -475,6 +597,27 @@ contains end function list_index_char + function list_index_log(this, data) result(i_list) + + class(ListLog) :: this + logical :: data + integer :: i_list + + type(ListElemLog), pointer :: elem + + i_list = 0 + elem => this % head + do while (associated(elem)) + i_list = i_list + 1 + if (data .eqv. elem % data) exit + elem => elem % next + end do + + ! Check if we reached the end of the list + if (.not. associated(elem)) i_list = -1 + + end function list_index_log + !=============================================================================== ! LIST_INSERT inserts 'data' at index 'i_list' within the list. If 'i_list' ! exceeds the size of the list, the data is appends at the end of the list. @@ -646,6 +789,62 @@ contains end subroutine list_insert_char + subroutine list_insert_log(this, i_list, data) + + class(ListLog) :: this + integer :: i_list + logical :: data + + integer :: i + type(ListElemLog), pointer :: elem => null() + type(ListElemLog), pointer :: new_elem => null() + + if (i_list > this % count) then + ! Check whether specified index is greater than number of elements -- if + ! so, just append it to the end of the list + call this % append(data) + + else if (i_list == 1) then + ! Check for new head element + allocate(new_elem) + new_elem % data = data + new_elem % next => this % head + this % head => new_elem + this % count = this % count + 1 + + else + ! Default case with new element somewhere in middle of list + if (i_list >= this % last_index) then + i = this % last_index + elem => this % last_elem + else + i = 0 + elem => this % head + end if + do while (associated(elem)) + i = i + 1 + if (i == i_list - 1) then + ! Allocate new element + allocate(new_elem) + new_elem % data = data + + ! Put it before the i-th element + new_elem % prev => elem % prev + new_elem % next => elem + new_elem % prev % next => new_elem + new_elem % next % prev => new_elem + this % count = this % count + 1 + this % last_index = i_list + this % last_elem => new_elem + exit + end if + i = i + 1 + elem => elem % next + end do + end if + + end subroutine list_insert_log + !=============================================================================== ! LIST_REMOVE removes the first item in the list that contains 'data'. If 'data' ! is not in the list, no action is taken. @@ -768,6 +967,45 @@ contains end subroutine list_remove_char + subroutine list_remove_log(this, data) + + class(ListLog) :: this + logical :: data + + type(ListElemLog), pointer :: elem => null() + + elem => this % head + do while (associated(elem)) + ! Check for matching data + if (elem % data .eqv. data) then + + ! Determine whether the current element is the head, tail, or a middle + ! element + if (associated(elem, this % head)) then + this % head => elem % next + if (associated(elem, this % tail)) nullify(this % tail) + if (associated(this % head)) nullify(this % head % prev) + deallocate(elem) + else if (associated(elem, this % tail)) then + this % tail => elem % prev + deallocate(this % tail % next) + else + elem % prev % next => elem % next + elem % next % prev => elem % prev + deallocate(elem) + end if + + ! Decrease count and exit + this % count = this % count - 1 + exit + end if + + ! Advance pointers + elem => elem % next + end do + + end subroutine list_remove_log + !=============================================================================== ! LIST_SIZE returns the number of elements in the list !=============================================================================== @@ -799,4 +1037,13 @@ contains end function list_size_char + function list_size_log(this) result(size) + + class(ListLog) :: this + integer :: size + + size = this % count + + end function list_size_log + end module list_header diff --git a/src/material_header.F90 b/src/material_header.F90 index fca735fd2a..8dd2714006 100644 --- a/src/material_header.F90 +++ b/src/material_header.F90 @@ -25,6 +25,9 @@ module material_header ! Does this material contain fissionable nuclides? logical :: fissionable = .false. + ! enforce isotropic scattering in lab + logical, allocatable :: p0(:) + end type Material end module material_header diff --git a/src/physics.F90 b/src/physics.F90 index 69bbcff345..624421b00e 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -73,11 +73,12 @@ contains type(Particle), intent(inout) :: p integer :: i_nuclide ! index in nuclides array + integer :: i_nuc_mat ! index in material's nuclides array integer :: i_reaction ! index in nuc % reactions array type(Nuclide), pointer, save :: nuc => null() !$omp threadprivate(nuc) - i_nuclide = sample_nuclide(p, 'total ') + call sample_nuclide(p, 'total ', i_nuclide, i_nuc_mat) ! Get pointer to table nuc => nuclides(i_nuclide) @@ -107,7 +108,7 @@ contains ! Sample a scattering reaction and determine the secondary energy of the ! exiting neutron - call scatter(p, i_nuclide) + call scatter(p, i_nuclide, i_nuc_mat) ! Play russian roulette if survival biasing is turned on @@ -122,13 +123,13 @@ contains ! SAMPLE_NUCLIDE !=============================================================================== - function sample_nuclide(p, base) result(i_nuclide) + subroutine sample_nuclide(p, base, i_nuclide, i_nuc_mat) type(Particle), intent(in) :: p character(7), intent(in) :: base ! which reaction to sample based on - integer :: i_nuclide + integer, intent(out) :: i_nuclide + integer, intent(out) :: i_nuc_mat - integer :: i real(8) :: prob real(8) :: cutoff real(8) :: atom_density ! atom density of nuclide in atom/b-cm @@ -149,20 +150,20 @@ contains cutoff = prn() * material_xs % fission end select - i = 0 + i_nuc_mat = 0 prob = ZERO do while (prob < cutoff) - i = i + 1 + i_nuc_mat = i_nuc_mat + 1 ! Check to make sure that a nuclide was sampled - if (i > mat % n_nuclides) then + if (i_nuc_mat > mat % n_nuclides) then call write_particle_restart(p) call fatal_error("Did not sample any nuclide during collision.") end if ! Find atom density - i_nuclide = mat % nuclide(i) - atom_density = mat % atom_density(i) + i_nuclide = mat % nuclide(i_nuc_mat) + atom_density = mat % atom_density(i_nuc_mat) ! Determine microscopic cross section select case (base) @@ -179,7 +180,7 @@ contains prob = prob + sigma end do - end function sample_nuclide + end subroutine sample_nuclide !=============================================================================== ! SAMPLE_FISSION @@ -303,10 +304,11 @@ contains ! SCATTER !=============================================================================== - subroutine scatter(p, i_nuclide) + subroutine scatter(p, i_nuclide, i_nuc_mat) type(Particle), intent(inout) :: p integer, intent(in) :: i_nuclide + integer, intent(in) :: i_nuc_mat integer :: i integer :: i_grid @@ -334,6 +336,10 @@ contains ! ELASTIC SCATTERING if (micro_xs(i_nuclide) % index_sab /= NONE) then + if (materials(p % material) % p0(i_nuc_mat)) & + & call fatal_error("thermal scattering law data and isotropic lab& + & scattering specified for the same nuclide") + ! S(a,b) scattering call sab_scatter(i_nuclide, micro_xs(i_nuclide) % index_sab, & p % E, p % coord0 % uvw, p % mu) @@ -344,7 +350,8 @@ contains ! Perform collision physics for elastic scattering call elastic_scatter(i_nuclide, rxn, & - p % E, p % coord0 % uvw, p % mu, p % wgt) + p % E, p % coord0 % uvw, p % mu, p % wgt, & + & materials(p % material) % p0(i_nuc_mat)) end if p % event_MT = ELASTIC @@ -402,17 +409,19 @@ contains ! target. !=============================================================================== - subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab, wgt) + subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab, wgt, iso_lab) integer, intent(in) :: i_nuclide type(Reaction), pointer :: rxn real(8), intent(inout) :: E real(8), intent(inout) :: uvw(3) - real(8), intent(out) :: mu_lab real(8), intent(inout) :: wgt + logical, intent(in) :: iso_lab real(8) :: awr ! atomic weight ratio of target real(8) :: mu_cm ! cosine of polar angle in center-of-mass + real(8), intent(out) :: mu_lab ! cosine of polar angle in lab system + real(8) :: phi ! azimuthal angle real(8) :: vel ! magnitude of velocity real(8) :: v_n(3) ! velocity of neutron real(8) :: v_cm(3) ! velocity of center-of-mass @@ -466,10 +475,17 @@ contains ! compute cosine of scattering angle in LAB frame by taking dot product of ! neutron's pre- and post-collision angle - mu_lab = dot_product(uvw, v_n) / vel + if (iso_lab) then + mu_lab = TWO * prn() - ONE + phi = TWO * PI * prn() + uvw = [mu_lab, cos(phi)*sqrt(ONE - mu_lab*mu_lab), & + & sin(phi)*sqrt(ONE - mu_lab*mu_lab)] + else + ! Set energy and direction of particle in LAB frame + uvw = v_n / vel + end if - ! Set energy and direction of particle in LAB frame - uvw = v_n / vel + mu_lab = dot_product(uvw, v_n) / vel end subroutine elastic_scatter From 77a995bbeae985d18a19b1eded7c2d5312f7dd9d Mon Sep 17 00:00:00 2001 From: walshjon Date: Sun, 22 Mar 2015 09:28:36 -0700 Subject: [PATCH 02/48] option to force all collisions to be lab isotropic --- src/physics.F90 | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/src/physics.F90 b/src/physics.F90 index 624421b00e..5691c9c0f1 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -394,7 +394,7 @@ contains ! Perform collision physics for inelastic scattering call inelastic_scatter(nuc, rxn, p % E, p % coord0 % uvw, & - p % mu, p % wgt) + p % mu, p % wgt, materials(p % material) % p0(i_nuc_mat)) p % event_MT = rxn % MT end if @@ -416,16 +416,17 @@ contains real(8), intent(inout) :: E real(8), intent(inout) :: uvw(3) real(8), intent(inout) :: wgt + real(8), intent(out) :: mu_lab ! cosine of polar angle in lab system logical, intent(in) :: iso_lab real(8) :: awr ! atomic weight ratio of target real(8) :: mu_cm ! cosine of polar angle in center-of-mass - real(8), intent(out) :: mu_lab ! cosine of polar angle in lab system real(8) :: phi ! azimuthal angle real(8) :: vel ! magnitude of velocity real(8) :: v_n(3) ! velocity of neutron real(8) :: v_cm(3) ! velocity of center-of-mass real(8) :: v_t(3) ! velocity of target nucleus + real(8) :: uvw_in(3) ! incoming direction real(8) :: uvw_cm(3) ! directional cosines in center-of-mass type(Nuclide), pointer, save :: nuc => null() !$omp threadprivate(nuc) @@ -439,6 +440,9 @@ contains ! Neutron velocity in LAB v_n = vel * uvw + ! incoming direction + uvw_in(:) = uvw(:) + ! Sample velocity of target nucleus if (.not. micro_xs(i_nuclide) % use_ptable) then call sample_target_velocity(nuc, v_t, E, uvw, v_n, wgt, & @@ -474,18 +478,17 @@ contains vel = sqrt(E) ! compute cosine of scattering angle in LAB frame by taking dot product of - ! neutron's pre- and post-collision angle + ! neutron's pre- and post-collision unit vectors if (iso_lab) then - mu_lab = TWO * prn() - ONE + uvw(1) = TWO * prn() - ONE phi = TWO * PI * prn() - uvw = [mu_lab, cos(phi)*sqrt(ONE - mu_lab*mu_lab), & - & sin(phi)*sqrt(ONE - mu_lab*mu_lab)] + uvw(2) = cos(phi) * sqrt(ONE - uvw(1)*uvw(1)) + uvw(3) = sin(phi) * sqrt(ONE - uvw(1)*uvw(1)) else - ! Set energy and direction of particle in LAB frame uvw = v_n / vel end if - mu_lab = dot_product(uvw, v_n) / vel + mu_lab = dot_product(uvw_in, uvw) end subroutine elastic_scatter @@ -1293,7 +1296,7 @@ contains ! than fission), i.e. level scattering, (n,np), (n,na), etc. !=============================================================================== - subroutine inelastic_scatter(nuc, rxn, E, uvw, mu, wgt) + subroutine inelastic_scatter(nuc, rxn, E, uvw, mu, wgt, iso_lab) type(Nuclide), pointer :: nuc type(Reaction), pointer :: rxn @@ -1301,6 +1304,7 @@ contains real(8), intent(inout) :: uvw(3) ! directional cosines real(8), intent(out) :: mu ! cosine of scattering angle in lab real(8), intent(inout) :: wgt ! particle weight + logical, intent(in) :: iso_lab integer :: law ! secondary energy distribution law real(8) :: A ! atomic weight ratio of nuclide @@ -1308,9 +1312,12 @@ contains real(8) :: E_cm ! outgoing energy in center-of-mass real(8) :: Q ! Q-value of reaction real(8) :: yield ! neutron yield + real(8) :: uvw_in(3) ! incoming direction + real(8) :: phi ! azimuthal angle - ! copy energy of neutron + ! copy energy, direction of neutron E_in = E + uvw_in(:) = uvw(:) ! determine A and Q A = nuc % awr @@ -1344,8 +1351,17 @@ contains mu = mu * sqrt(E_cm/E) + ONE/(A+ONE) * sqrt(E_in/E) end if - ! change direction of particle - uvw = rotate_angle(uvw, mu) + ! compute cosine of scattering angle in LAB frame by taking dot product of + ! neutron's pre- and post-collision unit vectors + if (iso_lab) then + uvw(1) = TWO * prn() - ONE + phi = TWO * PI * prn() + uvw(2) = cos(phi) * sqrt(ONE - uvw(1)*uvw(1)) + uvw(3) = sin(phi) * sqrt(ONE - uvw(1)*uvw(1)) + mu = dot_product(uvw_in, uvw) + else + uvw = rotate_angle(uvw_in, mu) + end if ! change weight of particle based on yield if (rxn % multiplicity_with_E) then From 99dd8386449424a6c084cffe3aa56ebe07e4912e Mon Sep 17 00:00:00 2001 From: walshjon Date: Sun, 26 Apr 2015 23:35:36 -0400 Subject: [PATCH 03/48] change to input file specification --- src/input_xml.F90 | 11 ++++++----- src/physics.F90 | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 9b6259a57c..0df77fe376 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1733,14 +1733,15 @@ contains end if ! Check enforced isotropic lab scattering - if (check_for_node(node_nuc, "lab")) then - call get_node_value(node_nuc, "lab", temp_str) - if (trim(adjustl(to_lower(temp_str))) == "true") then + if (check_for_node(node_nuc, "scattering")) then + call get_node_value(node_nuc, "scattering", temp_str) + if (trim(adjustl(to_lower(temp_str))) == "lab") then call list_iso_lab % append(.true.) - else if (trim(adjustl(to_lower(temp_str))) == "false") then + else if (trim(adjustl(to_lower(temp_str))) == "ace") then call list_iso_lab % append(.false.) else - call fatal_error("Isotropic lab scattering must be true or false") + call fatal_error("Scattering must be isotropic in lab or follow& + & the ACE file data") end if else call list_iso_lab % append(.false.) diff --git a/src/physics.F90 b/src/physics.F90 index 5691c9c0f1..6cda2f9e47 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -337,8 +337,8 @@ contains if (micro_xs(i_nuclide) % index_sab /= NONE) then if (materials(p % material) % p0(i_nuc_mat)) & - & call fatal_error("thermal scattering law data and isotropic lab& - & scattering specified for the same nuclide") + call fatal_error("thermal scattering law data and isotropic lab& + & scattering specified for the same nuclide") ! S(a,b) scattering call sab_scatter(i_nuclide, micro_xs(i_nuclide) % index_sab, & @@ -351,7 +351,7 @@ contains ! Perform collision physics for elastic scattering call elastic_scatter(i_nuclide, rxn, & p % E, p % coord0 % uvw, p % mu, p % wgt, & - & materials(p % material) % p0(i_nuc_mat)) + materials(p % material) % p0(i_nuc_mat)) end if p % event_MT = ELASTIC From 4e808a4257bbb1d399d511307597168a4bb1b2f3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 27 Apr 2015 00:39:02 -0400 Subject: [PATCH 04/48] Added paragraph on new scattering subelement for nuclides --- docs/source/usersguide/input.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index d98804c867..c1231e9a8e 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1015,6 +1015,15 @@ Each ``material`` element can have the following attributes or sub-elements: .. note:: If one nuclide is specified in atom percent, all others must also be given in atom percent. The same applies for weight percentages. + An optional attribute/sub-element for each nuclide is ``scattering``. This + attribute may be set to "ace" to use the scattering laws specified in the + ACE files (default). Alternatively, when set to "lab", the ACE scattering + laws are used to sample the outgoing energy but an isotropic-in-lab + distribution is used to sample the outgoing angle at each scattering + interaction. The ``scattering`` attribute may be most useful when using + OpenMC to compute multi-group cross-sections for deterministic transport + codes and to quantify the effects of anisotropic scattering. + *Default*: None :element: From 25d9f8b2a3adcaae699813be8921b6b33445ff0f Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 27 Apr 2015 00:52:49 -0400 Subject: [PATCH 05/48] Added routines to Python API for nuclide-based scattering laws --- src/utils/openmc/material.py | 14 ++++++++++++++ src/utils/openmc/nuclide.py | 24 ++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/utils/openmc/material.py b/src/utils/openmc/material.py index 87255083bd..c7292416e6 100644 --- a/src/utils/openmc/material.py +++ b/src/utils/openmc/material.py @@ -271,6 +271,12 @@ class Material(object): self._sab.append((name, xs)) + def make_isotropic_in_lab(self): + + for nuclide_name in self._nuclides: + self._nuclides[nuclide_name][0].make_isotropic_in_lab() + + def get_all_nuclides(self): nuclides = {} @@ -331,6 +337,9 @@ class Material(object): if not nuclide[0]._xs is None: xml_element.set("xs", nuclide[0]._xs) + if not nuclide[0]._scattering is None: + xml_element.set("scattering", nuclide[0]._scattering) + return xml_element @@ -496,6 +505,11 @@ class MaterialsFile(object): self._materials.remove(material) + def make_isotropic_in_lab(self): + + for material in self._materials: + materials.make_isotropic_in_lab() + def create_material_subelements(self): diff --git a/src/utils/openmc/nuclide.py b/src/utils/openmc/nuclide.py index c2287b23d9..d9d49d039e 100644 --- a/src/utils/openmc/nuclide.py +++ b/src/utils/openmc/nuclide.py @@ -9,6 +9,7 @@ class Nuclide(object): self._name = '' self._xs = None self._zaid = None + self._scattering = None # Set the Material class attributes self.name = name @@ -54,6 +55,11 @@ class Nuclide(object): return self._zaid + @property + def scattering(self): + return self._scattering + + @name.setter def name(self, name): @@ -87,10 +93,24 @@ class Nuclide(object): self._zaid = zaid + @scattering.setter + def scattering(self, scattering): + + if not scattering in ['ace', 'lab']: + msg = 'Unable to set scattering for Nuclide to {0} ' \ + 'which is not "ace" or "lab"'.format(scattering) + raise ValueError(msg) + + self._scattering = scattering + + def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) if self._zaid is not None: - string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self._zaid) - return string \ No newline at end of file + string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self._zaid) + if self._scattering is not None: + string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', + self._scattering) + return string From e44e253993a89f44b826f28869b8b1d9b78b2da5 Mon Sep 17 00:00:00 2001 From: walshjon Date: Mon, 27 Apr 2015 15:28:43 -0700 Subject: [PATCH 06/48] re-enable S(a,b) w/ forced iso lab scattering --- src/physics.F90 | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/physics.F90 b/src/physics.F90 index 394277ff36..35cd00de5d 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -332,13 +332,11 @@ contains ! ELASTIC SCATTERING if (micro_xs(i_nuclide) % index_sab /= NONE) then - if (materials(p % material) % p0(i_nuc_mat)) & - call fatal_error("thermal scattering law data and isotropic lab& - & scattering specified for the same nuclide") ! S(a,b) scattering call sab_scatter(i_nuclide, micro_xs(i_nuclide) % index_sab, & - p % E, p % coord0 % uvw, p % mu) + p % E, p % coord0 % uvw, p % mu, & + materials(p % material) % p0(i_nuc_mat)) else ! get pointer to elastic scattering reaction @@ -492,13 +490,15 @@ contains ! according to a specified S(a,b) table. !=============================================================================== - subroutine sab_scatter(i_nuclide, i_sab, E, uvw, mu) + subroutine sab_scatter(i_nuclide, i_sab, E, uvw, mu_lab, iso_lab) integer, intent(in) :: i_nuclide ! index in micro_xs integer, intent(in) :: i_sab ! index in sab_tables real(8), intent(inout) :: E ! incoming/outgoing energy real(8), intent(inout) :: uvw(3) ! directional cosines - real(8), intent(out) :: mu ! scattering cosine + real(8) :: uvw_in(3) ! incoming direction + real(8), intent(out) :: mu_lab ! cosine of polar angle in lab system + logical, intent(in) :: iso_lab integer :: i ! incoming energy bin integer :: j ! outgoing energy bin @@ -522,10 +522,14 @@ contains real(8) :: c_j, c_j1 ! cumulative probability real(8) :: frac ! interpolation factor on outgoing energy real(8) :: r1 ! RNG for outgoing energy + real(8) :: phi ! azimuthal angle ! Get pointer to S(a,b) table sab => sab_tables(i_sab) + ! incoming direction + uvw_in(:) = uvw(:) + ! Determine whether inelastic or elastic scattering will occur if (prn() < micro_xs(i_nuclide) % elastic_sab / & micro_xs(i_nuclide) % elastic) then @@ -555,7 +559,7 @@ contains mu_i1jk = sab % elastic_mu(k,i+1) ! Cosine of angle between incoming and outgoing neutron - mu = (1 - f)*mu_ijk + f*mu_i1jk + mu_lab = (1 - f)*mu_ijk + f*mu_i1jk elseif (sab % elastic_mode == SAB_ELASTIC_EXACT) then ! This treatment is used for data derived in the coherent @@ -571,7 +575,7 @@ contains end if ! Characteristic scattering cosine for this Bragg edge - mu = ONE - TWO*sab % elastic_e_in(k) / E + mu_lab = ONE - TWO*sab % elastic_e_in(k) / E end if @@ -646,7 +650,7 @@ contains mu_i1jk = sab % inelastic_mu(k,j,i+1) ! Cosine of angle between incoming and outgoing neutron - mu = (1 - f)*mu_ijk + f*mu_i1jk + mu_lab = (1 - f)*mu_ijk + f*mu_i1jk else if (sab % secondary_mode == SAB_SECONDARY_CONT) then ! Continuous secondary energy - this is to be similar to @@ -723,7 +727,7 @@ contains ! Will use mu from the randomly chosen incoming and closest outgoing ! energy bins - mu = sab % inelastic_data(l) % mu(k, j) + mu_lab = sab % inelastic_data(l) % mu(k, j) else call fatal_error("Invalid secondary energy mode on S(a,b) table " & @@ -731,8 +735,19 @@ contains end if ! (inelastic secondary energy treatment) end if ! (elastic or inelastic) - ! change direction of particle - uvw = rotate_angle(uvw, mu) + + ! compute cosine of scattering angle in LAB frame by taking dot product of + ! neutron's pre- and post-collision unit vectors + if (iso_lab) then + uvw(1) = TWO * prn() - ONE + phi = TWO * PI * prn() + uvw(2) = cos(phi) * sqrt(ONE - uvw(1)*uvw(1)) + uvw(3) = sin(phi) * sqrt(ONE - uvw(1)*uvw(1)) + mu_lab = dot_product(uvw_in, uvw) + else + ! change direction of particle + uvw = rotate_angle(uvw, mu_lab) + end if end subroutine sab_scatter From 77b4b727bdcb41625c176c6c94c0b13b6c62a5b1 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 29 Apr 2015 23:51:30 -0400 Subject: [PATCH 07/48] Removed ListLog and made iso_lab list ListInt --- src/input_xml.F90 | 18 ++-- src/list_header.F90 | 246 -------------------------------------------- 2 files changed, 11 insertions(+), 253 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index a9c7618429..01379a231c 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -7,7 +7,7 @@ module input_xml use error, only: fatal_error, warning use geometry_header, only: Cell, Surface, Lattice, RectLattice, HexLattice use global - use list_header, only: ListChar, ListLog, ListReal + use list_header, only: ListChar, ListInt, ListReal use mesh_header, only: StructuredMesh use output, only: write_message use plot_header @@ -1581,7 +1581,7 @@ contains character(MAX_LINE_LEN) :: temp_str ! temporary string when reading type(ListChar) :: list_names ! temporary list of nuclide names type(ListReal) :: list_density ! temporary list of nuclide densities - type(ListLog) :: list_iso_lab ! temporary list of isotropic lab scatterers + type(ListInt) :: list_iso_lab ! temporary list of isotropic lab scatterers type(Material), pointer :: mat => null() type(Node), pointer :: doc => null() type(Node), pointer :: node_mat => null() @@ -1740,15 +1740,15 @@ contains if (check_for_node(node_nuc, "scattering")) then call get_node_value(node_nuc, "scattering", temp_str) if (trim(adjustl(to_lower(temp_str))) == "lab") then - call list_iso_lab % append(.true.) + call list_iso_lab % append(1) else if (trim(adjustl(to_lower(temp_str))) == "ace") then - call list_iso_lab % append(.false.) + call list_iso_lab % append(0) else call fatal_error("Scattering must be isotropic in lab or follow& & the ACE file data") end if else - call list_iso_lab % append(.false.) + call list_iso_lab % append(0) end if ! store full name @@ -1880,8 +1880,12 @@ contains mat % names(j) = name mat % atom_density(j) = list_density % get_item(j) - ! Copy isotropic lab scattering flag - mat % p0(j) = list_iso_lab % get_item(j) + ! Cast integer isotropic lab scattering flag to boolean + if (list_iso_lab % get_item(j) == 1) then + mat % p0(j) = .true. + else + mat % p0(j) = .false. + end if end do ALL_NUCLIDES diff --git a/src/list_header.F90 b/src/list_header.F90 index e4cc56ed0a..9d6c13b2ca 100644 --- a/src/list_header.F90 +++ b/src/list_header.F90 @@ -34,12 +34,6 @@ module list_header type(ListElemChar), pointer :: prev => null() end type ListElemChar - type :: ListElemLog - logical :: data - type(ListElemLog), pointer :: next => null() - type(ListElemLog), pointer :: prev => null() - end type ListElemLog - !=============================================================================== ! LIST* types contain the linked list with convenience methods. We originally @@ -114,28 +108,6 @@ module list_header procedure :: size => list_size_char ! Size of list end type ListChar - type, public :: ListLog - private - integer :: count = 0 ! Number of elements in list - - ! Used in get_item for fast sequential lookups - integer :: last_index = huge(0) - type(ListElemLog), pointer :: last_elem => null() - - ! Pointers to beginning and end of list - type(ListElemLog), public, pointer :: head => null() - type(ListElemLog), public, pointer :: tail => null() - contains - procedure :: append => list_append_log ! Add item to end of list - procedure :: clear => list_clear_log ! Remove all items - procedure :: contains => list_contains_log ! Does list contain? - procedure :: get_item => list_get_item_log ! Get i-th item in list - procedure :: index => list_index_log ! Determine index of given item - procedure :: insert => list_insert_log ! Insert item in i-th position - procedure :: remove => list_remove_log ! Remove specified item - procedure :: size => list_size_log ! Size of list - end type ListLog - contains !=============================================================================== @@ -218,31 +190,6 @@ contains end subroutine list_append_char - subroutine list_append_log(this, data) - class(ListLog) :: this - logical :: data - - type(ListElemLog), pointer :: elem - - ! Create element and set dat - allocate(elem) - elem % data = data - - if (.not. associated(this % head)) then - ! If list is empty, set head and tail to new element - this % head => elem - this % tail => elem - else - ! Otherwise append element at end of list - this % tail % next => elem - elem % prev => this % tail - this % tail => this % tail % next - end if - - this % count = this % count + 1 - - end subroutine list_append_log - !=============================================================================== ! LIST_CLEAR removes all elements from the list !=============================================================================== @@ -325,32 +272,6 @@ contains end subroutine list_clear_char - subroutine list_clear_log(this) - class(ListLog) :: this - - type(ListElemLog), pointer :: current => null() - type(ListElemLog), pointer :: next => null() - - if (this % count > 0) then - current => this % head - do while (associated(current)) - ! Set pointer to next element - next => current % next - - ! Deallocate memory for current element - deallocate(current) - - ! Move to next element - current => next - end do - - nullify(this % head) - nullify(this % tail) - this % count = 0 - end if - - end subroutine list_clear_log - !=============================================================================== ! LIST_CONTAINS determines whether the list contains a specified item. Since it ! relies on the index method, it is O(n). @@ -383,15 +304,6 @@ contains end function list_contains_char - function list_contains_log(this, data) result(in_list) - class(ListLog) :: this - logical :: data - logical :: in_list - - in_list = (this % index(data) > 0) - - end function list_contains_log - !=============================================================================== ! LIST_GET_ITEM returns the item in the list at position 'i_list'. If the index ! is out of bounds, an error code is returned. @@ -496,39 +408,6 @@ contains end function list_get_item_char - function list_get_item_log(this, i_list) result(data) - class(ListLog) :: this - integer :: i_list - logical :: data - - integer :: last_index - - if (i_list < 1 .or. i_list > this % count) then - ! Check for index out of bounds - data = .false. - elseif (i_list == 1) then - data = this % head % data - this % last_index = 1 - this % last_elem => this % head - elseif (i_list == this % count) then - data = this % tail % data - this % last_index = this % count - this % last_elem => this % tail - else - if (i_list < this % last_index) then - this % last_index = 1 - this % last_elem => this % head - end if - - do last_index = this % last_index + 1, i_list - this % last_elem => this % last_elem % next - this % last_index = last_index - end do - data = this % last_elem % data - end if - - end function list_get_item_log - !=============================================================================== ! LIST_INDEX determines the first index in the list that contains 'data'. If ! 'data' is not present in the list, the return value is -1. @@ -597,27 +476,6 @@ contains end function list_index_char - function list_index_log(this, data) result(i_list) - - class(ListLog) :: this - logical :: data - integer :: i_list - - type(ListElemLog), pointer :: elem - - i_list = 0 - elem => this % head - do while (associated(elem)) - i_list = i_list + 1 - if (data .eqv. elem % data) exit - elem => elem % next - end do - - ! Check if we reached the end of the list - if (.not. associated(elem)) i_list = -1 - - end function list_index_log - !=============================================================================== ! LIST_INSERT inserts 'data' at index 'i_list' within the list. If 'i_list' ! exceeds the size of the list, the data is appends at the end of the list. @@ -789,62 +647,6 @@ contains end subroutine list_insert_char - subroutine list_insert_log(this, i_list, data) - - class(ListLog) :: this - integer :: i_list - logical :: data - - integer :: i - type(ListElemLog), pointer :: elem => null() - type(ListElemLog), pointer :: new_elem => null() - - if (i_list > this % count) then - ! Check whether specified index is greater than number of elements -- if - ! so, just append it to the end of the list - call this % append(data) - - else if (i_list == 1) then - ! Check for new head element - allocate(new_elem) - new_elem % data = data - new_elem % next => this % head - this % head => new_elem - this % count = this % count + 1 - - else - ! Default case with new element somewhere in middle of list - if (i_list >= this % last_index) then - i = this % last_index - elem => this % last_elem - else - i = 0 - elem => this % head - end if - do while (associated(elem)) - i = i + 1 - if (i == i_list - 1) then - ! Allocate new element - allocate(new_elem) - new_elem % data = data - - ! Put it before the i-th element - new_elem % prev => elem % prev - new_elem % next => elem - new_elem % prev % next => new_elem - new_elem % next % prev => new_elem - this % count = this % count + 1 - this % last_index = i_list - this % last_elem => new_elem - exit - end if - i = i + 1 - elem => elem % next - end do - end if - - end subroutine list_insert_log - !=============================================================================== ! LIST_REMOVE removes the first item in the list that contains 'data'. If 'data' ! is not in the list, no action is taken. @@ -967,45 +769,6 @@ contains end subroutine list_remove_char - subroutine list_remove_log(this, data) - - class(ListLog) :: this - logical :: data - - type(ListElemLog), pointer :: elem => null() - - elem => this % head - do while (associated(elem)) - ! Check for matching data - if (elem % data .eqv. data) then - - ! Determine whether the current element is the head, tail, or a middle - ! element - if (associated(elem, this % head)) then - this % head => elem % next - if (associated(elem, this % tail)) nullify(this % tail) - if (associated(this % head)) nullify(this % head % prev) - deallocate(elem) - else if (associated(elem, this % tail)) then - this % tail => elem % prev - deallocate(this % tail % next) - else - elem % prev % next => elem % next - elem % next % prev => elem % prev - deallocate(elem) - end if - - ! Decrease count and exit - this % count = this % count - 1 - exit - end if - - ! Advance pointers - elem => elem % next - end do - - end subroutine list_remove_log - !=============================================================================== ! LIST_SIZE returns the number of elements in the list !=============================================================================== @@ -1037,13 +800,4 @@ contains end function list_size_char - function list_size_log(this) result(size) - - class(ListLog) :: this - integer :: size - - size = this % count - - end function list_size_log - end module list_header From 08ad9d7425082a314036fda6cf82a378c09b94b3 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 26 Jul 2015 17:59:11 -0700 Subject: [PATCH 08/48] Removed remaining errant merge conflict metadata from nuclide.py --- openmc/nuclide.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 7de1e900c6..25abe815b7 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -92,8 +92,6 @@ class Nuclide(object): check_type('zaid', zaid, Integral) self._zaid = zaid -<<<<<<< HEAD - @scattering.setter def scattering(self, scattering): @@ -104,18 +102,12 @@ class Nuclide(object): self._scattering = scattering - -======= ->>>>>>> develop def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) if self._zaid is not None: string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self._zaid) -<<<<<<< HEAD if self._scattering is not None: string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', self._scattering) -======= ->>>>>>> develop return string From a11ccce8a3d8224413ce31fc2e2e0773bb00c50b Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 16:06:34 -0500 Subject: [PATCH 09/48] Changed isotropic in lab scattering tag to iso-in-lab --- docs/source/usersguide/input.rst | 12 ++++++------ openmc/nuclide.py | 4 ++-- src/input_xml.F90 | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 7815d8810f..a20ceda187 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1138,12 +1138,12 @@ Each ``material`` element can have the following attributes or sub-elements: An optional attribute/sub-element for each nuclide is ``scattering``. This attribute may be set to "ace" to use the scattering laws specified in the - ACE files (default). Alternatively, when set to "lab", the ACE scattering - laws are used to sample the outgoing energy but an isotropic-in-lab - distribution is used to sample the outgoing angle at each scattering - interaction. The ``scattering`` attribute may be most useful when using - OpenMC to compute multi-group cross-sections for deterministic transport - codes and to quantify the effects of anisotropic scattering. + ACE files (default). Alternatively, when set to "iso-in-lab", the ACE + scattering laws are used to sample the outgoing energy but an + isotropic-in-lab distribution is used to sample the outgoing angle at each + scattering interaction. The ``scattering`` attribute may be most useful + when using OpenMC to compute multi-group cross-sections for deterministic + transport codes and to quantify the effects of anisotropic scattering. *Default*: None diff --git a/openmc/nuclide.py b/openmc/nuclide.py index c2a4d84551..84ad112bc2 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -102,9 +102,9 @@ class Nuclide(object): @scattering.setter def scattering(self, scattering): - if not scattering in ['ace', 'lab']: + if not scattering in ['ace', 'iso-in-lab']: msg = 'Unable to set scattering for Nuclide to {0} ' \ - 'which is not "ace" or "lab"'.format(scattering) + 'which is not "ace" or "iso-in-lab"'.format(scattering) raise ValueError(msg) self._scattering = scattering diff --git a/src/input_xml.F90 b/src/input_xml.F90 index b498b4ca7e..70b9302df8 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1938,7 +1938,7 @@ contains ! Check enforced isotropic lab scattering if (check_for_node(node_nuc, "scattering")) then call get_node_value(node_nuc, "scattering", temp_str) - if (trim(adjustl(to_lower(temp_str))) == "lab") then + if (trim(adjustl(to_lower(temp_str))) == "iso-in-lab") then call list_iso_lab % append(1) else if (trim(adjustl(to_lower(temp_str))) == "ace") then call list_iso_lab % append(0) From 0360983ecd335ef924f8f0df1aaefd4304a411d0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 16:11:15 -0500 Subject: [PATCH 10/48] Removed unnecessary whitespace --- src/list_header.F90 | 1 - 1 file changed, 1 deletion(-) diff --git a/src/list_header.F90 b/src/list_header.F90 index 27721a7a67..8020b96b17 100644 --- a/src/list_header.F90 +++ b/src/list_header.F90 @@ -34,7 +34,6 @@ module list_header type(ListElemChar), pointer :: prev => null() end type ListElemChar - !=============================================================================== ! LIST* types contain the linked list with convenience methods. We originally ! considered using unlimited polymorphism to provide a single type, but compiler From 151fa4d47942a642ed8962d3904f326850233fe9 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 16:57:29 -0500 Subject: [PATCH 11/48] Refactored iso-in-lab scattering in physics.F90 to consolidate within scattering routine --- openmc/material.py | 4 +- src/physics.F90 | 135 ++++++++++++++++++--------------------------- 2 files changed, 57 insertions(+), 82 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 8ef4c8c1bd..e100b7539e 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -373,7 +373,7 @@ class Material(object): def make_isotropic_in_lab(self): for nuclide_name in self._nuclides: - self._nuclides[nuclide_name][0].make_isotropic_in_lab() + self._nuclides[nuclide_name][0].scattering = 'iso-in-lab' def get_all_nuclides(self): """Returns all nuclides in the material @@ -599,7 +599,7 @@ class MaterialsFile(object): def make_isotropic_in_lab(self): for material in self._materials: - materials.make_isotropic_in_lab() + material.make_isotropic_in_lab() def _create_material_subelements(self): subelement = ET.SubElement(self._materials_file, "default_xs") diff --git a/src/physics.F90 b/src/physics.F90 index 54528b5baa..03fc8a2def 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -314,6 +314,13 @@ contains real(8) :: cutoff type(Nuclide), pointer :: nuc type(Reaction), pointer :: rxn + 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) :: mu_lab ! polar angle cosine for iso-in-lab scattering + real(8) :: phi ! azimuthal angle for iso-in-lab scattering + + ! copy incoming direction + uvw_old(:) = p % coord(1) % uvw ! Get pointer to nuclide and grid index/interpolation factor nuc => nuclides(i_nuclide) @@ -332,11 +339,9 @@ contains ! ELASTIC SCATTERING if (micro_xs(i_nuclide) % index_sab /= NONE) then - ! S(a,b) scattering call sab_scatter(i_nuclide, micro_xs(i_nuclide) % index_sab, & - p % E, p % coord(1) % uvw, p % mu, & - materials(p % material) % p0(i_nuc_mat)) + p % E, p % coord(1) % uvw, p % mu) else ! get pointer to elastic scattering reaction @@ -344,8 +349,7 @@ contains ! Perform collision physics for elastic scattering call elastic_scatter(i_nuclide, rxn, & - p % E, p % coord(1) % uvw, p % mu, p % wgt, & - materials(p % material) % p0(i_nuc_mat)) + p % E, p % coord(1) % uvw, p % mu, p % wgt) end if p % event_MT = ELASTIC @@ -387,7 +391,7 @@ contains end do ! Perform collision physics for inelastic scattering - call inelastic_scatter(nuc, rxn, p, materials(p % material) % p0(i_nuc_mat)) + call inelastic_scatter(nuc, rxn, p) p % event_MT = rxn % MT end if @@ -395,6 +399,20 @@ contains ! Set event component p % event = EVENT_SCATTER + ! sample new outgoing angle for isotropic in lab scattering + if (materials(p % material) % p0(i_nuc_mat)) then + + ! sample isotropic-in-lab outgoing direction + uvw_new(1) = TWO * prn() - ONE + phi = TWO * PI * prn() + uvw_new(2) = cos(phi) * sqrt(ONE - uvw_new(1)*uvw_new(1)) + uvw_new(3) = sin(phi) * sqrt(ONE - uvw_new(1)*uvw_new(1)) + mu_lab = dot_product(uvw_old, uvw_new) + + ! change direction of particle + p % coord(1) % uvw = rotate_angle(uvw_new, mu_lab) + end if + end subroutine scatter !=============================================================================== @@ -402,24 +420,21 @@ contains ! target. !=============================================================================== - subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab, wgt, iso_lab) + subroutine elastic_scatter(i_nuclide, rxn, E, uvw, mu_lab, wgt) integer, intent(in) :: i_nuclide type(Reaction), pointer :: rxn real(8), intent(inout) :: E real(8), intent(inout) :: uvw(3) + real(8), intent(out) :: mu_lab real(8), intent(inout) :: wgt - real(8), intent(out) :: mu_lab ! cosine of polar angle in lab system - logical, intent(in) :: iso_lab real(8) :: awr ! atomic weight ratio of target real(8) :: mu_cm ! cosine of polar angle in center-of-mass - real(8) :: phi ! azimuthal angle real(8) :: vel ! magnitude of velocity real(8) :: v_n(3) ! velocity of neutron real(8) :: v_cm(3) ! velocity of center-of-mass real(8) :: v_t(3) ! velocity of target nucleus - real(8) :: uvw_in(3) ! incoming direction real(8) :: uvw_cm(3) ! directional cosines in center-of-mass type(Nuclide), pointer :: nuc @@ -432,9 +447,6 @@ contains ! Neutron velocity in LAB v_n = vel * uvw - ! incoming direction - uvw_in(:) = uvw(:) - ! Sample velocity of target nucleus if (.not. micro_xs(i_nuclide) % use_ptable) then call sample_target_velocity(nuc, v_t, E, uvw, v_n, wgt, & @@ -470,17 +482,11 @@ contains vel = sqrt(E) ! compute cosine of scattering angle in LAB frame by taking dot product of - ! neutron's pre- and post-collision unit vectors - if (iso_lab) then - uvw(1) = TWO * prn() - ONE - phi = TWO * PI * prn() - uvw(2) = cos(phi) * sqrt(ONE - uvw(1)*uvw(1)) - uvw(3) = sin(phi) * sqrt(ONE - uvw(1)*uvw(1)) - else - uvw = v_n / vel - end if + ! neutron's pre- and post-collision angle + mu_lab = dot_product(uvw, v_n) / vel - mu_lab = dot_product(uvw_in, uvw) + ! Set energy and direction of particle in LAB frame + uvw = v_n / vel ! Because of floating-point roundoff, it may be possible for mu_lab to be ! outside of the range [-1,1). In these cases, we just set mu_lab to exactly @@ -495,15 +501,13 @@ contains ! according to a specified S(a,b) table. !=============================================================================== - subroutine sab_scatter(i_nuclide, i_sab, E, uvw, mu_lab, iso_lab) + subroutine sab_scatter(i_nuclide, i_sab, E, uvw, mu) integer, intent(in) :: i_nuclide ! index in micro_xs integer, intent(in) :: i_sab ! index in sab_tables real(8), intent(inout) :: E ! incoming/outgoing energy real(8), intent(inout) :: uvw(3) ! directional cosines - real(8) :: uvw_in(3) ! incoming direction - real(8), intent(out) :: mu_lab ! cosine of polar angle in lab system - logical, intent(in) :: iso_lab + real(8), intent(out) :: mu ! scattering cosine integer :: i ! incoming energy bin integer :: j ! outgoing energy bin @@ -527,14 +531,10 @@ contains real(8) :: c_j, c_j1 ! cumulative probability real(8) :: frac ! interpolation factor on outgoing energy real(8) :: r1 ! RNG for outgoing energy - real(8) :: phi ! azimuthal angle ! Get pointer to S(a,b) table sab => sab_tables(i_sab) - ! incoming direction - uvw_in(:) = uvw(:) - ! Determine whether inelastic or elastic scattering will occur if (prn() < micro_xs(i_nuclide) % elastic_sab / & micro_xs(i_nuclide) % elastic) then @@ -564,7 +564,7 @@ contains mu_i1jk = sab % elastic_mu(k,i+1) ! Cosine of angle between incoming and outgoing neutron - mu_lab = (1 - f)*mu_ijk + f*mu_i1jk + mu = (1 - f)*mu_ijk + f*mu_i1jk elseif (sab % elastic_mode == SAB_ELASTIC_EXACT) then ! This treatment is used for data derived in the coherent @@ -580,7 +580,7 @@ contains end if ! Characteristic scattering cosine for this Bragg edge - mu_lab = ONE - TWO*sab % elastic_e_in(k) / E + mu = ONE - TWO*sab % elastic_e_in(k) / E end if @@ -655,7 +655,7 @@ contains mu_i1jk = sab % inelastic_mu(k,j,i+1) ! Cosine of angle between incoming and outgoing neutron - mu_lab = (1 - f)*mu_ijk + f*mu_i1jk + mu = (1 - f)*mu_ijk + f*mu_i1jk else if (sab % secondary_mode == SAB_SECONDARY_CONT) then ! Continuous secondary energy - this is to be similar to @@ -732,7 +732,7 @@ contains ! Will use mu from the randomly chosen incoming and closest outgoing ! energy bins - mu_lab = sab % inelastic_data(l) % mu(k, j) + mu = sab % inelastic_data(l) % mu(k, j) else call fatal_error("Invalid secondary energy mode on S(a,b) table " & @@ -744,20 +744,10 @@ contains ! outside of the range [-1,1). In these cases, we just set mu to exactly ! -1 or 1 - if (abs(mu_lab) > ONE) mu_lab = sign(ONE,mu_lab) + if (abs(mu) > ONE) mu = sign(ONE,mu) - ! compute cosine of scattering angle in LAB frame by taking dot product of - ! neutron's pre- and post-collision unit vectors - if (iso_lab) then - uvw(1) = TWO * prn() - ONE - phi = TWO * PI * prn() - uvw(2) = cos(phi) * sqrt(ONE - uvw(1)*uvw(1)) - uvw(3) = sin(phi) * sqrt(ONE - uvw(1)*uvw(1)) - mu_lab = dot_product(uvw_in, uvw) - else - ! change direction of particle - uvw = rotate_angle(uvw, mu_lab) - end if + ! change direction of particle + uvw = rotate_angle(uvw, mu) end subroutine sab_scatter @@ -1333,28 +1323,23 @@ contains ! than fission), i.e. level scattering, (n,np), (n,na), etc. !=============================================================================== - subroutine inelastic_scatter(nuc, rxn, p, iso_lab) - - type(Nuclide), pointer :: nuc - type(Reaction), pointer :: rxn + subroutine inelastic_scatter(nuc, rxn, p) + type(Nuclide), pointer :: nuc + type(Reaction), pointer :: rxn type(Particle), intent(inout) :: p - logical, intent(in) :: iso_lab integer :: i ! loop index - integer :: law ! secondary energy distribution law - real(8) :: mu ! cosine of scattering angle in lab - real(8) :: A ! atomic weight ratio of nuclide + integer :: law ! secondary energy distribution law real(8) :: E ! energy in lab (incoming/outgoing) - real(8) :: E_in ! incoming energy - real(8) :: E_cm ! outgoing energy in center-of-mass - real(8) :: Q ! Q-value of reaction - real(8) :: yield ! neutron yield - real(8) :: uvw_in(3) ! incoming direction - real(8) :: phi ! azimuthal angle + real(8) :: mu ! cosine of scattering angle in lab + real(8) :: A ! atomic weight ratio of nuclide + real(8) :: E_in ! incoming energy + real(8) :: E_cm ! outgoing energy in center-of-mass + real(8) :: Q ! Q-value of reaction + real(8) :: yield ! neutron yield - ! copy energy, direction of neutron + ! copy energy of neutron E_in = p % E - uvw_in(:) = p % coord(1) % uvw(:) ! determine A and Q A = nuc % awr @@ -1399,22 +1384,12 @@ contains if (abs(mu) > ONE) mu = sign(ONE,mu) end if - ! compute cosine of scattering angle in LAB frame by taking dot product of - ! neutron's pre- and post-collision unit vectors - if (iso_lab) then - p % coord(1) % uvw(1) = TWO * prn() - ONE - phi = TWO * PI * prn() - p % coord(1) % uvw(2) = cos(phi) * sqrt(ONE - uvw_in(1) * uvw_in(1)) - p % coord(1) % uvw(3) = sin(phi) * sqrt(ONE - uvw_in(1) * uvw_in(1)) - mu = dot_product(uvw_in, p % coord(1) % uvw) - else - ! Set outgoing energy and scattering angle - p % E = E - p % mu = mu + ! Set outgoing energy and scattering angle + p % E = E + p % mu = mu - ! change direction of particle - p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, mu) - end if + ! change direction of particle + p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, mu) ! change weight of particle based on yield if (rxn % multiplicity_with_E) then From 6e827c25e7333893e100c7b5dd276ccfca9a6a10 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 17:02:55 -0500 Subject: [PATCH 12/48] Removed unnecessary trailing whitespace from physics.F90 --- src/physics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/physics.F90 b/src/physics.F90 index 03fc8a2def..00db08950c 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -316,7 +316,7 @@ contains type(Reaction), pointer :: rxn 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) :: mu_lab ! polar angle cosine for iso-in-lab scattering + real(8) :: mu_lab ! polar angle cosine for iso-in-lab scattering real(8) :: phi ! azimuthal angle for iso-in-lab scattering ! copy incoming direction From 81116a20496689a53de9ec60546f17b76a885c65 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 17:34:04 -0500 Subject: [PATCH 13/48] Elements can now use iso-in-lab scattering in adddition to Nuclides --- openmc/element.py | 23 ++++++++++++++++++++++- openmc/material.py | 13 +++++++++---- openmc/nuclide.py | 2 ++ src/input_xml.F90 | 29 ++++++++++++++++++++++++++++- 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/openmc/element.py b/openmc/element.py index 56821b5d2f..f39bcbfefd 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -24,6 +24,8 @@ class Element(object): Chemical symbol of the element, e.g. Pu xs : str Cross section identifier, e.g. 71c + scattering : 'ace' or 'iso-in-lab' or None + The type of angular scattering distribution to use """ @@ -31,6 +33,7 @@ class Element(object): # Initialize class attributes self._name = '' self._xs = None + self._scattering = None # Set class attributes self.name = name @@ -60,6 +63,10 @@ class Element(object): def __repr__(self): string = 'Element - {0}\n'.format(self._name) string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) + if self._scattering is not None: + string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', + self._scattering) + return string @property @@ -70,6 +77,10 @@ class Element(object): def name(self): return self._name + @property + def scattering(self): + return self._scattering + @xs.setter def xs(self, xs): check_type('cross section identifier', xs, basestring) @@ -78,4 +89,14 @@ class Element(object): @name.setter def name(self, name): check_type('name', name, basestring) - self._name = name \ No newline at end of file + self._name = name + + @scattering.setter + def scattering(self, scattering): + + if not scattering in ['ace', 'iso-in-lab']: + msg = 'Unable to set scattering for Element to {0} ' \ + 'which is not "ace" or "iso-in-lab"'.format(scattering) + raise ValueError(msg) + + self._scattering = scattering diff --git a/openmc/material.py b/openmc/material.py index e100b7539e..98d0d3f878 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -374,6 +374,8 @@ class Material(object): def make_isotropic_in_lab(self): for nuclide_name in self._nuclides: self._nuclides[nuclide_name][0].scattering = 'iso-in-lab' + for element_name in self._elements: + self._element[element_name][0].scattering = 'iso-in-lab' def get_all_nuclides(self): """Returns all nuclides in the material @@ -405,11 +407,11 @@ class Material(object): else: xml_element.set("wo", str(nuclide[1])) - if nuclide[0]._xs is not None: - xml_element.set("xs", nuclide[0]._xs) + if nuclide[0].xs is not None: + xml_element.set("xs", nuclide[0].xs) - if not nuclide[0]._scattering is None: - xml_element.set("scattering", nuclide[0]._scattering) + if not nuclide[0].scattering is None: + xml_element.set("scattering", nuclide[0].scattering) return xml_element @@ -423,6 +425,9 @@ class Material(object): else: xml_element.set("wo", str(element[1])) + if not element[0].scattering is None: + xml_element.set("scattering", element[0].scattering) + return xml_element def _get_nuclides_xml(self, nuclides, distrib=False): diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 84ad112bc2..1c926dc3d8 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -26,6 +26,8 @@ class Nuclide(object): zaid : int 1000*(atomic number) + mass number. As an example, the zaid of U-235 would be 92235. + scattering : 'ace' or 'iso-in-lab' or None + The type of angular scattering distribution to use """ diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 70b9302df8..1e1492efcc 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1759,8 +1759,10 @@ contains integer :: i ! loop index for materials integer :: j ! loop index for nuclides + integer :: k ! llop index for elements integer :: n ! number of nuclides integer :: n_sab ! number of sab tables for a material + integer :: n_nuc_ele ! number of nuclides in an element integer :: index_list ! index in xs_listings array integer :: index_nuclide ! index in nuclides integer :: index_sab ! index in sab_tables @@ -2021,6 +2023,9 @@ contains &element: " // trim(name)) end if + ! Get current number of nuclides + n_nuc_ele = list_names % size() + ! Expand element into naturally-occurring isotopes if (check_for_node(node_ele, "ao")) then call get_node_value(node_ele, "ao", temp_dble) @@ -2030,6 +2035,29 @@ contains call fatal_error("The ability to expand a natural element based on & &weight percentage is not yet supported.") end if + + ! Compute number of new nuclides from the natural element expansion + n_nuc_ele = list_names % size() - n_nuc_ele + + ! Check enforced isotropic lab scattering + if (check_for_node(node_ele, "scattering")) then + call get_node_value(node_ele, "scattering", temp_str) + else + temp_str = "ace" + end if + + ! Set ace or iso-in-lab scattering for each nuclide in element + do k = 1, n_nuc_ele + if (trim(adjustl(to_lower(temp_str))) == "iso-in-lab") then + call list_iso_lab % append(1) + else if (trim(adjustl(to_lower(temp_str))) == "ace") then + call list_iso_lab % append(0) + else + call fatal_error("Scattering must be isotropic in lab or follow& + & the ACE file data") + end if + end do + end do NATURAL_ELEMENTS ! ======================================================================== @@ -4213,7 +4241,6 @@ contains call list_density % append(density * 0.999885_8) call list_names % append('1002.' // xs) call list_density % append(density * 0.000115_8) - case ('he') call list_names % append('2003.' // xs) call list_density % append(density * 0.00000134_8) From 96578a515a63f23d220d2839e968e56de7de1cdd Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 17:35:22 -0500 Subject: [PATCH 14/48] Updated docs with iso-in-lab scattering for elements --- docs/source/usersguide/input.rst | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index a20ceda187..ce1d07ca00 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1141,7 +1141,7 @@ Each ``material`` element can have the following attributes or sub-elements: ACE files (default). Alternatively, when set to "iso-in-lab", the ACE scattering laws are used to sample the outgoing energy but an isotropic-in-lab distribution is used to sample the outgoing angle at each - scattering interaction. The ``scattering`` attribute may be most useful + scattering interaction. The ``scattering`` attribute may be most useful when using OpenMC to compute multi-group cross-sections for deterministic transport codes and to quantify the effects of anisotropic scattering. @@ -1171,6 +1171,16 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + An optional attribute/sub-element for each element is ``scattering``. This + attribute may be set to "ace" to use the scattering laws specified in the + ACE files (default). Alternatively, when set to "iso-in-lab", the ACE + scattering laws are used to sample the outgoing energy but an + isotropic-in-lab distribution is used to sample the outgoing angle at each + scattering interaction. The ``scattering`` attribute may be most useful + when using OpenMC to compute multi-group cross-sections for deterministic + transport codes and to quantify the effects of anisotropic scattering. + + *Default*: None :sab: Associates an S(a,b) table with the material. This element has From 3e34c5882c79ada0552a2492937fda149e39c6af Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 17:36:59 -0500 Subject: [PATCH 15/48] Now using property getters in Nuclide and Element __repr__ routines --- openmc/element.py | 4 ++-- openmc/nuclide.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/openmc/element.py b/openmc/element.py index f39bcbfefd..3a15a8f638 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -63,9 +63,9 @@ class Element(object): def __repr__(self): string = 'Element - {0}\n'.format(self._name) string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) - if self._scattering is not None: + if self.scattering is not None: string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', - self._scattering) + self.scattering) return string diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 1c926dc3d8..c5bc4e078f 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -113,10 +113,10 @@ class Nuclide(object): def __repr__(self): string = 'Nuclide - {0}\n'.format(self._name) - string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self._xs) - if self._zaid is not None: - string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self._zaid) - if self._scattering is not None: + string += '{0: <16}{1}{2}\n'.format('\tXS', '=\t', self.xs) + if self.zaid is not None: + string += '{0: <16}{1}{2}\n'.format('\tZAID', '=\t', self.zaid) + if self.scattering is not None: string += '{0: <16}{1}{2}\n'.format('\tscattering', '=\t', - self._scattering) + self.scattering) return string From 3bbefb7169ac07c9e5129600f271e999be68add7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 17:39:13 -0500 Subject: [PATCH 16/48] Fixed mis-spelled comment in physics.F90 --- src/input_xml.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 1e1492efcc..1ee2a060e9 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1759,7 +1759,7 @@ contains integer :: i ! loop index for materials integer :: j ! loop index for nuclides - integer :: k ! llop index for elements + integer :: k ! loop index for elements integer :: n ! number of nuclides integer :: n_sab ! number of sab tables for a material integer :: n_nuc_ele ! number of nuclides in an element From 4b70c4abc16714ecb1fe1cfff70912a1c0b93f16 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 17:56:42 -0500 Subject: [PATCH 17/48] Removed trailing whitespace in input_xml.F90 --- src/input_xml.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 1ee2a060e9..df10d0f70e 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2047,7 +2047,7 @@ contains end if ! Set ace or iso-in-lab scattering for each nuclide in element - do k = 1, n_nuc_ele + do k = 1, n_nuc_ele if (trim(adjustl(to_lower(temp_str))) == "iso-in-lab") then call list_iso_lab % append(1) else if (trim(adjustl(to_lower(temp_str))) == "ace") then From 4db72c90af2dd62d52a199f4e86ef26676abab53 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sun, 8 Nov 2015 20:53:18 -0500 Subject: [PATCH 18/48] Fixed issues in iso-in-lab scattering in physics.F90 per comments by @walshjon --- src/physics.F90 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/physics.F90 b/src/physics.F90 index 00db08950c..9f8fb535b1 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -316,7 +316,6 @@ contains type(Reaction), pointer :: rxn 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) :: mu_lab ! polar angle cosine for iso-in-lab scattering real(8) :: phi ! azimuthal angle for iso-in-lab scattering ! copy incoming direction @@ -407,10 +406,10 @@ contains phi = TWO * PI * prn() uvw_new(2) = cos(phi) * sqrt(ONE - uvw_new(1)*uvw_new(1)) uvw_new(3) = sin(phi) * sqrt(ONE - uvw_new(1)*uvw_new(1)) - mu_lab = dot_product(uvw_old, uvw_new) + p % mu = dot_product(uvw_old, uvw_new) ! change direction of particle - p % coord(1) % uvw = rotate_angle(uvw_new, mu_lab) + p % coord(1) % uvw = uvw_new end if end subroutine scatter From d03272867fbb4a908e74290fad04943517a26014 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 Nov 2015 00:11:50 -0500 Subject: [PATCH 19/48] Made MGXS subdomain averaging use scalar flux weighting --- openmc/mgxs/mgxs.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 599078519b..1296f195cc 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -824,9 +824,9 @@ class MGXS(object): mean = tally.get_reshaped_data(value='mean') std_dev = tally.get_reshaped_data(value='std_dev') - # Get the mean of the mean, std. dev. across requested subdomains - mean = np.mean(mean[subdomains, ...], axis=0) - std_dev = np.mean(std_dev[subdomains, ...]**2, axis=0) + # Get the mean, std. dev. across requested subdomains + mean = np.sum(mean[subdomains, ...], axis=0) + std_dev = np.sum(std_dev[subdomains, ...]**2, axis=0) std_dev = np.sqrt(std_dev) # If domain is distribcell, make subdomain-averaged a 'cell' domain From baa0b4c10cba06e174bec57fc41f73682642a5f2 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 Nov 2015 09:26:48 -0500 Subject: [PATCH 20/48] Now using a "data" descriptor rather than "ace" for the nuclide/element scattering XML tag --- docs/source/usersguide/input.rst | 12 ++++++------ openmc/element.py | 6 +++--- openmc/material.py | 4 ++-- openmc/nuclide.py | 6 +++--- src/input_xml.F90 | 10 +++++----- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index ce1d07ca00..04a6406dc8 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1137,9 +1137,9 @@ Each ``material`` element can have the following attributes or sub-elements: be given in atom percent. The same applies for weight percentages. An optional attribute/sub-element for each nuclide is ``scattering``. This - attribute may be set to "ace" to use the scattering laws specified in the - ACE files (default). Alternatively, when set to "iso-in-lab", the ACE - scattering laws are used to sample the outgoing energy but an + attribute may be set to "data" to use the scattering laws specified by the + cross section library (default). Alternatively, when set to "iso-in-lab", + the scattering laws are used to sample the outgoing energy but an isotropic-in-lab distribution is used to sample the outgoing angle at each scattering interaction. The ``scattering`` attribute may be most useful when using OpenMC to compute multi-group cross-sections for deterministic @@ -1172,9 +1172,9 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None An optional attribute/sub-element for each element is ``scattering``. This - attribute may be set to "ace" to use the scattering laws specified in the - ACE files (default). Alternatively, when set to "iso-in-lab", the ACE - scattering laws are used to sample the outgoing energy but an + attribute may be set to "data" to use the scattering laws specified by the + cross section library (default). Alternatively, when set to "iso-in-lab", + the scattering laws are used to sample the outgoing energy but an isotropic-in-lab distribution is used to sample the outgoing angle at each scattering interaction. The ``scattering`` attribute may be most useful when using OpenMC to compute multi-group cross-sections for deterministic diff --git a/openmc/element.py b/openmc/element.py index 3a15a8f638..d395b434f7 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -24,7 +24,7 @@ class Element(object): Chemical symbol of the element, e.g. Pu xs : str Cross section identifier, e.g. 71c - scattering : 'ace' or 'iso-in-lab' or None + scattering : 'data' or 'iso-in-lab' or None The type of angular scattering distribution to use """ @@ -94,9 +94,9 @@ class Element(object): @scattering.setter def scattering(self, scattering): - if not scattering in ['ace', 'iso-in-lab']: + if not scattering in ['data', 'iso-in-lab']: msg = 'Unable to set scattering for Element to {0} ' \ - 'which is not "ace" or "iso-in-lab"'.format(scattering) + 'which is not "data" or "iso-in-lab"'.format(scattering) raise ValueError(msg) self._scattering = scattering diff --git a/openmc/material.py b/openmc/material.py index 98d0d3f878..292fc82ca7 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -33,8 +33,8 @@ NO_DENSITY = 99999. class Material(object): - """A material composed of a collection of nuclides/elements that can be assigned - to a region of space. + """A material composed of a collection of nuclides/elements that can be + assigned to a region of space. Parameters ---------- diff --git a/openmc/nuclide.py b/openmc/nuclide.py index c5bc4e078f..2dd8eb1534 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -26,7 +26,7 @@ class Nuclide(object): zaid : int 1000*(atomic number) + mass number. As an example, the zaid of U-235 would be 92235. - scattering : 'ace' or 'iso-in-lab' or None + scattering : 'data' or 'iso-in-lab' or None The type of angular scattering distribution to use """ @@ -104,9 +104,9 @@ class Nuclide(object): @scattering.setter def scattering(self, scattering): - if not scattering in ['ace', 'iso-in-lab']: + if not scattering in ['data', 'iso-in-lab']: msg = 'Unable to set scattering for Nuclide to {0} ' \ - 'which is not "ace" or "iso-in-lab"'.format(scattering) + 'which is not "data" or "iso-in-lab"'.format(scattering) raise ValueError(msg) self._scattering = scattering diff --git a/src/input_xml.F90 b/src/input_xml.F90 index df10d0f70e..ae01b0b5cc 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1940,9 +1940,9 @@ contains ! Check enforced isotropic lab scattering if (check_for_node(node_nuc, "scattering")) then call get_node_value(node_nuc, "scattering", temp_str) - if (trim(adjustl(to_lower(temp_str))) == "iso-in-lab") then + if (adjustl(to_lower(temp_str)) == "iso-in-lab") then call list_iso_lab % append(1) - else if (trim(adjustl(to_lower(temp_str))) == "ace") then + else if (adjustl(to_lower(temp_str)) == "data") then call list_iso_lab % append(0) else call fatal_error("Scattering must be isotropic in lab or follow& @@ -2043,14 +2043,14 @@ contains if (check_for_node(node_ele, "scattering")) then call get_node_value(node_ele, "scattering", temp_str) else - temp_str = "ace" + temp_str = "data" end if ! Set ace or iso-in-lab scattering for each nuclide in element do k = 1, n_nuc_ele - if (trim(adjustl(to_lower(temp_str))) == "iso-in-lab") then + if (adjustl(to_lower(temp_str)) == "iso-in-lab") then call list_iso_lab % append(1) - else if (trim(adjustl(to_lower(temp_str))) == "ace") then + else if (adjustl(to_lower(temp_str)) == "data") then call list_iso_lab % append(0) else call fatal_error("Scattering must be isotropic in lab or follow& From a21cb9d003ebf98374ea20cf7872dd6dbc75caea Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 9 Nov 2015 09:54:11 -0500 Subject: [PATCH 21/48] Updated relaxng schema for nuclide/element scattering tag --- src/relaxng/materials.rnc | 4 ++++ src/relaxng/materials.rng | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/src/relaxng/materials.rnc b/src/relaxng/materials.rnc index ae85654972..da68ebf9ea 100644 --- a/src/relaxng/materials.rnc +++ b/src/relaxng/materials.rnc @@ -15,6 +15,8 @@ element materials { attribute name { xsd:string { maxLength = "7" } }) & (element xs { xsd:string { maxLength = "3" } } | attribute xs { xsd:string { maxLength = "3" } })? & + (element scattering { ( "data" | "iso-in-lab" ) } | + attribute scattering { ( "data" | "iso-in-lab" ) })? & ( (element ao { xsd:double } | attribute ao { xsd:double }) | (element wo { xsd:double } | attribute wo { xsd:double }) @@ -26,6 +28,8 @@ element materials { attribute name { xsd:string { maxLength = "2" } }) & (element xs { xsd:string { maxLength = "3" } } | attribute xs { xsd:string { maxLength = "3" } })? & + (element scattering { ( "data" | "iso-in-lab" ) } | + attribute scattering { ( "data" | "iso-in-lab" ) })? & ( (element ao { xsd:double } | attribute ao { xsd:double }) | (element wo { xsd:double } | attribute wo { xsd:double }) diff --git a/src/relaxng/materials.rng b/src/relaxng/materials.rng index 4c9496eae4..7aba5f7382 100644 --- a/src/relaxng/materials.rng +++ b/src/relaxng/materials.rng @@ -12,6 +12,20 @@ + + + + + 52 + + + + + 52 + + + + @@ -67,6 +81,22 @@ + + + + + data + iso-in-lab + + + + + data + iso-in-lab + + + + @@ -117,6 +147,22 @@ + + + + + data + iso-in-lab + + + + + data + iso-in-lab + + + + From 4d51fb6e5bdb9a4c05d5960d479a6994adfdef57 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 10 Nov 2015 10:00:52 -0500 Subject: [PATCH 22/48] changed p % E to p % last_E for collision and analog tallies and changed neutron velocity to cm/s --- docs/source/usersguide/input.rst | 2 +- src/constants.F90 | 2 +- src/tally.F90 | 40 ++++++++++++++++++++++---------- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 04a6406dc8..0b132275bb 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1507,7 +1507,7 @@ The ```` element accepts the following sub-elements: :inverse-velocity: The flux-weighted inverse velocity where the velocity is in units of - meters per second. + centimeters per second. .. note:: The ``analog`` estimator is actually identical to the ``collision`` diff --git a/src/constants.F90 b/src/constants.F90 index 375c517e76..1ca896c3f9 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -66,7 +66,7 @@ module constants MASS_NEUTRON_MEV = 939.565379_8, & ! mass of a neutron in MeV/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 + C_LIGHT = 2.99792458e10_8, & ! speed of light in cm/s N_AVOGADRO = 0.602214129_8, & ! Avogadro's number in 10^24/mol K_BOLTZMANN = 8.6173324e-11_8, & ! Boltzmann constant in MeV/K INFINITY = huge(0.0_8), & ! positive infinity diff --git a/src/tally.F90 b/src/tally.F90 index fcd6dfdd9b..31bce232a0 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -65,6 +65,7 @@ contains real(8) :: macro_total ! material macro total xs real(8) :: macro_scatt ! material macro scatt xs real(8) :: uvw(3) ! particle direction + real(8) :: E ! particle energy type(Material), pointer :: mat type(Reaction), pointer :: rxn type(Nuclide), pointer :: nuc @@ -128,6 +129,14 @@ contains case (SCORE_INVERSE_VELOCITY) + + ! make sure the correct energy is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + E = p % E + else + E = p % last_E + end if + if (t % estimator == ESTIMATOR_ANALOG) then ! All events score to an inverse velocity bin. We actually use a ! collision estimator in place of an analog one since there is no way @@ -140,11 +149,11 @@ contains score = p % last_wgt end if score = score / material_xs % total & - / (sqrt(TWO * p % E / (MASS_NEUTRON_MEV)) * C_LIGHT) + / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT) else - ! For inverse velocity, we need no cross section - score = flux / (sqrt(TWO * p % E / (MASS_NEUTRON_MEV)) * C_LIGHT) + ! For inverse velocity, we don't need a cross section + score = flux / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT) end if @@ -425,6 +434,13 @@ contains case (SCORE_DELAYED_NU_FISSION) + ! make sure the correct energy is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + E = p % E + else + E = p % last_E + end if + ! Set the delayedgroup filter index and the number of delayed group bins dg_filter = t % find_filter(FILTER_DELAYEDGROUP) @@ -460,11 +476,11 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Compute the yield for this delayed group - yield = yield_delayed(nuc, p % E, d) + yield = yield_delayed(nuc, E, d) ! Compute the score and tally to bin score = p % absorb_wgt * yield * micro_xs(p % event_nuclide) & - % fission * nu_delayed(nuc, p % E) / & + % fission * nu_delayed(nuc, E) / & micro_xs(p % event_nuclide) % absorption call score_fission_delayed_dg(t, d_bin, score, score_index) end do @@ -474,7 +490,7 @@ contains ! by multiplying the absorbed weight by the fraction of the ! delayed-nu-fission xs to the absorption xs score = p % absorb_wgt * micro_xs(p % event_nuclide) & - % fission * nu_delayed(nuc, p % E) / & + % fission * nu_delayed(nuc, E) / & micro_xs(p % event_nuclide) % absorption end if end if @@ -528,11 +544,11 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Compute the yield for this delayed group - yield = yield_delayed(nuc, p % E, d) + yield = yield_delayed(nuc, E, d) ! Compute the score and tally to bin score = micro_xs(i_nuclide) % fission * yield & - * nu_delayed(nuc, p % E) * atom_density * flux + * nu_delayed(nuc, E) * atom_density * flux call score_fission_delayed_dg(t, d_bin, score, score_index) end do cycle SCORE_LOOP @@ -540,7 +556,7 @@ contains ! If the delayed group filter is not present, compute the score ! by multiplying the delayed-nu-fission macro xs by the flux - score = micro_xs(i_nuclide) % fission * nu_delayed(nuc, p % E)& + score = micro_xs(i_nuclide) % fission * nu_delayed(nuc, E)& * atom_density * flux end if @@ -572,11 +588,11 @@ contains nuc => nuclides(i_nuc) ! Get the yield for the desired nuclide and delayed group - yield = yield_delayed(nuc, p % E, d) + yield = yield_delayed(nuc, E, d) ! Compute the score and tally to bin score = micro_xs(i_nuc) % fission * yield & - * nu_delayed(nuc, p % E) * atom_density_ * flux + * nu_delayed(nuc, E) * atom_density_ * flux call score_fission_delayed_dg(t, d_bin, score, score_index) end do end do @@ -596,7 +612,7 @@ contains ! Accumulate the contribution from each nuclide score = score + micro_xs(i_nuc) % fission & - * nu_delayed(nuclides(i_nuc), p % E) * atom_density_ * flux + * nu_delayed(nuclides(i_nuc), E) * atom_density_ * flux end do end if end if From c16c43d8667efd6b10ea3ff949e4253d624107fe Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 10 Nov 2015 10:17:14 -0500 Subject: [PATCH 23/48] changed C_LIGHT back to m/s and changed velocity units in tally.F90 --- src/constants.F90 | 2 +- src/tally.F90 | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 1ca896c3f9..375c517e76 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -66,7 +66,7 @@ module constants MASS_NEUTRON_MEV = 939.565379_8, & ! mass of a neutron in MeV/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.99792458e10_8, & ! speed of light in cm/s + 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 INFINITY = huge(0.0_8), & ! positive infinity diff --git a/src/tally.F90 b/src/tally.F90 index 31bce232a0..a5d7f3f0de 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -148,12 +148,16 @@ contains else score = p % last_wgt end if + + ! 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) + / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0) else - ! For inverse velocity, we don't need a cross section - score = flux / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT) + ! 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) end if From 92e2a16b01568c61876d9c5b9b8142bdbb403d95 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 10 Nov 2015 11:50:17 -0500 Subject: [PATCH 24/48] fixed inverse velocity and delayed nu fission score tests --- src/tally.F90 | 4 +-- .../results_true.dat | 8 ++--- .../results_true.dat | 32 +++++++++---------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/tally.F90 b/src/tally.F90 index a5d7f3f0de..da4e828003 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -152,12 +152,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) + / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0_8) 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) + score = flux / (sqrt(TWO * E / (MASS_NEUTRON_MEV)) * C_LIGHT * 100.0_8) end if diff --git a/tests/test_score_delayed_nufission/results_true.dat b/tests/test_score_delayed_nufission/results_true.dat index d797baf18c..bc2b8e8a7f 100644 --- a/tests/test_score_delayed_nufission/results_true.dat +++ b/tests/test_score_delayed_nufission/results_true.dat @@ -19,11 +19,11 @@ tally 2: 1.976462E-02 1.953328E-04 tally 3: -1.687894E-02 -5.776176E-05 +1.686299E-02 +5.765477E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.061803E-02 -2.308636E-05 +1.061240E-02 +2.305936E-05 diff --git a/tests/test_score_inverse_velocity/results_true.dat b/tests/test_score_inverse_velocity/results_true.dat index f86a8beb5b..8f2f84cc62 100644 --- a/tests/test_score_inverse_velocity/results_true.dat +++ b/tests/test_score_inverse_velocity/results_true.dat @@ -10,20 +10,20 @@ tally 1: 6.354432E-04 8.370608E-08 tally 2: -1.048031E-03 -2.263789E-07 -4.276093E-04 -4.136358E-08 -2.667795E-03 -1.528407E-06 -6.199140E-04 -7.840402E-08 +1.029200E-03 +2.180706E-07 +4.353200E-04 +4.363747E-08 +2.211790E-03 +1.055892E-06 +6.086777E-04 +7.589579E-08 tally 3: -1.048031E-03 -2.263789E-07 -4.276093E-04 -4.136358E-08 -2.667795E-03 -1.528407E-06 -6.199140E-04 -7.840402E-08 +1.029200E-03 +2.180706E-07 +4.353200E-04 +4.363747E-08 +2.211790E-03 +1.055892E-06 +6.086777E-04 +7.589579E-08 From cfae3d2c2c81e11b98a827615cc6946d1c6b3278 Mon Sep 17 00:00:00 2001 From: Sam Shaner Date: Tue, 10 Nov 2015 13:50:42 -0500 Subject: [PATCH 25/48] fixed output of inverse velocity test --- .../results_true.dat | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/test_score_inverse_velocity/results_true.dat b/tests/test_score_inverse_velocity/results_true.dat index 8f2f84cc62..740d31f16b 100644 --- a/tests/test_score_inverse_velocity/results_true.dat +++ b/tests/test_score_inverse_velocity/results_true.dat @@ -1,29 +1,29 @@ k-combined: 9.903196E-01 4.279617E-02 tally 1: -1.049628E-03 -2.261930E-07 -4.056389E-04 -3.411247E-08 -2.243766E-03 -1.069671E-06 -6.354432E-04 -8.370608E-08 +1.049628E-05 +2.261930E-11 +4.056389E-06 +3.411247E-12 +2.243766E-05 +1.069671E-10 +6.354432E-06 +8.370608E-12 tally 2: -1.029200E-03 -2.180706E-07 -4.353200E-04 -4.363747E-08 -2.211790E-03 -1.055892E-06 -6.086777E-04 -7.589579E-08 +1.029200E-05 +2.180706E-11 +4.353200E-06 +4.363747E-12 +2.211790E-05 +1.055892E-10 +6.086777E-06 +7.589579E-12 tally 3: -1.029200E-03 -2.180706E-07 -4.353200E-04 -4.363747E-08 -2.211790E-03 -1.055892E-06 -6.086777E-04 -7.589579E-08 +1.029200E-05 +2.180706E-11 +4.353200E-06 +4.363747E-12 +2.211790E-05 +1.055892E-10 +6.086777E-06 +7.589579E-12 From 0df9aef3b9e21e436a06d3370512d4e78f68978c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 11 Nov 2015 09:26:04 -0500 Subject: [PATCH 26/48] Hotfix for group indices in MGXS Pandas DataFrames --- openmc/mgxs/mgxs.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 1296f195cc..4a5ca74035 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1234,13 +1234,11 @@ class MGXS(object): columns.append('group out') # Loop over all energy groups and override the bounds with indices - template = '({0:.1e} - {1:.1e})' - bins = self.energy_groups.group_edges + groups = np.arange(self.num_groups, 0, -1, dtype=np.int) + groups = np.repeat(groups, self.num_nuclides) + groups = np.tile(groups, self.num_subdomains) for column in columns: - for i in range(self.num_groups): - group = template.format(bins[i], bins[i+1]) - row_indices = df[column] == group - df.loc[row_indices, column] = self.num_groups - i + df[column] = groups # Select out those groups the user requested if groups != 'all': From 3ff40987c029066767fbae408959c559f6f60b03 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 11 Nov 2015 14:07:31 -0500 Subject: [PATCH 27/48] Refactored MGXS.get_pandas_dataframe(...) group indices for energyout filters --- openmc/mgxs/mgxs.py | 36 +- .../results_true.dat | 98 +- .../results_true.dat | 220 +- .../results_true.dat | 3312 ++++++++--------- tests/test_track_output/results_test.dat | 9 + 5 files changed, 1847 insertions(+), 1828 deletions(-) create mode 100644 tests/test_track_output/results_test.dat diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 4a5ca74035..96fb6e07ee 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1224,21 +1224,31 @@ class MGXS(object): else: df = df.drop('score', axis=1) - # Rename energy(out) columns - columns = [] - if 'energy [MeV]' in df: - df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) - columns.append('group in') - if 'energyout [MeV]' in df: - df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) - columns.append('group out') - - # Loop over all energy groups and override the bounds with indices + # Override energy groups bounds with indices groups = np.arange(self.num_groups, 0, -1, dtype=np.int) groups = np.repeat(groups, self.num_nuclides) - groups = np.tile(groups, self.num_subdomains) - for column in columns: - df[column] = groups + if 'energy [MeV]' in df and 'energyout [MeV]' in df: + df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + in_groups = np.tile(groups, self.num_subdomains) + in_groups = np.repeat(in_groups, self.num_groups) + df['group in'] = in_groups + + df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + out_groups = np.tile(groups, self.num_subdomains * self.num_groups) + df['group out'] = out_groups + columns = ['group in', 'group out'] + + elif 'energyout [MeV]' in df: + df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + in_groups = np.tile(groups, self.num_subdomains) + df['group out'] = in_groups + columns = ['group out'] + + elif 'energy [MeV]' in df: + df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + in_groups = np.tile(groups, self.num_subdomains) + df['group in'] = in_groups + columns = ['group in'] # Select out those groups the user requested if groups != 'all': diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 9549f16c86..45891fc300 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,49 +1,49 @@ - material group in nuclide mean std. dev. -0 1 1 total 0.419289 0.01638 material group in nuclide mean std. dev. -0 1 1 total 0.07774 0.003273 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.352665 0.015654 material group out nuclide mean std. dev. -0 1 1 total 1 0.119622 material group in nuclide mean std. dev. -0 2 1 total 0.247316 0.009562 material group in nuclide mean std. dev. -0 2 1 total 0 0 material group in group out nuclide mean std. dev. -0 2 1 1 total 0.244838 0.009996 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. -0 3 1 total 0.409938 0.042262 material group in nuclide mean std. dev. -0 3 1 total 0 0 material group in group out nuclide mean std. dev. -0 3 1 1 total 0.403354 0.041386 material group out nuclide mean std. dev. -0 3 1 total 0 0 material group in nuclide mean std. dev. -0 4 1 total 0.344007 0.05352 material group in nuclide mean std. dev. -0 4 1 total 0 0 material group in group out nuclide mean std. dev. -0 4 1 1 total 0.340438 0.052067 material group out nuclide mean std. dev. -0 4 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 5 1 total 0 0 material group in group out nuclide mean std. dev. -0 5 1 1 total 0 0 material group out nuclide mean std. dev. -0 5 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 6 1 total 0 0 material group in group out nuclide mean std. dev. -0 6 1 1 total 0 0 material group out nuclide mean std. dev. -0 6 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 7 1 total 0 0 material group in group out nuclide mean std. dev. -0 7 1 1 total 0 0 material group out nuclide mean std. dev. -0 7 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 8 1 total 0 0 material group in group out nuclide mean std. dev. -0 8 1 1 total 0 0 material group out nuclide mean std. dev. -0 8 1 total 0 0 material group in nuclide mean std. dev. -0 9 1 total 0.751873 0.559701 material group in nuclide mean std. dev. -0 9 1 total 0 0 material group in group out nuclide mean std. dev. -0 9 1 1 total 0.695491 0.50757 material group out nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. -0 10 1 total 0 0 material group in group out nuclide mean std. dev. -0 10 1 1 total 0 0 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. -0 11 1 total 0.457329 0.403578 material group in nuclide mean std. dev. -0 11 1 total 0 0 material group in group out nuclide mean std. dev. -0 11 1 1 total 0.446737 0.392775 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. -0 12 1 total 0.574978 0.38864 material group in nuclide mean std. dev. -0 12 1 total 0 0 material group in group out nuclide mean std. dev. -0 12 1 1 total 0.559478 0.377512 material group out nuclide mean std. dev. -0 12 1 total 0 0 \ No newline at end of file + material group in nuclide mean std. dev. +0 1 1 total 0.419289 0.01638 material group in nuclide mean std. dev. +0 1 1 total 0.07774 0.003273 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.352665 0.015654 material group out nuclide mean std. dev. +0 1 1 total 1 0.119622 material group in nuclide mean std. dev. +0 2 1 total 0.247316 0.009562 material group in nuclide mean std. dev. +0 2 1 total 0 0 material group in group out nuclide mean std. dev. +0 2 1 1 total 0.244838 0.009996 material group out nuclide mean std. dev. +0 2 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.409938 0.042262 material group in nuclide mean std. dev. +0 3 1 total 0 0 material group in group out nuclide mean std. dev. +0 3 1 1 total 0.403354 0.041386 material group out nuclide mean std. dev. +0 3 1 total 0 0 material group in nuclide mean std. dev. +0 4 1 total 0.344007 0.05352 material group in nuclide mean std. dev. +0 4 1 total 0 0 material group in group out nuclide mean std. dev. +0 4 1 1 total 0.340438 0.052067 material group out nuclide mean std. dev. +0 4 1 total 0 0 material group in nuclide mean std. dev. +0 5 1 total 0 0 material group in nuclide mean std. dev. +0 5 1 total 0 0 material group in group out nuclide mean std. dev. +0 5 1 1 total 0 0 material group out nuclide mean std. dev. +0 5 1 total 0 0 material group in nuclide mean std. dev. +0 6 1 total 0 0 material group in nuclide mean std. dev. +0 6 1 total 0 0 material group in group out nuclide mean std. dev. +0 6 1 1 total 0 0 material group out nuclide mean std. dev. +0 6 1 total 0 0 material group in nuclide mean std. dev. +0 7 1 total 0 0 material group in nuclide mean std. dev. +0 7 1 total 0 0 material group in group out nuclide mean std. dev. +0 7 1 1 total 0 0 material group out nuclide mean std. dev. +0 7 1 total 0 0 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in group out nuclide mean std. dev. +0 8 1 1 total 0 0 material group out nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.751873 0.559701 material group in nuclide mean std. dev. +0 9 1 total 0 0 material group in group out nuclide mean std. dev. +0 9 1 1 total 0.695491 0.50757 material group out nuclide mean std. dev. +0 9 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in group out nuclide mean std. dev. +0 10 1 1 total 0 0 material group out nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.457329 0.403578 material group in nuclide mean std. dev. +0 11 1 total 0 0 material group in group out nuclide mean std. dev. +0 11 1 1 total 0.446737 0.392775 material group out nuclide mean std. dev. +0 11 1 total 0 0 material group in nuclide mean std. dev. +0 12 1 total 0.574978 0.38864 material group in nuclide mean std. dev. +0 12 1 total 0 0 material group in group out nuclide mean std. dev. +0 12 1 1 total 0.559478 0.377512 material group out nuclide mean std. dev. +0 12 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index bbcb28375d..7618512689 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,121 +1,121 @@ - material group in nuclide mean std. dev. -1 1 1 total 0.384379 0.01649 -0 1 2 total 0.812087 0.07419 material group in nuclide mean std. dev. -1 1 1 total 0.02127 0.000894 -0 1 2 total 0.69604 0.053458 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.349924 0.016649 -2 1 1 2 total 0.000173 0.000173 -1 1 2 1 total 0.001948 0.001952 -0 1 2 2 total 0.379607 0.040078 material group out nuclide mean std. dev. -1 1 1 total 1 0.119622 -0 1 2 total 0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.245043 0.008827 -0 2 2 total 0.266458 0.052209 material group in nuclide mean std. dev. -1 2 1 total 0 0 -0 2 2 total 0 0 material group in group out nuclide mean std. dev. -3 2 1 1 total 0.243657 0.009083 -2 2 1 2 total 0.000000 0.000000 -1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.254787 0.055563 material group out nuclide mean std. dev. + material group in nuclide mean std. dev. +1 1 1 total 0.384379 0.01649 +0 1 2 total 0.812087 0.07419 material group in nuclide mean std. dev. +1 1 1 total 0.02127 0.000894 +0 1 2 total 0.69604 0.053458 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.349924 0.016649 +2 1 1 2 total 0.000173 0.000173 +1 1 2 1 total 0.001948 0.001952 +0 1 2 2 total 0.379607 0.040078 material group out nuclide mean std. dev. +1 1 1 total 1 0.119622 +0 1 2 total 0 0.000000 material group in nuclide mean std. dev. +1 2 1 total 0.245043 0.008827 +0 2 2 total 0.266458 0.052209 material group in nuclide mean std. dev. 1 2 1 total 0 0 -0 2 2 total 0 0 material group in nuclide mean std. dev. -1 3 1 total 0.282277 0.037242 -0 3 2 total 1.427320 0.247127 material group in nuclide mean std. dev. -1 3 1 total 0 0 -0 3 2 total 0 0 material group in group out nuclide mean std. dev. -3 3 1 1 total 0.253967 0.036173 -2 3 1 2 total 0.027273 0.001807 -1 3 2 1 total 0.000000 0.000000 -0 3 2 2 total 1.376527 0.240257 material group out nuclide mean std. dev. +0 2 2 total 0 0 material group in group out nuclide mean std. dev. +3 2 1 1 total 0.243657 0.009083 +2 2 1 2 total 0.000000 0.000000 +1 2 2 1 total 0.000000 0.000000 +0 2 2 2 total 0.254787 0.055563 material group out nuclide mean std. dev. +1 2 1 total 0 0 +0 2 2 total 0 0 material group in nuclide mean std. dev. +1 3 1 total 0.282277 0.037242 +0 3 2 total 1.427320 0.247127 material group in nuclide mean std. dev. 1 3 1 total 0 0 -0 3 2 total 0 0 material group in nuclide mean std. dev. -1 4 1 total 0.255723 0.051917 -0 4 2 total 1.179767 0.229380 material group in nuclide mean std. dev. -1 4 1 total 0 0 -0 4 2 total 0 0 material group in group out nuclide mean std. dev. -3 4 1 1 total 0.232978 0.049771 -2 4 1 2 total 0.022281 0.002625 -1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.146809 0.222198 material group out nuclide mean std. dev. +0 3 2 total 0 0 material group in group out nuclide mean std. dev. +3 3 1 1 total 0.253967 0.036173 +2 3 1 2 total 0.027273 0.001807 +1 3 2 1 total 0.000000 0.000000 +0 3 2 2 total 1.376527 0.240257 material group out nuclide mean std. dev. +1 3 1 total 0 0 +0 3 2 total 0 0 material group in nuclide mean std. dev. +1 4 1 total 0.255723 0.051917 +0 4 2 total 1.179767 0.229380 material group in nuclide mean std. dev. 1 4 1 total 0 0 -0 4 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 5 1 total 0 0 -0 5 2 total 0 0 material group in group out nuclide mean std. dev. -3 5 1 1 total 0 0 -2 5 1 2 total 0 0 -1 5 2 1 total 0 0 -0 5 2 2 total 0 0 material group out nuclide mean std. dev. +0 4 2 total 0 0 material group in group out nuclide mean std. dev. +3 4 1 1 total 0.232978 0.049771 +2 4 1 2 total 0.022281 0.002625 +1 4 2 1 total 0.000000 0.000000 +0 4 2 2 total 1.146809 0.222198 material group out nuclide mean std. dev. +1 4 1 total 0 0 +0 4 2 total 0 0 material group in nuclide mean std. dev. 1 5 1 total 0 0 -0 5 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 6 1 total 0 0 -0 6 2 total 0 0 material group in group out nuclide mean std. dev. -3 6 1 1 total 0 0 -2 6 1 2 total 0 0 -1 6 2 1 total 0 0 -0 6 2 2 total 0 0 material group out nuclide mean std. dev. +0 5 2 total 0 0 material group in nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in group out nuclide mean std. dev. +3 5 1 1 total 0 0 +2 5 1 2 total 0 0 +1 5 2 1 total 0 0 +0 5 2 2 total 0 0 material group out nuclide mean std. dev. +1 5 1 total 0 0 +0 5 2 total 0 0 material group in nuclide mean std. dev. 1 6 1 total 0 0 -0 6 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 7 1 total 0 0 -0 7 2 total 0 0 material group in group out nuclide mean std. dev. -3 7 1 1 total 0 0 -2 7 1 2 total 0 0 -1 7 2 1 total 0 0 -0 7 2 2 total 0 0 material group out nuclide mean std. dev. +0 6 2 total 0 0 material group in nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in group out nuclide mean std. dev. +3 6 1 1 total 0 0 +2 6 1 2 total 0 0 +1 6 2 1 total 0 0 +0 6 2 2 total 0 0 material group out nuclide mean std. dev. +1 6 1 total 0 0 +0 6 2 total 0 0 material group in nuclide mean std. dev. 1 7 1 total 0 0 -0 7 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. -1 8 1 total 0 0 -0 8 2 total 0 0 material group in group out nuclide mean std. dev. -3 8 1 1 total 0 0 -2 8 1 2 total 0 0 -1 8 2 1 total 0 0 -0 8 2 2 total 0 0 material group out nuclide mean std. dev. +0 7 2 total 0 0 material group in nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in group out nuclide mean std. dev. +3 7 1 1 total 0 0 +2 7 1 2 total 0 0 +1 7 2 1 total 0 0 +0 7 2 2 total 0 0 material group out nuclide mean std. dev. +1 7 1 total 0 0 +0 7 2 total 0 0 material group in nuclide mean std. dev. 1 8 1 total 0 0 -0 8 2 total 0 0 material group in nuclide mean std. dev. -1 9 1 total 0.504036 0.379624 -0 9 2 total 1.687095 2.536622 material group in nuclide mean std. dev. -1 9 1 total 0 0 -0 9 2 total 0 0 material group in group out nuclide mean std. dev. -3 9 1 1 total 0.504036 0.379624 -2 9 1 2 total 0.000000 0.000000 -1 9 2 1 total 0.000000 0.000000 -0 9 2 2 total 1.417955 2.158027 material group out nuclide mean std. dev. +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in group out nuclide mean std. dev. +3 8 1 1 total 0 0 +2 8 1 2 total 0 0 +1 8 2 1 total 0 0 +0 8 2 2 total 0 0 material group out nuclide mean std. dev. +1 8 1 total 0 0 +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.504036 0.379624 +0 9 2 total 1.687095 2.536622 material group in nuclide mean std. dev. 1 9 1 total 0 0 -0 9 2 total 0 0 material group in nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in nuclide mean std. dev. -1 10 1 total 0 0 -0 10 2 total 0 0 material group in group out nuclide mean std. dev. -3 10 1 1 total 0 0 -2 10 1 2 total 0 0 -1 10 2 1 total 0 0 -0 10 2 2 total 0 0 material group out nuclide mean std. dev. +0 9 2 total 0 0 material group in group out nuclide mean std. dev. +3 9 1 1 total 0.504036 0.379624 +2 9 1 2 total 0.000000 0.000000 +1 9 2 1 total 0.000000 0.000000 +0 9 2 2 total 1.417955 2.158027 material group out nuclide mean std. dev. +1 9 1 total 0 0 +0 9 2 total 0 0 material group in nuclide mean std. dev. 1 10 1 total 0 0 -0 10 2 total 0 0 material group in nuclide mean std. dev. -1 11 1 total 0.302826 0.401311 -0 11 2 total 1.006145 1.091638 material group in nuclide mean std. dev. -1 11 1 total 0 0 -0 11 2 total 0 0 material group in group out nuclide mean std. dev. -3 11 1 1 total 0.275679 0.385676 -2 11 1 2 total 0.027147 0.020009 -1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 0.957929 1.051959 material group out nuclide mean std. dev. +0 10 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0 0 +0 10 2 total 0 0 material group in group out nuclide mean std. dev. +3 10 1 1 total 0 0 +2 10 1 2 total 0 0 +1 10 2 1 total 0 0 +0 10 2 2 total 0 0 material group out nuclide mean std. dev. +1 10 1 total 0 0 +0 10 2 total 0 0 material group in nuclide mean std. dev. +1 11 1 total 0.302826 0.401311 +0 11 2 total 1.006145 1.091638 material group in nuclide mean std. dev. 1 11 1 total 0 0 -0 11 2 total 0 0 material group in nuclide mean std. dev. -1 12 1 total 0.255933 0.268426 -0 12 2 total 1.113345 0.988676 material group in nuclide mean std. dev. -1 12 1 total 0 0 -0 12 2 total 0 0 material group in group out nuclide mean std. dev. -3 12 1 1 total 0.226310 0.254872 -2 12 1 2 total 0.029622 0.017760 -1 12 2 1 total 0.000000 0.000000 -0 12 2 2 total 1.071690 0.958290 material group out nuclide mean std. dev. +0 11 2 total 0 0 material group in group out nuclide mean std. dev. +3 11 1 1 total 0.275679 0.385676 +2 11 1 2 total 0.027147 0.020009 +1 11 2 1 total 0.000000 0.000000 +0 11 2 2 total 0.957929 1.051959 material group out nuclide mean std. dev. +1 11 1 total 0 0 +0 11 2 total 0 0 material group in nuclide mean std. dev. +1 12 1 total 0.255933 0.268426 +0 12 2 total 1.113345 0.988676 material group in nuclide mean std. dev. 1 12 1 total 0 0 -0 12 2 total 0 0 \ No newline at end of file +0 12 2 total 0 0 material group in group out nuclide mean std. dev. +3 12 1 1 total 0.226310 0.254872 +2 12 1 2 total 0.029622 0.017760 +1 12 2 1 total 0.000000 0.000000 +0 12 2 2 total 1.071690 0.958290 material group out nuclide mean std. dev. +1 12 1 total 0 0 +0 12 2 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index f8e5baac55..23ac0e423d 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,384 +1,354 @@ - material group in nuclide mean std. dev. -34 1 1 U-234 0.000000 0.000000 -35 1 1 U-235 0.008559 0.001742 -36 1 1 U-236 0.002643 0.000794 -37 1 1 U-238 0.213622 0.010911 -38 1 1 Np-237 0.000000 0.000000 -39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.005787 0.001050 -41 1 1 Pu-240 0.005702 0.000850 -42 1 1 Pu-241 0.000869 0.000366 -43 1 1 Pu-242 0.000655 0.000537 -44 1 1 Am-241 0.000000 0.000000 -45 1 1 Am-242m 0.000000 0.000000 -46 1 1 Am-243 0.000000 0.000000 -47 1 1 Cm-242 0.000000 0.000000 -48 1 1 Cm-243 0.000000 0.000000 -49 1 1 Cm-244 0.000000 0.000000 -50 1 1 Cm-245 0.000000 0.000000 -51 1 1 Mo-95 0.000302 0.000216 -52 1 1 Tc-99 0.000782 0.000434 -53 1 1 Ru-101 0.000346 0.000212 -54 1 1 Ru-103 0.000000 0.000000 -55 1 1 Ag-109 0.000000 0.000000 -56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000189 0.000264 -58 1 1 Nd-143 0.000721 0.000364 -59 1 1 Nd-145 0.000637 0.000253 -60 1 1 Sm-147 0.000009 0.000238 -61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000003 0.000243 -63 1 1 Sm-151 0.000000 0.000000 -64 1 1 Sm-152 0.000874 0.000388 -65 1 1 Eu-153 0.000173 0.000173 -66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.142506 0.008222 -0 1 2 U-234 0.001948 0.001952 -1 1 2 U-235 0.179956 0.028209 -2 1 2 U-236 0.000000 0.000000 -3 1 2 U-238 0.239279 0.039048 -4 1 2 Np-237 0.000000 0.000000 -5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.159745 0.015751 -7 1 2 Pu-240 0.007792 0.003677 -8 1 2 Pu-241 0.017533 0.003806 -9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.000000 0.000000 -11 1 2 Am-242m 0.000000 0.000000 -12 1 2 Am-243 0.000000 0.000000 -13 1 2 Cm-242 0.000000 0.000000 -14 1 2 Cm-243 0.000000 0.000000 -15 1 2 Cm-244 0.000000 0.000000 -16 1 2 Cm-245 0.000000 0.000000 -17 1 2 Mo-95 0.002250 0.004232 -18 1 2 Tc-99 0.003544 0.002528 -19 1 2 Ru-101 0.000000 0.000000 -20 1 2 Ru-103 0.000000 0.000000 -21 1 2 Ag-109 0.000000 0.000000 -22 1 2 Xe-135 0.027274 0.004025 -23 1 2 Cs-133 0.000000 0.000000 -24 1 2 Nd-143 0.006532 0.002517 -25 1 2 Nd-145 0.001948 0.001952 -26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.007792 0.005701 -28 1 2 Sm-150 0.000000 0.000000 -29 1 2 Sm-151 0.000000 0.000000 -30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.001686 0.001968 -32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.154807 0.023798 material group in nuclide mean std. dev. -34 1 1 U-234 6.771527e-06 2.982583e-07 -35 1 1 U-235 9.687933e-03 4.305720e-04 -36 1 1 U-236 6.279974e-05 3.653120e-06 -37 1 1 U-238 6.335930e-03 4.715525e-04 -38 1 1 Np-237 1.237030e-05 6.333955e-07 -39 1 1 Pu-238 7.369063e-06 5.017525e-07 -40 1 1 Pu-239 4.007893e-03 2.607619e-04 -41 1 1 Pu-240 6.479096e-05 3.728060e-06 -42 1 1 Pu-241 1.074454e-03 4.688479e-05 -43 1 1 Pu-242 5.512610e-06 2.976651e-07 -44 1 1 Am-241 1.088373e-06 8.489934e-08 -45 1 1 Am-242m 1.143307e-06 9.912400e-08 -46 1 1 Am-243 7.745526e-07 5.413923e-08 -47 1 1 Cm-242 4.311566e-07 1.922427e-08 -48 1 1 Cm-243 2.363328e-07 2.235666e-08 -49 1 1 Cm-244 2.840125e-07 2.412051e-08 -50 1 1 Cm-245 3.017505e-07 1.594090e-08 -51 1 1 Mo-95 0.000000e+00 0.000000e+00 -52 1 1 Tc-99 0.000000e+00 0.000000e+00 -53 1 1 Ru-101 0.000000e+00 0.000000e+00 -54 1 1 Ru-103 0.000000e+00 0.000000e+00 -55 1 1 Ag-109 0.000000e+00 0.000000e+00 -56 1 1 Xe-135 0.000000e+00 0.000000e+00 -57 1 1 Cs-133 0.000000e+00 0.000000e+00 -58 1 1 Nd-143 0.000000e+00 0.000000e+00 -59 1 1 Nd-145 0.000000e+00 0.000000e+00 -60 1 1 Sm-147 0.000000e+00 0.000000e+00 -61 1 1 Sm-149 0.000000e+00 0.000000e+00 -62 1 1 Sm-150 0.000000e+00 0.000000e+00 -63 1 1 Sm-151 0.000000e+00 0.000000e+00 -64 1 1 Sm-152 0.000000e+00 0.000000e+00 -65 1 1 Eu-153 0.000000e+00 0.000000e+00 -66 1 1 Gd-155 0.000000e+00 0.000000e+00 -67 1 1 O-16 0.000000e+00 0.000000e+00 -0 1 2 U-234 4.267300e-07 3.529845e-08 -1 1 2 U-235 3.629246e-01 2.964548e-02 -2 1 2 U-236 5.921657e-06 4.881464e-07 -3 1 2 U-238 5.196256e-07 4.286610e-08 -4 1 2 Np-237 2.424211e-07 1.741823e-08 -5 1 2 Pu-238 3.255627e-05 2.692686e-06 -6 1 2 Pu-239 2.868384e-01 2.056896e-02 -7 1 2 Pu-240 4.398266e-06 3.658267e-07 -8 1 2 Pu-241 4.607239e-02 3.797176e-03 -9 1 2 Pu-242 8.451967e-08 6.979002e-09 -10 1 2 Am-241 4.678607e-06 3.253889e-07 -11 1 2 Am-242m 1.417675e-04 1.218350e-05 -12 1 2 Am-243 7.648834e-08 6.303843e-09 -13 1 2 Cm-242 9.433314e-07 7.794362e-08 -14 1 2 Cm-243 1.767995e-06 1.454123e-07 -15 1 2 Cm-244 1.533962e-07 1.266951e-08 -16 1 2 Cm-245 1.145063e-05 9.419051e-07 -17 1 2 Mo-95 0.000000e+00 0.000000e+00 -18 1 2 Tc-99 0.000000e+00 0.000000e+00 -19 1 2 Ru-101 0.000000e+00 0.000000e+00 -20 1 2 Ru-103 0.000000e+00 0.000000e+00 -21 1 2 Ag-109 0.000000e+00 0.000000e+00 -22 1 2 Xe-135 0.000000e+00 0.000000e+00 -23 1 2 Cs-133 0.000000e+00 0.000000e+00 -24 1 2 Nd-143 0.000000e+00 0.000000e+00 -25 1 2 Nd-145 0.000000e+00 0.000000e+00 -26 1 2 Sm-147 0.000000e+00 0.000000e+00 -27 1 2 Sm-149 0.000000e+00 0.000000e+00 -28 1 2 Sm-150 0.000000e+00 0.000000e+00 -29 1 2 Sm-151 0.000000e+00 0.000000e+00 -30 1 2 Sm-152 0.000000e+00 0.000000e+00 -31 1 2 Eu-153 0.000000e+00 0.000000e+00 -32 1 2 Gd-155 0.000000e+00 0.000000e+00 -33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. -102 1 1 1 U-234 0.000000 0.000000 -103 1 1 1 U-235 0.002846 0.001185 -104 1 1 1 U-236 0.001951 0.000829 -105 1 1 1 U-238 0.197520 0.011618 -106 1 1 1 Np-237 0.000000 0.000000 -107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001285 0.000461 -109 1 1 1 Pu-240 0.001027 0.000635 -110 1 1 1 Pu-241 0.000004 0.000242 -111 1 1 1 Pu-242 0.000481 0.000372 -112 1 1 1 Am-241 0.000000 0.000000 -113 1 1 1 Am-242m 0.000000 0.000000 -114 1 1 1 Am-243 0.000000 0.000000 -115 1 1 1 Cm-242 0.000000 0.000000 -116 1 1 1 Cm-243 0.000000 0.000000 -117 1 1 1 Cm-244 0.000000 0.000000 -118 1 1 1 Cm-245 0.000000 0.000000 -119 1 1 1 Mo-95 0.000302 0.000216 -120 1 1 1 Tc-99 0.000262 0.000195 -121 1 1 1 Ru-101 0.000000 0.000000 -122 1 1 1 Ru-103 0.000000 0.000000 -123 1 1 1 Ag-109 0.000000 0.000000 -124 1 1 1 Xe-135 0.000000 0.000000 -125 1 1 1 Cs-133 0.000016 0.000234 -126 1 1 1 Nd-143 0.000721 0.000364 -127 1 1 1 Nd-145 0.000463 0.000281 -128 1 1 1 Sm-147 0.000009 0.000238 -129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000003 0.000243 -131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000700 0.000424 -133 1 1 1 Eu-153 0.000000 0.000000 -134 1 1 1 Gd-155 0.000000 0.000000 -135 1 1 1 O-16 0.142333 0.008156 -68 1 1 2 U-234 0.000000 0.000000 -69 1 1 2 U-235 0.000000 0.000000 -70 1 1 2 U-236 0.000000 0.000000 -71 1 1 2 U-238 0.000000 0.000000 -72 1 1 2 Np-237 0.000000 0.000000 -73 1 1 2 Pu-238 0.000000 0.000000 -74 1 1 2 Pu-239 0.000000 0.000000 -75 1 1 2 Pu-240 0.000000 0.000000 -76 1 1 2 Pu-241 0.000000 0.000000 -77 1 1 2 Pu-242 0.000000 0.000000 -78 1 1 2 Am-241 0.000000 0.000000 -79 1 1 2 Am-242m 0.000000 0.000000 -80 1 1 2 Am-243 0.000000 0.000000 -81 1 1 2 Cm-242 0.000000 0.000000 -82 1 1 2 Cm-243 0.000000 0.000000 -83 1 1 2 Cm-244 0.000000 0.000000 -84 1 1 2 Cm-245 0.000000 0.000000 -85 1 1 2 Mo-95 0.000000 0.000000 -86 1 1 2 Tc-99 0.000000 0.000000 -87 1 1 2 Ru-101 0.000000 0.000000 -88 1 1 2 Ru-103 0.000000 0.000000 -89 1 1 2 Ag-109 0.000000 0.000000 -90 1 1 2 Xe-135 0.000000 0.000000 -91 1 1 2 Cs-133 0.000000 0.000000 -92 1 1 2 Nd-143 0.000000 0.000000 -93 1 1 2 Nd-145 0.000000 0.000000 -94 1 1 2 Sm-147 0.000000 0.000000 -95 1 1 2 Sm-149 0.000000 0.000000 -96 1 1 2 Sm-150 0.000000 0.000000 -97 1 1 2 Sm-151 0.000000 0.000000 -98 1 1 2 Sm-152 0.000000 0.000000 -99 1 1 2 Eu-153 0.000000 0.000000 -100 1 1 2 Gd-155 0.000000 0.000000 -101 1 1 2 O-16 0.000173 0.000173 -34 1 2 1 U-234 0.000000 0.000000 -35 1 2 1 U-235 0.000000 0.000000 -36 1 2 1 U-236 0.000000 0.000000 -37 1 2 1 U-238 0.000000 0.000000 -38 1 2 1 Np-237 0.000000 0.000000 -39 1 2 1 Pu-238 0.000000 0.000000 -40 1 2 1 Pu-239 0.000000 0.000000 -41 1 2 1 Pu-240 0.000000 0.000000 -42 1 2 1 Pu-241 0.000000 0.000000 -43 1 2 1 Pu-242 0.000000 0.000000 -44 1 2 1 Am-241 0.000000 0.000000 -45 1 2 1 Am-242m 0.000000 0.000000 -46 1 2 1 Am-243 0.000000 0.000000 -47 1 2 1 Cm-242 0.000000 0.000000 -48 1 2 1 Cm-243 0.000000 0.000000 -49 1 2 1 Cm-244 0.000000 0.000000 -50 1 2 1 Cm-245 0.000000 0.000000 -51 1 2 1 Mo-95 0.000000 0.000000 -52 1 2 1 Tc-99 0.000000 0.000000 -53 1 2 1 Ru-101 0.000000 0.000000 -54 1 2 1 Ru-103 0.000000 0.000000 -55 1 2 1 Ag-109 0.000000 0.000000 -56 1 2 1 Xe-135 0.000000 0.000000 -57 1 2 1 Cs-133 0.000000 0.000000 -58 1 2 1 Nd-143 0.000000 0.000000 -59 1 2 1 Nd-145 0.000000 0.000000 -60 1 2 1 Sm-147 0.000000 0.000000 -61 1 2 1 Sm-149 0.000000 0.000000 -62 1 2 1 Sm-150 0.000000 0.000000 -63 1 2 1 Sm-151 0.000000 0.000000 -64 1 2 1 Sm-152 0.000000 0.000000 -65 1 2 1 Eu-153 0.000000 0.000000 -66 1 2 1 Gd-155 0.000000 0.000000 -67 1 2 1 O-16 0.001948 0.001952 -0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.010470 0.006106 -2 1 2 2 U-236 0.000000 0.000000 -3 1 2 2 U-238 0.208109 0.039197 -4 1 2 2 Np-237 0.000000 0.000000 -5 1 2 2 Pu-238 0.000000 0.000000 -6 1 2 2 Pu-239 0.000000 0.000000 -7 1 2 2 Pu-240 0.000000 0.000000 -8 1 2 2 Pu-241 0.000000 0.000000 -9 1 2 2 Pu-242 0.000000 0.000000 -10 1 2 2 Am-241 0.000000 0.000000 -11 1 2 2 Am-242m 0.000000 0.000000 -12 1 2 2 Am-243 0.000000 0.000000 -13 1 2 2 Cm-242 0.000000 0.000000 -14 1 2 2 Cm-243 0.000000 0.000000 -15 1 2 2 Cm-244 0.000000 0.000000 -16 1 2 2 Cm-245 0.000000 0.000000 -17 1 2 2 Mo-95 0.000302 0.002551 -18 1 2 2 Tc-99 0.003544 0.002528 -19 1 2 2 Ru-101 0.000000 0.000000 -20 1 2 2 Ru-103 0.000000 0.000000 -21 1 2 2 Ag-109 0.000000 0.000000 -22 1 2 2 Xe-135 0.000000 0.000000 -23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.002636 0.002073 -25 1 2 2 Nd-145 0.000000 0.000000 -26 1 2 2 Sm-147 0.000000 0.000000 -27 1 2 2 Sm-149 0.000000 0.000000 -28 1 2 2 Sm-150 0.000000 0.000000 -29 1 2 2 Sm-151 0.000000 0.000000 -30 1 2 2 Sm-152 0.000000 0.000000 -31 1 2 2 Eu-153 0.001686 0.001968 -32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.152859 0.022894 material group out nuclide mean std. dev. -34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.127079 -36 1 1 U-236 0 0.000000 -37 1 1 U-238 1 0.153215 -38 1 1 Np-237 0 0.000000 -39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.150979 -41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.203534 -43 1 1 Pu-242 0 0.000000 -44 1 1 Am-241 0 0.000000 -45 1 1 Am-242m 0 0.000000 -46 1 1 Am-243 0 0.000000 -47 1 1 Cm-242 0 0.000000 -48 1 1 Cm-243 0 0.000000 -49 1 1 Cm-244 0 0.000000 -50 1 1 Cm-245 0 0.000000 -51 1 1 Mo-95 0 0.000000 -52 1 1 Tc-99 0 0.000000 -53 1 1 Ru-101 0 0.000000 -54 1 1 Ru-103 0 0.000000 -55 1 1 Ag-109 0 0.000000 -56 1 1 Xe-135 0 0.000000 -57 1 1 Cs-133 0 0.000000 -58 1 1 Nd-143 0 0.000000 -59 1 1 Nd-145 0 0.000000 -60 1 1 Sm-147 0 0.000000 -61 1 1 Sm-149 0 0.000000 -62 1 1 Sm-150 0 0.000000 -63 1 1 Sm-151 0 0.000000 -64 1 1 Sm-152 0 0.000000 -65 1 1 Eu-153 0 0.000000 -66 1 1 Gd-155 0 0.000000 -67 1 1 O-16 0 0.000000 -0 1 2 U-234 0 0.000000 -1 1 2 U-235 0 0.000000 -2 1 2 U-236 0 0.000000 -3 1 2 U-238 0 0.000000 -4 1 2 Np-237 0 0.000000 -5 1 2 Pu-238 0 0.000000 -6 1 2 Pu-239 0 0.000000 -7 1 2 Pu-240 0 0.000000 -8 1 2 Pu-241 0 0.000000 -9 1 2 Pu-242 0 0.000000 -10 1 2 Am-241 0 0.000000 -11 1 2 Am-242m 0 0.000000 -12 1 2 Am-243 0 0.000000 -13 1 2 Cm-242 0 0.000000 -14 1 2 Cm-243 0 0.000000 -15 1 2 Cm-244 0 0.000000 -16 1 2 Cm-245 0 0.000000 -17 1 2 Mo-95 0 0.000000 -18 1 2 Tc-99 0 0.000000 -19 1 2 Ru-101 0 0.000000 -20 1 2 Ru-103 0 0.000000 -21 1 2 Ag-109 0 0.000000 -22 1 2 Xe-135 0 0.000000 -23 1 2 Cs-133 0 0.000000 -24 1 2 Nd-143 0 0.000000 -25 1 2 Nd-145 0 0.000000 -26 1 2 Sm-147 0 0.000000 -27 1 2 Sm-149 0 0.000000 -28 1 2 Sm-150 0 0.000000 -29 1 2 Sm-151 0 0.000000 -30 1 2 Sm-152 0 0.000000 -31 1 2 Eu-153 0 0.000000 -32 1 2 Gd-155 0 0.000000 -33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0.118578 0.008347 -6 2 1 Zr-91 0.040887 0.002988 -7 2 1 Zr-92 0.033882 0.004365 -8 2 1 Zr-94 0.046281 0.005422 -9 2 1 Zr-96 0.005415 0.002113 -0 2 2 Zr-90 0.122479 0.032627 -1 2 2 Zr-91 0.035669 0.009683 -2 2 2 Zr-92 0.049331 0.021936 -3 2 2 Zr-94 0.058978 0.020081 -4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -5 2 1 Zr-90 0 0 -6 2 1 Zr-91 0 0 -7 2 1 Zr-92 0 0 -8 2 1 Zr-94 0 0 -9 2 1 Zr-96 0 0 -0 2 2 Zr-90 0 0 -1 2 2 Zr-91 0 0 -2 2 2 Zr-92 0 0 -3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -15 2 1 1 Zr-90 0.118578 0.008347 -16 2 1 1 Zr-91 0.039963 0.003053 -17 2 1 1 Zr-92 0.033882 0.004365 -18 2 1 1 Zr-94 0.046281 0.005422 -19 2 1 1 Zr-96 0.004953 0.002087 -10 2 1 2 Zr-90 0.000000 0.000000 -11 2 1 2 Zr-91 0.000000 0.000000 -12 2 1 2 Zr-92 0.000000 0.000000 -13 2 1 2 Zr-94 0.000000 0.000000 -14 2 1 2 Zr-96 0.000000 0.000000 -5 2 2 1 Zr-90 0.000000 0.000000 -6 2 2 1 Zr-91 0.000000 0.000000 -7 2 2 1 Zr-92 0.000000 0.000000 -8 2 2 1 Zr-94 0.000000 0.000000 -9 2 2 1 Zr-96 0.000000 0.000000 -0 2 2 2 Zr-90 0.122479 0.032627 -1 2 2 2 Zr-91 0.023998 0.011915 -2 2 2 2 Zr-92 0.049331 0.021936 -3 2 2 2 Zr-94 0.058978 0.020081 -4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. + material group in nuclide mean std. dev. +34 1 1 U-234 0.000000 0.000000 +35 1 1 U-235 0.008559 0.001742 +36 1 1 U-236 0.002643 0.000794 +37 1 1 U-238 0.213622 0.010911 +38 1 1 Np-237 0.000000 0.000000 +39 1 1 Pu-238 0.000000 0.000000 +40 1 1 Pu-239 0.005787 0.001050 +41 1 1 Pu-240 0.005702 0.000850 +42 1 1 Pu-241 0.000869 0.000366 +43 1 1 Pu-242 0.000655 0.000537 +44 1 1 Am-241 0.000000 0.000000 +45 1 1 Am-242m 0.000000 0.000000 +46 1 1 Am-243 0.000000 0.000000 +47 1 1 Cm-242 0.000000 0.000000 +48 1 1 Cm-243 0.000000 0.000000 +49 1 1 Cm-244 0.000000 0.000000 +50 1 1 Cm-245 0.000000 0.000000 +51 1 1 Mo-95 0.000302 0.000216 +52 1 1 Tc-99 0.000782 0.000434 +53 1 1 Ru-101 0.000346 0.000212 +54 1 1 Ru-103 0.000000 0.000000 +55 1 1 Ag-109 0.000000 0.000000 +56 1 1 Xe-135 0.000000 0.000000 +57 1 1 Cs-133 0.000189 0.000264 +58 1 1 Nd-143 0.000721 0.000364 +59 1 1 Nd-145 0.000637 0.000253 +60 1 1 Sm-147 0.000009 0.000238 +61 1 1 Sm-149 0.000000 0.000000 +62 1 1 Sm-150 0.000003 0.000243 +63 1 1 Sm-151 0.000000 0.000000 +64 1 1 Sm-152 0.000874 0.000388 +65 1 1 Eu-153 0.000173 0.000173 +66 1 1 Gd-155 0.000000 0.000000 +67 1 1 O-16 0.142506 0.008222 +0 1 2 U-234 0.001948 0.001952 +1 1 2 U-235 0.179956 0.028209 +2 1 2 U-236 0.000000 0.000000 +3 1 2 U-238 0.239279 0.039048 +4 1 2 Np-237 0.000000 0.000000 +5 1 2 Pu-238 0.000000 0.000000 +6 1 2 Pu-239 0.159745 0.015751 +7 1 2 Pu-240 0.007792 0.003677 +8 1 2 Pu-241 0.017533 0.003806 +9 1 2 Pu-242 0.000000 0.000000 +10 1 2 Am-241 0.000000 0.000000 +11 1 2 Am-242m 0.000000 0.000000 +12 1 2 Am-243 0.000000 0.000000 +13 1 2 Cm-242 0.000000 0.000000 +14 1 2 Cm-243 0.000000 0.000000 +15 1 2 Cm-244 0.000000 0.000000 +16 1 2 Cm-245 0.000000 0.000000 +17 1 2 Mo-95 0.002250 0.004232 +18 1 2 Tc-99 0.003544 0.002528 +19 1 2 Ru-101 0.000000 0.000000 +20 1 2 Ru-103 0.000000 0.000000 +21 1 2 Ag-109 0.000000 0.000000 +22 1 2 Xe-135 0.027274 0.004025 +23 1 2 Cs-133 0.000000 0.000000 +24 1 2 Nd-143 0.006532 0.002517 +25 1 2 Nd-145 0.001948 0.001952 +26 1 2 Sm-147 0.000000 0.000000 +27 1 2 Sm-149 0.007792 0.005701 +28 1 2 Sm-150 0.000000 0.000000 +29 1 2 Sm-151 0.000000 0.000000 +30 1 2 Sm-152 0.000000 0.000000 +31 1 2 Eu-153 0.001686 0.001968 +32 1 2 Gd-155 0.000000 0.000000 +33 1 2 O-16 0.154807 0.023798 material group in nuclide mean std. dev. +34 1 1 U-234 6.771527e-06 2.982583e-07 +35 1 1 U-235 9.687933e-03 4.305720e-04 +36 1 1 U-236 6.279974e-05 3.653120e-06 +37 1 1 U-238 6.335930e-03 4.715525e-04 +38 1 1 Np-237 1.237030e-05 6.333955e-07 +39 1 1 Pu-238 7.369063e-06 5.017525e-07 +40 1 1 Pu-239 4.007893e-03 2.607619e-04 +41 1 1 Pu-240 6.479096e-05 3.728060e-06 +42 1 1 Pu-241 1.074454e-03 4.688479e-05 +43 1 1 Pu-242 5.512610e-06 2.976651e-07 +44 1 1 Am-241 1.088373e-06 8.489934e-08 +45 1 1 Am-242m 1.143307e-06 9.912400e-08 +46 1 1 Am-243 7.745526e-07 5.413923e-08 +47 1 1 Cm-242 4.311566e-07 1.922427e-08 +48 1 1 Cm-243 2.363328e-07 2.235666e-08 +49 1 1 Cm-244 2.840125e-07 2.412051e-08 +50 1 1 Cm-245 3.017505e-07 1.594090e-08 +51 1 1 Mo-95 0.000000e+00 0.000000e+00 +52 1 1 Tc-99 0.000000e+00 0.000000e+00 +53 1 1 Ru-101 0.000000e+00 0.000000e+00 +54 1 1 Ru-103 0.000000e+00 0.000000e+00 +55 1 1 Ag-109 0.000000e+00 0.000000e+00 +56 1 1 Xe-135 0.000000e+00 0.000000e+00 +57 1 1 Cs-133 0.000000e+00 0.000000e+00 +58 1 1 Nd-143 0.000000e+00 0.000000e+00 +59 1 1 Nd-145 0.000000e+00 0.000000e+00 +60 1 1 Sm-147 0.000000e+00 0.000000e+00 +61 1 1 Sm-149 0.000000e+00 0.000000e+00 +62 1 1 Sm-150 0.000000e+00 0.000000e+00 +63 1 1 Sm-151 0.000000e+00 0.000000e+00 +64 1 1 Sm-152 0.000000e+00 0.000000e+00 +65 1 1 Eu-153 0.000000e+00 0.000000e+00 +66 1 1 Gd-155 0.000000e+00 0.000000e+00 +67 1 1 O-16 0.000000e+00 0.000000e+00 +0 1 2 U-234 4.267300e-07 3.529845e-08 +1 1 2 U-235 3.629246e-01 2.964548e-02 +2 1 2 U-236 5.921657e-06 4.881464e-07 +3 1 2 U-238 5.196256e-07 4.286610e-08 +4 1 2 Np-237 2.424211e-07 1.741823e-08 +5 1 2 Pu-238 3.255627e-05 2.692686e-06 +6 1 2 Pu-239 2.868384e-01 2.056896e-02 +7 1 2 Pu-240 4.398266e-06 3.658267e-07 +8 1 2 Pu-241 4.607239e-02 3.797176e-03 +9 1 2 Pu-242 8.451967e-08 6.979002e-09 +10 1 2 Am-241 4.678607e-06 3.253889e-07 +11 1 2 Am-242m 1.417675e-04 1.218350e-05 +12 1 2 Am-243 7.648834e-08 6.303843e-09 +13 1 2 Cm-242 9.433314e-07 7.794362e-08 +14 1 2 Cm-243 1.767995e-06 1.454123e-07 +15 1 2 Cm-244 1.533962e-07 1.266951e-08 +16 1 2 Cm-245 1.145063e-05 9.419051e-07 +17 1 2 Mo-95 0.000000e+00 0.000000e+00 +18 1 2 Tc-99 0.000000e+00 0.000000e+00 +19 1 2 Ru-101 0.000000e+00 0.000000e+00 +20 1 2 Ru-103 0.000000e+00 0.000000e+00 +21 1 2 Ag-109 0.000000e+00 0.000000e+00 +22 1 2 Xe-135 0.000000e+00 0.000000e+00 +23 1 2 Cs-133 0.000000e+00 0.000000e+00 +24 1 2 Nd-143 0.000000e+00 0.000000e+00 +25 1 2 Nd-145 0.000000e+00 0.000000e+00 +26 1 2 Sm-147 0.000000e+00 0.000000e+00 +27 1 2 Sm-149 0.000000e+00 0.000000e+00 +28 1 2 Sm-150 0.000000e+00 0.000000e+00 +29 1 2 Sm-151 0.000000e+00 0.000000e+00 +30 1 2 Sm-152 0.000000e+00 0.000000e+00 +31 1 2 Eu-153 0.000000e+00 0.000000e+00 +32 1 2 Gd-155 0.000000e+00 0.000000e+00 +33 1 2 O-16 0.000000e+00 0.000000e+00 material group in group out nuclide mean std. dev. +102 1 1 1 U-234 0.000000 0.000000 +103 1 1 1 U-235 0.002846 0.001185 +104 1 1 1 U-236 0.001951 0.000829 +105 1 1 1 U-238 0.197520 0.011618 +106 1 1 1 Np-237 0.000000 0.000000 +107 1 1 1 Pu-238 0.000000 0.000000 +108 1 1 1 Pu-239 0.001285 0.000461 +109 1 1 1 Pu-240 0.001027 0.000635 +110 1 1 1 Pu-241 0.000004 0.000242 +111 1 1 1 Pu-242 0.000481 0.000372 +112 1 1 1 Am-241 0.000000 0.000000 +113 1 1 1 Am-242m 0.000000 0.000000 +114 1 1 1 Am-243 0.000000 0.000000 +115 1 1 1 Cm-242 0.000000 0.000000 +116 1 1 1 Cm-243 0.000000 0.000000 +117 1 1 1 Cm-244 0.000000 0.000000 +118 1 1 1 Cm-245 0.000000 0.000000 +119 1 1 1 Mo-95 0.000302 0.000216 +120 1 1 1 Tc-99 0.000262 0.000195 +121 1 1 1 Ru-101 0.000000 0.000000 +122 1 1 1 Ru-103 0.000000 0.000000 +123 1 1 1 Ag-109 0.000000 0.000000 +124 1 1 1 Xe-135 0.000000 0.000000 +125 1 1 1 Cs-133 0.000016 0.000234 +126 1 1 1 Nd-143 0.000721 0.000364 +127 1 1 1 Nd-145 0.000463 0.000281 +128 1 1 1 Sm-147 0.000009 0.000238 +129 1 1 1 Sm-149 0.000000 0.000000 +130 1 1 1 Sm-150 0.000003 0.000243 +131 1 1 1 Sm-151 0.000000 0.000000 +132 1 1 1 Sm-152 0.000700 0.000424 +133 1 1 1 Eu-153 0.000000 0.000000 +134 1 1 1 Gd-155 0.000000 0.000000 +135 1 1 1 O-16 0.142333 0.008156 +68 1 1 2 U-234 0.000000 0.000000 +69 1 1 2 U-235 0.000000 0.000000 +70 1 1 2 U-236 0.000000 0.000000 +71 1 1 2 U-238 0.000000 0.000000 +72 1 1 2 Np-237 0.000000 0.000000 +73 1 1 2 Pu-238 0.000000 0.000000 +74 1 1 2 Pu-239 0.000000 0.000000 +75 1 1 2 Pu-240 0.000000 0.000000 +76 1 1 2 Pu-241 0.000000 0.000000 +77 1 1 2 Pu-242 0.000000 0.000000 +78 1 1 2 Am-241 0.000000 0.000000 +79 1 1 2 Am-242m 0.000000 0.000000 +80 1 1 2 Am-243 0.000000 0.000000 +81 1 1 2 Cm-242 0.000000 0.000000 +82 1 1 2 Cm-243 0.000000 0.000000 +83 1 1 2 Cm-244 0.000000 0.000000 +84 1 1 2 Cm-245 0.000000 0.000000 +85 1 1 2 Mo-95 0.000000 0.000000 +86 1 1 2 Tc-99 0.000000 0.000000 +87 1 1 2 Ru-101 0.000000 0.000000 +88 1 1 2 Ru-103 0.000000 0.000000 +89 1 1 2 Ag-109 0.000000 0.000000 +90 1 1 2 Xe-135 0.000000 0.000000 +91 1 1 2 Cs-133 0.000000 0.000000 +92 1 1 2 Nd-143 0.000000 0.000000 +93 1 1 2 Nd-145 0.000000 0.000000 +94 1 1 2 Sm-147 0.000000 0.000000 +95 1 1 2 Sm-149 0.000000 0.000000 +96 1 1 2 Sm-150 0.000000 0.000000 +97 1 1 2 Sm-151 0.000000 0.000000 +98 1 1 2 Sm-152 0.000000 0.000000 +99 1 1 2 Eu-153 0.000000 0.000000 +100 1 1 2 Gd-155 0.000000 0.000000 +101 1 1 2 O-16 0.000173 0.000173 +34 1 2 1 U-234 0.000000 0.000000 +35 1 2 1 U-235 0.000000 0.000000 +36 1 2 1 U-236 0.000000 0.000000 +37 1 2 1 U-238 0.000000 0.000000 +38 1 2 1 Np-237 0.000000 0.000000 +39 1 2 1 Pu-238 0.000000 0.000000 +40 1 2 1 Pu-239 0.000000 0.000000 +41 1 2 1 Pu-240 0.000000 0.000000 +42 1 2 1 Pu-241 0.000000 0.000000 +43 1 2 1 Pu-242 0.000000 0.000000 +44 1 2 1 Am-241 0.000000 0.000000 +45 1 2 1 Am-242m 0.000000 0.000000 +46 1 2 1 Am-243 0.000000 0.000000 +47 1 2 1 Cm-242 0.000000 0.000000 +48 1 2 1 Cm-243 0.000000 0.000000 +49 1 2 1 Cm-244 0.000000 0.000000 +50 1 2 1 Cm-245 0.000000 0.000000 +51 1 2 1 Mo-95 0.000000 0.000000 +52 1 2 1 Tc-99 0.000000 0.000000 +53 1 2 1 Ru-101 0.000000 0.000000 +54 1 2 1 Ru-103 0.000000 0.000000 +55 1 2 1 Ag-109 0.000000 0.000000 +56 1 2 1 Xe-135 0.000000 0.000000 +57 1 2 1 Cs-133 0.000000 0.000000 +58 1 2 1 Nd-143 0.000000 0.000000 +59 1 2 1 Nd-145 0.000000 0.000000 +60 1 2 1 Sm-147 0.000000 0.000000 +61 1 2 1 Sm-149 0.000000 0.000000 +62 1 2 1 Sm-150 0.000000 0.000000 +63 1 2 1 Sm-151 0.000000 0.000000 +64 1 2 1 Sm-152 0.000000 0.000000 +65 1 2 1 Eu-153 0.000000 0.000000 +66 1 2 1 Gd-155 0.000000 0.000000 +67 1 2 1 O-16 0.001948 0.001952 +0 1 2 2 U-234 0.000000 0.000000 +1 1 2 2 U-235 0.010470 0.006106 +2 1 2 2 U-236 0.000000 0.000000 +3 1 2 2 U-238 0.208109 0.039197 +4 1 2 2 Np-237 0.000000 0.000000 +5 1 2 2 Pu-238 0.000000 0.000000 +6 1 2 2 Pu-239 0.000000 0.000000 +7 1 2 2 Pu-240 0.000000 0.000000 +8 1 2 2 Pu-241 0.000000 0.000000 +9 1 2 2 Pu-242 0.000000 0.000000 +10 1 2 2 Am-241 0.000000 0.000000 +11 1 2 2 Am-242m 0.000000 0.000000 +12 1 2 2 Am-243 0.000000 0.000000 +13 1 2 2 Cm-242 0.000000 0.000000 +14 1 2 2 Cm-243 0.000000 0.000000 +15 1 2 2 Cm-244 0.000000 0.000000 +16 1 2 2 Cm-245 0.000000 0.000000 +17 1 2 2 Mo-95 0.000302 0.002551 +18 1 2 2 Tc-99 0.003544 0.002528 +19 1 2 2 Ru-101 0.000000 0.000000 +20 1 2 2 Ru-103 0.000000 0.000000 +21 1 2 2 Ag-109 0.000000 0.000000 +22 1 2 2 Xe-135 0.000000 0.000000 +23 1 2 2 Cs-133 0.000000 0.000000 +24 1 2 2 Nd-143 0.002636 0.002073 +25 1 2 2 Nd-145 0.000000 0.000000 +26 1 2 2 Sm-147 0.000000 0.000000 +27 1 2 2 Sm-149 0.000000 0.000000 +28 1 2 2 Sm-150 0.000000 0.000000 +29 1 2 2 Sm-151 0.000000 0.000000 +30 1 2 2 Sm-152 0.000000 0.000000 +31 1 2 2 Eu-153 0.001686 0.001968 +32 1 2 2 Gd-155 0.000000 0.000000 +33 1 2 2 O-16 0.152859 0.022894 material group out nuclide mean std. dev. +34 1 1 U-234 0 0.000000 +35 1 1 U-235 1 0.127079 +36 1 1 U-236 0 0.000000 +37 1 1 U-238 1 0.153215 +38 1 1 Np-237 0 0.000000 +39 1 1 Pu-238 0 0.000000 +40 1 1 Pu-239 1 0.150979 +41 1 1 Pu-240 0 0.000000 +42 1 1 Pu-241 1 0.203534 +43 1 1 Pu-242 0 0.000000 +44 1 1 Am-241 0 0.000000 +45 1 1 Am-242m 0 0.000000 +46 1 1 Am-243 0 0.000000 +47 1 1 Cm-242 0 0.000000 +48 1 1 Cm-243 0 0.000000 +49 1 1 Cm-244 0 0.000000 +50 1 1 Cm-245 0 0.000000 +51 1 1 Mo-95 0 0.000000 +52 1 1 Tc-99 0 0.000000 +53 1 1 Ru-101 0 0.000000 +54 1 1 Ru-103 0 0.000000 +55 1 1 Ag-109 0 0.000000 +56 1 1 Xe-135 0 0.000000 +57 1 1 Cs-133 0 0.000000 +58 1 1 Nd-143 0 0.000000 +59 1 1 Nd-145 0 0.000000 +60 1 1 Sm-147 0 0.000000 +61 1 1 Sm-149 0 0.000000 +62 1 1 Sm-150 0 0.000000 +63 1 1 Sm-151 0 0.000000 +64 1 1 Sm-152 0 0.000000 +65 1 1 Eu-153 0 0.000000 +66 1 1 Gd-155 0 0.000000 +67 1 1 O-16 0 0.000000 +0 1 2 U-234 0 0.000000 +1 1 2 U-235 0 0.000000 +2 1 2 U-236 0 0.000000 +3 1 2 U-238 0 0.000000 +4 1 2 Np-237 0 0.000000 +5 1 2 Pu-238 0 0.000000 +6 1 2 Pu-239 0 0.000000 +7 1 2 Pu-240 0 0.000000 +8 1 2 Pu-241 0 0.000000 +9 1 2 Pu-242 0 0.000000 +10 1 2 Am-241 0 0.000000 +11 1 2 Am-242m 0 0.000000 +12 1 2 Am-243 0 0.000000 +13 1 2 Cm-242 0 0.000000 +14 1 2 Cm-243 0 0.000000 +15 1 2 Cm-244 0 0.000000 +16 1 2 Cm-245 0 0.000000 +17 1 2 Mo-95 0 0.000000 +18 1 2 Tc-99 0 0.000000 +19 1 2 Ru-101 0 0.000000 +20 1 2 Ru-103 0 0.000000 +21 1 2 Ag-109 0 0.000000 +22 1 2 Xe-135 0 0.000000 +23 1 2 Cs-133 0 0.000000 +24 1 2 Nd-143 0 0.000000 +25 1 2 Nd-145 0 0.000000 +26 1 2 Sm-147 0 0.000000 +27 1 2 Sm-149 0 0.000000 +28 1 2 Sm-150 0 0.000000 +29 1 2 Sm-151 0 0.000000 +30 1 2 Sm-152 0 0.000000 +31 1 2 Eu-153 0 0.000000 +32 1 2 Gd-155 0 0.000000 +33 1 2 O-16 0 0.000000 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.118578 0.008347 +6 2 1 Zr-91 0.040887 0.002988 +7 2 1 Zr-92 0.033882 0.004365 +8 2 1 Zr-94 0.046281 0.005422 +9 2 1 Zr-96 0.005415 0.002113 +0 2 2 Zr-90 0.122479 0.032627 +1 2 2 Zr-91 0.035669 0.009683 +2 2 2 Zr-92 0.049331 0.021936 +3 2 2 Zr-94 0.058978 0.020081 +4 2 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 5 2 1 Zr-90 0 0 6 2 1 Zr-91 0 0 7 2 1 Zr-92 0 0 @@ -388,39 +358,45 @@ 1 2 2 Zr-91 0 0 2 2 2 Zr-92 0 0 3 2 2 Zr-94 0 0 -4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. -4 3 1 H-1 0.206179 0.034791 -5 3 1 O-16 0.075190 0.004750 -6 3 1 B-10 0.000741 0.000470 -7 3 1 B-11 0.000167 0.000208 -0 3 2 H-1 1.323003 0.239067 -1 3 2 O-16 0.071243 0.013291 -2 3 2 B-10 0.033075 0.004283 -3 3 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 3 1 H-1 0 0 -5 3 1 O-16 0 0 -6 3 1 B-10 0 0 -7 3 1 B-11 0 0 -0 3 2 H-1 0 0 -1 3 2 O-16 0 0 -2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 3 1 1 H-1 0.178758 0.033618 -13 3 1 1 O-16 0.075042 0.004782 -14 3 1 1 B-10 0.000000 0.000000 -15 3 1 1 B-11 0.000167 0.000208 -8 3 1 2 H-1 0.027124 0.001806 -9 3 1 2 O-16 0.000148 0.000148 -10 3 1 2 B-10 0.000000 0.000000 -11 3 1 2 B-11 0.000000 0.000000 -4 3 2 1 H-1 0.000000 0.000000 -5 3 2 1 O-16 0.000000 0.000000 -6 3 2 1 B-10 0.000000 0.000000 -7 3 2 1 B-11 0.000000 0.000000 -0 3 2 2 H-1 1.305284 0.235145 -1 3 2 2 O-16 0.071243 0.013291 -2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. +4 2 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +15 2 1 1 Zr-90 0.118578 0.008347 +16 2 1 1 Zr-91 0.039963 0.003053 +17 2 1 1 Zr-92 0.033882 0.004365 +18 2 1 1 Zr-94 0.046281 0.005422 +19 2 1 1 Zr-96 0.004953 0.002087 +10 2 1 2 Zr-90 0.000000 0.000000 +11 2 1 2 Zr-91 0.000000 0.000000 +12 2 1 2 Zr-92 0.000000 0.000000 +13 2 1 2 Zr-94 0.000000 0.000000 +14 2 1 2 Zr-96 0.000000 0.000000 +5 2 2 1 Zr-90 0.000000 0.000000 +6 2 2 1 Zr-91 0.000000 0.000000 +7 2 2 1 Zr-92 0.000000 0.000000 +8 2 2 1 Zr-94 0.000000 0.000000 +9 2 2 1 Zr-96 0.000000 0.000000 +0 2 2 2 Zr-90 0.122479 0.032627 +1 2 2 2 Zr-91 0.023998 0.011915 +2 2 2 2 Zr-92 0.049331 0.021936 +3 2 2 2 Zr-94 0.058978 0.020081 +4 2 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +5 2 1 Zr-90 0 0 +6 2 1 Zr-91 0 0 +7 2 1 Zr-92 0 0 +8 2 1 Zr-94 0 0 +9 2 1 Zr-96 0 0 +0 2 2 Zr-90 0 0 +1 2 2 Zr-91 0 0 +2 2 2 Zr-92 0 0 +3 2 2 Zr-94 0 0 +4 2 2 Zr-96 0 0 material group in nuclide mean std. dev. +4 3 1 H-1 0.206179 0.034791 +5 3 1 O-16 0.075190 0.004750 +6 3 1 B-10 0.000741 0.000470 +7 3 1 B-11 0.000167 0.000208 +0 3 2 H-1 1.323003 0.239067 +1 3 2 O-16 0.071243 0.013291 +2 3 2 B-10 0.033075 0.004283 +3 3 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. 4 3 1 H-1 0 0 5 3 1 O-16 0 0 6 3 1 B-10 0 0 @@ -428,39 +404,39 @@ 0 3 2 H-1 0 0 1 3 2 O-16 0 0 2 3 2 B-10 0 0 -3 3 2 B-11 0 0 material group in nuclide mean std. dev. -4 4 1 H-1 0.188813 0.045599 -5 4 1 O-16 0.066636 0.008217 -6 4 1 B-10 0.000232 0.000233 -7 4 1 B-11 0.000042 0.000300 -0 4 2 H-1 1.088920 0.221595 -1 4 2 O-16 0.064481 0.014318 -2 4 2 B-10 0.026367 0.010478 -3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. -4 4 1 H-1 0 0 -5 4 1 O-16 0 0 -6 4 1 B-10 0 0 -7 4 1 B-11 0 0 -0 4 2 H-1 0 0 -1 4 2 O-16 0 0 -2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in group out nuclide mean std. dev. -12 4 1 1 H-1 0.166764 0.043861 -13 4 1 1 O-16 0.066172 0.007943 -14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000042 0.000300 -8 4 1 2 H-1 0.021817 0.002327 -9 4 1 2 O-16 0.000464 0.000466 -10 4 1 2 B-10 0.000000 0.000000 -11 4 1 2 B-11 0.000000 0.000000 -4 4 2 1 H-1 0.000000 0.000000 -5 4 2 1 O-16 0.000000 0.000000 -6 4 2 1 B-10 0.000000 0.000000 -7 4 2 1 B-11 0.000000 0.000000 -0 4 2 2 H-1 1.082328 0.222438 -1 4 2 2 O-16 0.064481 0.014318 -2 4 2 2 B-10 0.000000 0.000000 -3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. +3 3 2 B-11 0 0 material group in group out nuclide mean std. dev. +12 3 1 1 H-1 0.178758 0.033618 +13 3 1 1 O-16 0.075042 0.004782 +14 3 1 1 B-10 0.000000 0.000000 +15 3 1 1 B-11 0.000167 0.000208 +8 3 1 2 H-1 0.027124 0.001806 +9 3 1 2 O-16 0.000148 0.000148 +10 3 1 2 B-10 0.000000 0.000000 +11 3 1 2 B-11 0.000000 0.000000 +4 3 2 1 H-1 0.000000 0.000000 +5 3 2 1 O-16 0.000000 0.000000 +6 3 2 1 B-10 0.000000 0.000000 +7 3 2 1 B-11 0.000000 0.000000 +0 3 2 2 H-1 1.305284 0.235145 +1 3 2 2 O-16 0.071243 0.013291 +2 3 2 2 B-10 0.000000 0.000000 +3 3 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. +4 3 1 H-1 0 0 +5 3 1 O-16 0 0 +6 3 1 B-10 0 0 +7 3 1 B-11 0 0 +0 3 2 H-1 0 0 +1 3 2 O-16 0 0 +2 3 2 B-10 0 0 +3 3 2 B-11 0 0 material group in nuclide mean std. dev. +4 4 1 H-1 0.188813 0.045599 +5 4 1 O-16 0.066636 0.008217 +6 4 1 B-10 0.000232 0.000233 +7 4 1 B-11 0.000042 0.000300 +0 4 2 H-1 1.088920 0.221595 +1 4 2 O-16 0.064481 0.014318 +2 4 2 B-10 0.026367 0.010478 +3 4 2 B-11 0.000000 0.000000 material group in nuclide mean std. dev. 4 4 1 H-1 0 0 5 4 1 O-16 0 0 6 4 1 B-10 0 0 @@ -468,223 +444,31 @@ 0 4 2 H-1 0 0 1 4 2 O-16 0 0 2 4 2 B-10 0 0 -3 4 2 B-11 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -27 5 1 Fe-54 0 0 -28 5 1 Fe-56 0 0 -29 5 1 Fe-57 0 0 -30 5 1 Fe-58 0 0 -31 5 1 Ni-58 0 0 -32 5 1 Ni-60 0 0 -33 5 1 Ni-61 0 0 -34 5 1 Ni-62 0 0 -35 5 1 Ni-64 0 0 -36 5 1 Mn-55 0 0 -37 5 1 Mo-92 0 0 -38 5 1 Mo-94 0 0 -39 5 1 Mo-95 0 0 -40 5 1 Mo-96 0 0 -41 5 1 Mo-97 0 0 -42 5 1 Mo-98 0 0 -43 5 1 Mo-100 0 0 -44 5 1 Si-28 0 0 -45 5 1 Si-29 0 0 -46 5 1 Si-30 0 0 -47 5 1 Cr-50 0 0 -48 5 1 Cr-52 0 0 -49 5 1 Cr-53 0 0 -50 5 1 Cr-54 0 0 -51 5 1 C-Nat 0 0 -52 5 1 Cu-63 0 0 -53 5 1 Cu-65 0 0 -0 5 2 Fe-54 0 0 -1 5 2 Fe-56 0 0 -2 5 2 Fe-57 0 0 -3 5 2 Fe-58 0 0 -4 5 2 Ni-58 0 0 -5 5 2 Ni-60 0 0 -6 5 2 Ni-61 0 0 -7 5 2 Ni-62 0 0 -8 5 2 Ni-64 0 0 -9 5 2 Mn-55 0 0 -10 5 2 Mo-92 0 0 -11 5 2 Mo-94 0 0 -12 5 2 Mo-95 0 0 -13 5 2 Mo-96 0 0 -14 5 2 Mo-97 0 0 -15 5 2 Mo-98 0 0 -16 5 2 Mo-100 0 0 -17 5 2 Si-28 0 0 -18 5 2 Si-29 0 0 -19 5 2 Si-30 0 0 -20 5 2 Cr-50 0 0 -21 5 2 Cr-52 0 0 -22 5 2 Cr-53 0 0 -23 5 2 Cr-54 0 0 -24 5 2 C-Nat 0 0 -25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in group out nuclide mean std. dev. -81 5 1 1 Fe-54 0 0 -82 5 1 1 Fe-56 0 0 -83 5 1 1 Fe-57 0 0 -84 5 1 1 Fe-58 0 0 -85 5 1 1 Ni-58 0 0 -86 5 1 1 Ni-60 0 0 -87 5 1 1 Ni-61 0 0 -88 5 1 1 Ni-62 0 0 -89 5 1 1 Ni-64 0 0 -90 5 1 1 Mn-55 0 0 -91 5 1 1 Mo-92 0 0 -92 5 1 1 Mo-94 0 0 -93 5 1 1 Mo-95 0 0 -94 5 1 1 Mo-96 0 0 -95 5 1 1 Mo-97 0 0 -96 5 1 1 Mo-98 0 0 -97 5 1 1 Mo-100 0 0 -98 5 1 1 Si-28 0 0 -99 5 1 1 Si-29 0 0 -100 5 1 1 Si-30 0 0 -101 5 1 1 Cr-50 0 0 -102 5 1 1 Cr-52 0 0 -103 5 1 1 Cr-53 0 0 -104 5 1 1 Cr-54 0 0 -105 5 1 1 C-Nat 0 0 -106 5 1 1 Cu-63 0 0 -107 5 1 1 Cu-65 0 0 -54 5 1 2 Fe-54 0 0 -55 5 1 2 Fe-56 0 0 -56 5 1 2 Fe-57 0 0 -57 5 1 2 Fe-58 0 0 -58 5 1 2 Ni-58 0 0 -59 5 1 2 Ni-60 0 0 -60 5 1 2 Ni-61 0 0 -61 5 1 2 Ni-62 0 0 -62 5 1 2 Ni-64 0 0 -63 5 1 2 Mn-55 0 0 -64 5 1 2 Mo-92 0 0 -65 5 1 2 Mo-94 0 0 -66 5 1 2 Mo-95 0 0 -67 5 1 2 Mo-96 0 0 -68 5 1 2 Mo-97 0 0 -69 5 1 2 Mo-98 0 0 -70 5 1 2 Mo-100 0 0 -71 5 1 2 Si-28 0 0 -72 5 1 2 Si-29 0 0 -73 5 1 2 Si-30 0 0 -74 5 1 2 Cr-50 0 0 -75 5 1 2 Cr-52 0 0 -76 5 1 2 Cr-53 0 0 -77 5 1 2 Cr-54 0 0 -78 5 1 2 C-Nat 0 0 -79 5 1 2 Cu-63 0 0 -80 5 1 2 Cu-65 0 0 -27 5 2 1 Fe-54 0 0 -28 5 2 1 Fe-56 0 0 -29 5 2 1 Fe-57 0 0 -30 5 2 1 Fe-58 0 0 -31 5 2 1 Ni-58 0 0 -32 5 2 1 Ni-60 0 0 -33 5 2 1 Ni-61 0 0 -34 5 2 1 Ni-62 0 0 -35 5 2 1 Ni-64 0 0 -36 5 2 1 Mn-55 0 0 -37 5 2 1 Mo-92 0 0 -38 5 2 1 Mo-94 0 0 -39 5 2 1 Mo-95 0 0 -40 5 2 1 Mo-96 0 0 -41 5 2 1 Mo-97 0 0 -42 5 2 1 Mo-98 0 0 -43 5 2 1 Mo-100 0 0 -44 5 2 1 Si-28 0 0 -45 5 2 1 Si-29 0 0 -46 5 2 1 Si-30 0 0 -47 5 2 1 Cr-50 0 0 -48 5 2 1 Cr-52 0 0 -49 5 2 1 Cr-53 0 0 -50 5 2 1 Cr-54 0 0 -51 5 2 1 C-Nat 0 0 -52 5 2 1 Cu-63 0 0 -53 5 2 1 Cu-65 0 0 -0 5 2 2 Fe-54 0 0 -1 5 2 2 Fe-56 0 0 -2 5 2 2 Fe-57 0 0 -3 5 2 2 Fe-58 0 0 -4 5 2 2 Ni-58 0 0 -5 5 2 2 Ni-60 0 0 -6 5 2 2 Ni-61 0 0 -7 5 2 2 Ni-62 0 0 -8 5 2 2 Ni-64 0 0 -9 5 2 2 Mn-55 0 0 -10 5 2 2 Mo-92 0 0 -11 5 2 2 Mo-94 0 0 -12 5 2 2 Mo-95 0 0 -13 5 2 2 Mo-96 0 0 -14 5 2 2 Mo-97 0 0 -15 5 2 2 Mo-98 0 0 -16 5 2 2 Mo-100 0 0 -17 5 2 2 Si-28 0 0 -18 5 2 2 Si-29 0 0 -19 5 2 2 Si-30 0 0 -20 5 2 2 Cr-50 0 0 -21 5 2 2 Cr-52 0 0 -22 5 2 2 Cr-53 0 0 -23 5 2 2 Cr-54 0 0 -24 5 2 2 C-Nat 0 0 -25 5 2 2 Cu-63 0 0 -26 5 2 2 Cu-65 0 0 material group out nuclide mean std. dev. +3 4 2 B-11 0 0 material group in group out nuclide mean std. dev. +12 4 1 1 H-1 0.166764 0.043861 +13 4 1 1 O-16 0.066172 0.007943 +14 4 1 1 B-10 0.000000 0.000000 +15 4 1 1 B-11 0.000042 0.000300 +8 4 1 2 H-1 0.021817 0.002327 +9 4 1 2 O-16 0.000464 0.000466 +10 4 1 2 B-10 0.000000 0.000000 +11 4 1 2 B-11 0.000000 0.000000 +4 4 2 1 H-1 0.000000 0.000000 +5 4 2 1 O-16 0.000000 0.000000 +6 4 2 1 B-10 0.000000 0.000000 +7 4 2 1 B-11 0.000000 0.000000 +0 4 2 2 H-1 1.082328 0.222438 +1 4 2 2 O-16 0.064481 0.014318 +2 4 2 2 B-10 0.000000 0.000000 +3 4 2 2 B-11 0.000000 0.000000 material group out nuclide mean std. dev. +4 4 1 H-1 0 0 +5 4 1 O-16 0 0 +6 4 1 B-10 0 0 +7 4 1 B-11 0 0 +0 4 2 H-1 0 0 +1 4 2 O-16 0 0 +2 4 2 B-10 0 0 +3 4 2 B-11 0 0 material group in nuclide mean std. dev. 27 5 1 Fe-54 0 0 28 5 1 Fe-56 0 0 29 5 1 Fe-57 0 0 @@ -738,175 +522,223 @@ 23 5 2 Cr-54 0 0 24 5 2 C-Nat 0 0 25 5 2 Cu-63 0 0 -26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 6 1 H-1 0 0 -22 6 1 O-16 0 0 -23 6 1 B-10 0 0 -24 6 1 B-11 0 0 -25 6 1 Fe-54 0 0 -26 6 1 Fe-56 0 0 -27 6 1 Fe-57 0 0 -28 6 1 Fe-58 0 0 -29 6 1 Ni-58 0 0 -30 6 1 Ni-60 0 0 -31 6 1 Ni-61 0 0 -32 6 1 Ni-62 0 0 -33 6 1 Ni-64 0 0 -34 6 1 Mn-55 0 0 -35 6 1 Si-28 0 0 -36 6 1 Si-29 0 0 -37 6 1 Si-30 0 0 -38 6 1 Cr-50 0 0 -39 6 1 Cr-52 0 0 -40 6 1 Cr-53 0 0 -41 6 1 Cr-54 0 0 -0 6 2 H-1 0 0 -1 6 2 O-16 0 0 -2 6 2 B-10 0 0 -3 6 2 B-11 0 0 -4 6 2 Fe-54 0 0 -5 6 2 Fe-56 0 0 -6 6 2 Fe-57 0 0 -7 6 2 Fe-58 0 0 -8 6 2 Ni-58 0 0 -9 6 2 Ni-60 0 0 -10 6 2 Ni-61 0 0 -11 6 2 Ni-62 0 0 -12 6 2 Ni-64 0 0 -13 6 2 Mn-55 0 0 -14 6 2 Si-28 0 0 -15 6 2 Si-29 0 0 -16 6 2 Si-30 0 0 -17 6 2 Cr-50 0 0 -18 6 2 Cr-52 0 0 -19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 6 1 1 H-1 0 0 -64 6 1 1 O-16 0 0 -65 6 1 1 B-10 0 0 -66 6 1 1 B-11 0 0 -67 6 1 1 Fe-54 0 0 -68 6 1 1 Fe-56 0 0 -69 6 1 1 Fe-57 0 0 -70 6 1 1 Fe-58 0 0 -71 6 1 1 Ni-58 0 0 -72 6 1 1 Ni-60 0 0 -73 6 1 1 Ni-61 0 0 -74 6 1 1 Ni-62 0 0 -75 6 1 1 Ni-64 0 0 -76 6 1 1 Mn-55 0 0 -77 6 1 1 Si-28 0 0 -78 6 1 1 Si-29 0 0 -79 6 1 1 Si-30 0 0 -80 6 1 1 Cr-50 0 0 -81 6 1 1 Cr-52 0 0 -82 6 1 1 Cr-53 0 0 -83 6 1 1 Cr-54 0 0 -42 6 1 2 H-1 0 0 -43 6 1 2 O-16 0 0 -44 6 1 2 B-10 0 0 -45 6 1 2 B-11 0 0 -46 6 1 2 Fe-54 0 0 -47 6 1 2 Fe-56 0 0 -48 6 1 2 Fe-57 0 0 -49 6 1 2 Fe-58 0 0 -50 6 1 2 Ni-58 0 0 -51 6 1 2 Ni-60 0 0 -52 6 1 2 Ni-61 0 0 -53 6 1 2 Ni-62 0 0 -54 6 1 2 Ni-64 0 0 -55 6 1 2 Mn-55 0 0 -56 6 1 2 Si-28 0 0 -57 6 1 2 Si-29 0 0 -58 6 1 2 Si-30 0 0 -59 6 1 2 Cr-50 0 0 -60 6 1 2 Cr-52 0 0 -61 6 1 2 Cr-53 0 0 -62 6 1 2 Cr-54 0 0 -21 6 2 1 H-1 0 0 -22 6 2 1 O-16 0 0 -23 6 2 1 B-10 0 0 -24 6 2 1 B-11 0 0 -25 6 2 1 Fe-54 0 0 -26 6 2 1 Fe-56 0 0 -27 6 2 1 Fe-57 0 0 -28 6 2 1 Fe-58 0 0 -29 6 2 1 Ni-58 0 0 -30 6 2 1 Ni-60 0 0 -31 6 2 1 Ni-61 0 0 -32 6 2 1 Ni-62 0 0 -33 6 2 1 Ni-64 0 0 -34 6 2 1 Mn-55 0 0 -35 6 2 1 Si-28 0 0 -36 6 2 1 Si-29 0 0 -37 6 2 1 Si-30 0 0 -38 6 2 1 Cr-50 0 0 -39 6 2 1 Cr-52 0 0 -40 6 2 1 Cr-53 0 0 -41 6 2 1 Cr-54 0 0 -0 6 2 2 H-1 0 0 -1 6 2 2 O-16 0 0 -2 6 2 2 B-10 0 0 -3 6 2 2 B-11 0 0 -4 6 2 2 Fe-54 0 0 -5 6 2 2 Fe-56 0 0 -6 6 2 2 Fe-57 0 0 -7 6 2 2 Fe-58 0 0 -8 6 2 2 Ni-58 0 0 -9 6 2 2 Ni-60 0 0 -10 6 2 2 Ni-61 0 0 -11 6 2 2 Ni-62 0 0 -12 6 2 2 Ni-64 0 0 -13 6 2 2 Mn-55 0 0 -14 6 2 2 Si-28 0 0 -15 6 2 2 Si-29 0 0 -16 6 2 2 Si-30 0 0 -17 6 2 2 Cr-50 0 0 -18 6 2 2 Cr-52 0 0 -19 6 2 2 Cr-53 0 0 -20 6 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in group out nuclide mean std. dev. +81 5 1 1 Fe-54 0 0 +82 5 1 1 Fe-56 0 0 +83 5 1 1 Fe-57 0 0 +84 5 1 1 Fe-58 0 0 +85 5 1 1 Ni-58 0 0 +86 5 1 1 Ni-60 0 0 +87 5 1 1 Ni-61 0 0 +88 5 1 1 Ni-62 0 0 +89 5 1 1 Ni-64 0 0 +90 5 1 1 Mn-55 0 0 +91 5 1 1 Mo-92 0 0 +92 5 1 1 Mo-94 0 0 +93 5 1 1 Mo-95 0 0 +94 5 1 1 Mo-96 0 0 +95 5 1 1 Mo-97 0 0 +96 5 1 1 Mo-98 0 0 +97 5 1 1 Mo-100 0 0 +98 5 1 1 Si-28 0 0 +99 5 1 1 Si-29 0 0 +100 5 1 1 Si-30 0 0 +101 5 1 1 Cr-50 0 0 +102 5 1 1 Cr-52 0 0 +103 5 1 1 Cr-53 0 0 +104 5 1 1 Cr-54 0 0 +105 5 1 1 C-Nat 0 0 +106 5 1 1 Cu-63 0 0 +107 5 1 1 Cu-65 0 0 +54 5 1 2 Fe-54 0 0 +55 5 1 2 Fe-56 0 0 +56 5 1 2 Fe-57 0 0 +57 5 1 2 Fe-58 0 0 +58 5 1 2 Ni-58 0 0 +59 5 1 2 Ni-60 0 0 +60 5 1 2 Ni-61 0 0 +61 5 1 2 Ni-62 0 0 +62 5 1 2 Ni-64 0 0 +63 5 1 2 Mn-55 0 0 +64 5 1 2 Mo-92 0 0 +65 5 1 2 Mo-94 0 0 +66 5 1 2 Mo-95 0 0 +67 5 1 2 Mo-96 0 0 +68 5 1 2 Mo-97 0 0 +69 5 1 2 Mo-98 0 0 +70 5 1 2 Mo-100 0 0 +71 5 1 2 Si-28 0 0 +72 5 1 2 Si-29 0 0 +73 5 1 2 Si-30 0 0 +74 5 1 2 Cr-50 0 0 +75 5 1 2 Cr-52 0 0 +76 5 1 2 Cr-53 0 0 +77 5 1 2 Cr-54 0 0 +78 5 1 2 C-Nat 0 0 +79 5 1 2 Cu-63 0 0 +80 5 1 2 Cu-65 0 0 +27 5 2 1 Fe-54 0 0 +28 5 2 1 Fe-56 0 0 +29 5 2 1 Fe-57 0 0 +30 5 2 1 Fe-58 0 0 +31 5 2 1 Ni-58 0 0 +32 5 2 1 Ni-60 0 0 +33 5 2 1 Ni-61 0 0 +34 5 2 1 Ni-62 0 0 +35 5 2 1 Ni-64 0 0 +36 5 2 1 Mn-55 0 0 +37 5 2 1 Mo-92 0 0 +38 5 2 1 Mo-94 0 0 +39 5 2 1 Mo-95 0 0 +40 5 2 1 Mo-96 0 0 +41 5 2 1 Mo-97 0 0 +42 5 2 1 Mo-98 0 0 +43 5 2 1 Mo-100 0 0 +44 5 2 1 Si-28 0 0 +45 5 2 1 Si-29 0 0 +46 5 2 1 Si-30 0 0 +47 5 2 1 Cr-50 0 0 +48 5 2 1 Cr-52 0 0 +49 5 2 1 Cr-53 0 0 +50 5 2 1 Cr-54 0 0 +51 5 2 1 C-Nat 0 0 +52 5 2 1 Cu-63 0 0 +53 5 2 1 Cu-65 0 0 +0 5 2 2 Fe-54 0 0 +1 5 2 2 Fe-56 0 0 +2 5 2 2 Fe-57 0 0 +3 5 2 2 Fe-58 0 0 +4 5 2 2 Ni-58 0 0 +5 5 2 2 Ni-60 0 0 +6 5 2 2 Ni-61 0 0 +7 5 2 2 Ni-62 0 0 +8 5 2 2 Ni-64 0 0 +9 5 2 2 Mn-55 0 0 +10 5 2 2 Mo-92 0 0 +11 5 2 2 Mo-94 0 0 +12 5 2 2 Mo-95 0 0 +13 5 2 2 Mo-96 0 0 +14 5 2 2 Mo-97 0 0 +15 5 2 2 Mo-98 0 0 +16 5 2 2 Mo-100 0 0 +17 5 2 2 Si-28 0 0 +18 5 2 2 Si-29 0 0 +19 5 2 2 Si-30 0 0 +20 5 2 2 Cr-50 0 0 +21 5 2 2 Cr-52 0 0 +22 5 2 2 Cr-53 0 0 +23 5 2 2 Cr-54 0 0 +24 5 2 2 C-Nat 0 0 +25 5 2 2 Cu-63 0 0 +26 5 2 2 Cu-65 0 0 material group out nuclide mean std. dev. +27 5 1 Fe-54 0 0 +28 5 1 Fe-56 0 0 +29 5 1 Fe-57 0 0 +30 5 1 Fe-58 0 0 +31 5 1 Ni-58 0 0 +32 5 1 Ni-60 0 0 +33 5 1 Ni-61 0 0 +34 5 1 Ni-62 0 0 +35 5 1 Ni-64 0 0 +36 5 1 Mn-55 0 0 +37 5 1 Mo-92 0 0 +38 5 1 Mo-94 0 0 +39 5 1 Mo-95 0 0 +40 5 1 Mo-96 0 0 +41 5 1 Mo-97 0 0 +42 5 1 Mo-98 0 0 +43 5 1 Mo-100 0 0 +44 5 1 Si-28 0 0 +45 5 1 Si-29 0 0 +46 5 1 Si-30 0 0 +47 5 1 Cr-50 0 0 +48 5 1 Cr-52 0 0 +49 5 1 Cr-53 0 0 +50 5 1 Cr-54 0 0 +51 5 1 C-Nat 0 0 +52 5 1 Cu-63 0 0 +53 5 1 Cu-65 0 0 +0 5 2 Fe-54 0 0 +1 5 2 Fe-56 0 0 +2 5 2 Fe-57 0 0 +3 5 2 Fe-58 0 0 +4 5 2 Ni-58 0 0 +5 5 2 Ni-60 0 0 +6 5 2 Ni-61 0 0 +7 5 2 Ni-62 0 0 +8 5 2 Ni-64 0 0 +9 5 2 Mn-55 0 0 +10 5 2 Mo-92 0 0 +11 5 2 Mo-94 0 0 +12 5 2 Mo-95 0 0 +13 5 2 Mo-96 0 0 +14 5 2 Mo-97 0 0 +15 5 2 Mo-98 0 0 +16 5 2 Mo-100 0 0 +17 5 2 Si-28 0 0 +18 5 2 Si-29 0 0 +19 5 2 Si-30 0 0 +20 5 2 Cr-50 0 0 +21 5 2 Cr-52 0 0 +22 5 2 Cr-53 0 0 +23 5 2 Cr-54 0 0 +24 5 2 C-Nat 0 0 +25 5 2 Cu-63 0 0 +26 5 2 Cu-65 0 0 material group in nuclide mean std. dev. 21 6 1 H-1 0 0 22 6 1 O-16 0 0 23 6 1 B-10 0 0 @@ -948,175 +780,175 @@ 17 6 2 Cr-50 0 0 18 6 2 Cr-52 0 0 19 6 2 Cr-53 0 0 -20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 7 1 H-1 0 0 -22 7 1 O-16 0 0 -23 7 1 B-10 0 0 -24 7 1 B-11 0 0 -25 7 1 Fe-54 0 0 -26 7 1 Fe-56 0 0 -27 7 1 Fe-57 0 0 -28 7 1 Fe-58 0 0 -29 7 1 Ni-58 0 0 -30 7 1 Ni-60 0 0 -31 7 1 Ni-61 0 0 -32 7 1 Ni-62 0 0 -33 7 1 Ni-64 0 0 -34 7 1 Mn-55 0 0 -35 7 1 Si-28 0 0 -36 7 1 Si-29 0 0 -37 7 1 Si-30 0 0 -38 7 1 Cr-50 0 0 -39 7 1 Cr-52 0 0 -40 7 1 Cr-53 0 0 -41 7 1 Cr-54 0 0 -0 7 2 H-1 0 0 -1 7 2 O-16 0 0 -2 7 2 B-10 0 0 -3 7 2 B-11 0 0 -4 7 2 Fe-54 0 0 -5 7 2 Fe-56 0 0 -6 7 2 Fe-57 0 0 -7 7 2 Fe-58 0 0 -8 7 2 Ni-58 0 0 -9 7 2 Ni-60 0 0 -10 7 2 Ni-61 0 0 -11 7 2 Ni-62 0 0 -12 7 2 Ni-64 0 0 -13 7 2 Mn-55 0 0 -14 7 2 Si-28 0 0 -15 7 2 Si-29 0 0 -16 7 2 Si-30 0 0 -17 7 2 Cr-50 0 0 -18 7 2 Cr-52 0 0 -19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 7 1 1 H-1 0 0 -64 7 1 1 O-16 0 0 -65 7 1 1 B-10 0 0 -66 7 1 1 B-11 0 0 -67 7 1 1 Fe-54 0 0 -68 7 1 1 Fe-56 0 0 -69 7 1 1 Fe-57 0 0 -70 7 1 1 Fe-58 0 0 -71 7 1 1 Ni-58 0 0 -72 7 1 1 Ni-60 0 0 -73 7 1 1 Ni-61 0 0 -74 7 1 1 Ni-62 0 0 -75 7 1 1 Ni-64 0 0 -76 7 1 1 Mn-55 0 0 -77 7 1 1 Si-28 0 0 -78 7 1 1 Si-29 0 0 -79 7 1 1 Si-30 0 0 -80 7 1 1 Cr-50 0 0 -81 7 1 1 Cr-52 0 0 -82 7 1 1 Cr-53 0 0 -83 7 1 1 Cr-54 0 0 -42 7 1 2 H-1 0 0 -43 7 1 2 O-16 0 0 -44 7 1 2 B-10 0 0 -45 7 1 2 B-11 0 0 -46 7 1 2 Fe-54 0 0 -47 7 1 2 Fe-56 0 0 -48 7 1 2 Fe-57 0 0 -49 7 1 2 Fe-58 0 0 -50 7 1 2 Ni-58 0 0 -51 7 1 2 Ni-60 0 0 -52 7 1 2 Ni-61 0 0 -53 7 1 2 Ni-62 0 0 -54 7 1 2 Ni-64 0 0 -55 7 1 2 Mn-55 0 0 -56 7 1 2 Si-28 0 0 -57 7 1 2 Si-29 0 0 -58 7 1 2 Si-30 0 0 -59 7 1 2 Cr-50 0 0 -60 7 1 2 Cr-52 0 0 -61 7 1 2 Cr-53 0 0 -62 7 1 2 Cr-54 0 0 -21 7 2 1 H-1 0 0 -22 7 2 1 O-16 0 0 -23 7 2 1 B-10 0 0 -24 7 2 1 B-11 0 0 -25 7 2 1 Fe-54 0 0 -26 7 2 1 Fe-56 0 0 -27 7 2 1 Fe-57 0 0 -28 7 2 1 Fe-58 0 0 -29 7 2 1 Ni-58 0 0 -30 7 2 1 Ni-60 0 0 -31 7 2 1 Ni-61 0 0 -32 7 2 1 Ni-62 0 0 -33 7 2 1 Ni-64 0 0 -34 7 2 1 Mn-55 0 0 -35 7 2 1 Si-28 0 0 -36 7 2 1 Si-29 0 0 -37 7 2 1 Si-30 0 0 -38 7 2 1 Cr-50 0 0 -39 7 2 1 Cr-52 0 0 -40 7 2 1 Cr-53 0 0 -41 7 2 1 Cr-54 0 0 -0 7 2 2 H-1 0 0 -1 7 2 2 O-16 0 0 -2 7 2 2 B-10 0 0 -3 7 2 2 B-11 0 0 -4 7 2 2 Fe-54 0 0 -5 7 2 2 Fe-56 0 0 -6 7 2 2 Fe-57 0 0 -7 7 2 2 Fe-58 0 0 -8 7 2 2 Ni-58 0 0 -9 7 2 2 Ni-60 0 0 -10 7 2 2 Ni-61 0 0 -11 7 2 2 Ni-62 0 0 -12 7 2 2 Ni-64 0 0 -13 7 2 2 Mn-55 0 0 -14 7 2 2 Si-28 0 0 -15 7 2 2 Si-29 0 0 -16 7 2 2 Si-30 0 0 -17 7 2 2 Cr-50 0 0 -18 7 2 2 Cr-52 0 0 -19 7 2 2 Cr-53 0 0 -20 7 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 6 1 1 H-1 0 0 +64 6 1 1 O-16 0 0 +65 6 1 1 B-10 0 0 +66 6 1 1 B-11 0 0 +67 6 1 1 Fe-54 0 0 +68 6 1 1 Fe-56 0 0 +69 6 1 1 Fe-57 0 0 +70 6 1 1 Fe-58 0 0 +71 6 1 1 Ni-58 0 0 +72 6 1 1 Ni-60 0 0 +73 6 1 1 Ni-61 0 0 +74 6 1 1 Ni-62 0 0 +75 6 1 1 Ni-64 0 0 +76 6 1 1 Mn-55 0 0 +77 6 1 1 Si-28 0 0 +78 6 1 1 Si-29 0 0 +79 6 1 1 Si-30 0 0 +80 6 1 1 Cr-50 0 0 +81 6 1 1 Cr-52 0 0 +82 6 1 1 Cr-53 0 0 +83 6 1 1 Cr-54 0 0 +42 6 1 2 H-1 0 0 +43 6 1 2 O-16 0 0 +44 6 1 2 B-10 0 0 +45 6 1 2 B-11 0 0 +46 6 1 2 Fe-54 0 0 +47 6 1 2 Fe-56 0 0 +48 6 1 2 Fe-57 0 0 +49 6 1 2 Fe-58 0 0 +50 6 1 2 Ni-58 0 0 +51 6 1 2 Ni-60 0 0 +52 6 1 2 Ni-61 0 0 +53 6 1 2 Ni-62 0 0 +54 6 1 2 Ni-64 0 0 +55 6 1 2 Mn-55 0 0 +56 6 1 2 Si-28 0 0 +57 6 1 2 Si-29 0 0 +58 6 1 2 Si-30 0 0 +59 6 1 2 Cr-50 0 0 +60 6 1 2 Cr-52 0 0 +61 6 1 2 Cr-53 0 0 +62 6 1 2 Cr-54 0 0 +21 6 2 1 H-1 0 0 +22 6 2 1 O-16 0 0 +23 6 2 1 B-10 0 0 +24 6 2 1 B-11 0 0 +25 6 2 1 Fe-54 0 0 +26 6 2 1 Fe-56 0 0 +27 6 2 1 Fe-57 0 0 +28 6 2 1 Fe-58 0 0 +29 6 2 1 Ni-58 0 0 +30 6 2 1 Ni-60 0 0 +31 6 2 1 Ni-61 0 0 +32 6 2 1 Ni-62 0 0 +33 6 2 1 Ni-64 0 0 +34 6 2 1 Mn-55 0 0 +35 6 2 1 Si-28 0 0 +36 6 2 1 Si-29 0 0 +37 6 2 1 Si-30 0 0 +38 6 2 1 Cr-50 0 0 +39 6 2 1 Cr-52 0 0 +40 6 2 1 Cr-53 0 0 +41 6 2 1 Cr-54 0 0 +0 6 2 2 H-1 0 0 +1 6 2 2 O-16 0 0 +2 6 2 2 B-10 0 0 +3 6 2 2 B-11 0 0 +4 6 2 2 Fe-54 0 0 +5 6 2 2 Fe-56 0 0 +6 6 2 2 Fe-57 0 0 +7 6 2 2 Fe-58 0 0 +8 6 2 2 Ni-58 0 0 +9 6 2 2 Ni-60 0 0 +10 6 2 2 Ni-61 0 0 +11 6 2 2 Ni-62 0 0 +12 6 2 2 Ni-64 0 0 +13 6 2 2 Mn-55 0 0 +14 6 2 2 Si-28 0 0 +15 6 2 2 Si-29 0 0 +16 6 2 2 Si-30 0 0 +17 6 2 2 Cr-50 0 0 +18 6 2 2 Cr-52 0 0 +19 6 2 2 Cr-53 0 0 +20 6 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +21 6 1 H-1 0 0 +22 6 1 O-16 0 0 +23 6 1 B-10 0 0 +24 6 1 B-11 0 0 +25 6 1 Fe-54 0 0 +26 6 1 Fe-56 0 0 +27 6 1 Fe-57 0 0 +28 6 1 Fe-58 0 0 +29 6 1 Ni-58 0 0 +30 6 1 Ni-60 0 0 +31 6 1 Ni-61 0 0 +32 6 1 Ni-62 0 0 +33 6 1 Ni-64 0 0 +34 6 1 Mn-55 0 0 +35 6 1 Si-28 0 0 +36 6 1 Si-29 0 0 +37 6 1 Si-30 0 0 +38 6 1 Cr-50 0 0 +39 6 1 Cr-52 0 0 +40 6 1 Cr-53 0 0 +41 6 1 Cr-54 0 0 +0 6 2 H-1 0 0 +1 6 2 O-16 0 0 +2 6 2 B-10 0 0 +3 6 2 B-11 0 0 +4 6 2 Fe-54 0 0 +5 6 2 Fe-56 0 0 +6 6 2 Fe-57 0 0 +7 6 2 Fe-58 0 0 +8 6 2 Ni-58 0 0 +9 6 2 Ni-60 0 0 +10 6 2 Ni-61 0 0 +11 6 2 Ni-62 0 0 +12 6 2 Ni-64 0 0 +13 6 2 Mn-55 0 0 +14 6 2 Si-28 0 0 +15 6 2 Si-29 0 0 +16 6 2 Si-30 0 0 +17 6 2 Cr-50 0 0 +18 6 2 Cr-52 0 0 +19 6 2 Cr-53 0 0 +20 6 2 Cr-54 0 0 material group in nuclide mean std. dev. 21 7 1 H-1 0 0 22 7 1 O-16 0 0 23 7 1 B-10 0 0 @@ -1158,175 +990,175 @@ 17 7 2 Cr-50 0 0 18 7 2 Cr-52 0 0 19 7 2 Cr-53 0 0 -20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 8 1 H-1 0 0 -22 8 1 O-16 0 0 -23 8 1 B-10 0 0 -24 8 1 B-11 0 0 -25 8 1 Fe-54 0 0 -26 8 1 Fe-56 0 0 -27 8 1 Fe-57 0 0 -28 8 1 Fe-58 0 0 -29 8 1 Ni-58 0 0 -30 8 1 Ni-60 0 0 -31 8 1 Ni-61 0 0 -32 8 1 Ni-62 0 0 -33 8 1 Ni-64 0 0 -34 8 1 Mn-55 0 0 -35 8 1 Si-28 0 0 -36 8 1 Si-29 0 0 -37 8 1 Si-30 0 0 -38 8 1 Cr-50 0 0 -39 8 1 Cr-52 0 0 -40 8 1 Cr-53 0 0 -41 8 1 Cr-54 0 0 -0 8 2 H-1 0 0 -1 8 2 O-16 0 0 -2 8 2 B-10 0 0 -3 8 2 B-11 0 0 -4 8 2 Fe-54 0 0 -5 8 2 Fe-56 0 0 -6 8 2 Fe-57 0 0 -7 8 2 Fe-58 0 0 -8 8 2 Ni-58 0 0 -9 8 2 Ni-60 0 0 -10 8 2 Ni-61 0 0 -11 8 2 Ni-62 0 0 -12 8 2 Ni-64 0 0 -13 8 2 Mn-55 0 0 -14 8 2 Si-28 0 0 -15 8 2 Si-29 0 0 -16 8 2 Si-30 0 0 -17 8 2 Cr-50 0 0 -18 8 2 Cr-52 0 0 -19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 8 1 1 H-1 0 0 -64 8 1 1 O-16 0 0 -65 8 1 1 B-10 0 0 -66 8 1 1 B-11 0 0 -67 8 1 1 Fe-54 0 0 -68 8 1 1 Fe-56 0 0 -69 8 1 1 Fe-57 0 0 -70 8 1 1 Fe-58 0 0 -71 8 1 1 Ni-58 0 0 -72 8 1 1 Ni-60 0 0 -73 8 1 1 Ni-61 0 0 -74 8 1 1 Ni-62 0 0 -75 8 1 1 Ni-64 0 0 -76 8 1 1 Mn-55 0 0 -77 8 1 1 Si-28 0 0 -78 8 1 1 Si-29 0 0 -79 8 1 1 Si-30 0 0 -80 8 1 1 Cr-50 0 0 -81 8 1 1 Cr-52 0 0 -82 8 1 1 Cr-53 0 0 -83 8 1 1 Cr-54 0 0 -42 8 1 2 H-1 0 0 -43 8 1 2 O-16 0 0 -44 8 1 2 B-10 0 0 -45 8 1 2 B-11 0 0 -46 8 1 2 Fe-54 0 0 -47 8 1 2 Fe-56 0 0 -48 8 1 2 Fe-57 0 0 -49 8 1 2 Fe-58 0 0 -50 8 1 2 Ni-58 0 0 -51 8 1 2 Ni-60 0 0 -52 8 1 2 Ni-61 0 0 -53 8 1 2 Ni-62 0 0 -54 8 1 2 Ni-64 0 0 -55 8 1 2 Mn-55 0 0 -56 8 1 2 Si-28 0 0 -57 8 1 2 Si-29 0 0 -58 8 1 2 Si-30 0 0 -59 8 1 2 Cr-50 0 0 -60 8 1 2 Cr-52 0 0 -61 8 1 2 Cr-53 0 0 -62 8 1 2 Cr-54 0 0 -21 8 2 1 H-1 0 0 -22 8 2 1 O-16 0 0 -23 8 2 1 B-10 0 0 -24 8 2 1 B-11 0 0 -25 8 2 1 Fe-54 0 0 -26 8 2 1 Fe-56 0 0 -27 8 2 1 Fe-57 0 0 -28 8 2 1 Fe-58 0 0 -29 8 2 1 Ni-58 0 0 -30 8 2 1 Ni-60 0 0 -31 8 2 1 Ni-61 0 0 -32 8 2 1 Ni-62 0 0 -33 8 2 1 Ni-64 0 0 -34 8 2 1 Mn-55 0 0 -35 8 2 1 Si-28 0 0 -36 8 2 1 Si-29 0 0 -37 8 2 1 Si-30 0 0 -38 8 2 1 Cr-50 0 0 -39 8 2 1 Cr-52 0 0 -40 8 2 1 Cr-53 0 0 -41 8 2 1 Cr-54 0 0 -0 8 2 2 H-1 0 0 -1 8 2 2 O-16 0 0 -2 8 2 2 B-10 0 0 -3 8 2 2 B-11 0 0 -4 8 2 2 Fe-54 0 0 -5 8 2 2 Fe-56 0 0 -6 8 2 2 Fe-57 0 0 -7 8 2 2 Fe-58 0 0 -8 8 2 2 Ni-58 0 0 -9 8 2 2 Ni-60 0 0 -10 8 2 2 Ni-61 0 0 -11 8 2 2 Ni-62 0 0 -12 8 2 2 Ni-64 0 0 -13 8 2 2 Mn-55 0 0 -14 8 2 2 Si-28 0 0 -15 8 2 2 Si-29 0 0 -16 8 2 2 Si-30 0 0 -17 8 2 2 Cr-50 0 0 -18 8 2 2 Cr-52 0 0 -19 8 2 2 Cr-53 0 0 -20 8 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 7 1 1 H-1 0 0 +64 7 1 1 O-16 0 0 +65 7 1 1 B-10 0 0 +66 7 1 1 B-11 0 0 +67 7 1 1 Fe-54 0 0 +68 7 1 1 Fe-56 0 0 +69 7 1 1 Fe-57 0 0 +70 7 1 1 Fe-58 0 0 +71 7 1 1 Ni-58 0 0 +72 7 1 1 Ni-60 0 0 +73 7 1 1 Ni-61 0 0 +74 7 1 1 Ni-62 0 0 +75 7 1 1 Ni-64 0 0 +76 7 1 1 Mn-55 0 0 +77 7 1 1 Si-28 0 0 +78 7 1 1 Si-29 0 0 +79 7 1 1 Si-30 0 0 +80 7 1 1 Cr-50 0 0 +81 7 1 1 Cr-52 0 0 +82 7 1 1 Cr-53 0 0 +83 7 1 1 Cr-54 0 0 +42 7 1 2 H-1 0 0 +43 7 1 2 O-16 0 0 +44 7 1 2 B-10 0 0 +45 7 1 2 B-11 0 0 +46 7 1 2 Fe-54 0 0 +47 7 1 2 Fe-56 0 0 +48 7 1 2 Fe-57 0 0 +49 7 1 2 Fe-58 0 0 +50 7 1 2 Ni-58 0 0 +51 7 1 2 Ni-60 0 0 +52 7 1 2 Ni-61 0 0 +53 7 1 2 Ni-62 0 0 +54 7 1 2 Ni-64 0 0 +55 7 1 2 Mn-55 0 0 +56 7 1 2 Si-28 0 0 +57 7 1 2 Si-29 0 0 +58 7 1 2 Si-30 0 0 +59 7 1 2 Cr-50 0 0 +60 7 1 2 Cr-52 0 0 +61 7 1 2 Cr-53 0 0 +62 7 1 2 Cr-54 0 0 +21 7 2 1 H-1 0 0 +22 7 2 1 O-16 0 0 +23 7 2 1 B-10 0 0 +24 7 2 1 B-11 0 0 +25 7 2 1 Fe-54 0 0 +26 7 2 1 Fe-56 0 0 +27 7 2 1 Fe-57 0 0 +28 7 2 1 Fe-58 0 0 +29 7 2 1 Ni-58 0 0 +30 7 2 1 Ni-60 0 0 +31 7 2 1 Ni-61 0 0 +32 7 2 1 Ni-62 0 0 +33 7 2 1 Ni-64 0 0 +34 7 2 1 Mn-55 0 0 +35 7 2 1 Si-28 0 0 +36 7 2 1 Si-29 0 0 +37 7 2 1 Si-30 0 0 +38 7 2 1 Cr-50 0 0 +39 7 2 1 Cr-52 0 0 +40 7 2 1 Cr-53 0 0 +41 7 2 1 Cr-54 0 0 +0 7 2 2 H-1 0 0 +1 7 2 2 O-16 0 0 +2 7 2 2 B-10 0 0 +3 7 2 2 B-11 0 0 +4 7 2 2 Fe-54 0 0 +5 7 2 2 Fe-56 0 0 +6 7 2 2 Fe-57 0 0 +7 7 2 2 Fe-58 0 0 +8 7 2 2 Ni-58 0 0 +9 7 2 2 Ni-60 0 0 +10 7 2 2 Ni-61 0 0 +11 7 2 2 Ni-62 0 0 +12 7 2 2 Ni-64 0 0 +13 7 2 2 Mn-55 0 0 +14 7 2 2 Si-28 0 0 +15 7 2 2 Si-29 0 0 +16 7 2 2 Si-30 0 0 +17 7 2 2 Cr-50 0 0 +18 7 2 2 Cr-52 0 0 +19 7 2 2 Cr-53 0 0 +20 7 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +21 7 1 H-1 0 0 +22 7 1 O-16 0 0 +23 7 1 B-10 0 0 +24 7 1 B-11 0 0 +25 7 1 Fe-54 0 0 +26 7 1 Fe-56 0 0 +27 7 1 Fe-57 0 0 +28 7 1 Fe-58 0 0 +29 7 1 Ni-58 0 0 +30 7 1 Ni-60 0 0 +31 7 1 Ni-61 0 0 +32 7 1 Ni-62 0 0 +33 7 1 Ni-64 0 0 +34 7 1 Mn-55 0 0 +35 7 1 Si-28 0 0 +36 7 1 Si-29 0 0 +37 7 1 Si-30 0 0 +38 7 1 Cr-50 0 0 +39 7 1 Cr-52 0 0 +40 7 1 Cr-53 0 0 +41 7 1 Cr-54 0 0 +0 7 2 H-1 0 0 +1 7 2 O-16 0 0 +2 7 2 B-10 0 0 +3 7 2 B-11 0 0 +4 7 2 Fe-54 0 0 +5 7 2 Fe-56 0 0 +6 7 2 Fe-57 0 0 +7 7 2 Fe-58 0 0 +8 7 2 Ni-58 0 0 +9 7 2 Ni-60 0 0 +10 7 2 Ni-61 0 0 +11 7 2 Ni-62 0 0 +12 7 2 Ni-64 0 0 +13 7 2 Mn-55 0 0 +14 7 2 Si-28 0 0 +15 7 2 Si-29 0 0 +16 7 2 Si-30 0 0 +17 7 2 Cr-50 0 0 +18 7 2 Cr-52 0 0 +19 7 2 Cr-53 0 0 +20 7 2 Cr-54 0 0 material group in nuclide mean std. dev. 21 8 1 H-1 0 0 22 8 1 O-16 0 0 23 8 1 B-10 0 0 @@ -1368,175 +1200,217 @@ 17 8 2 Cr-50 0 0 18 8 2 Cr-52 0 0 19 8 2 Cr-53 0 0 -20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 9 1 H-1 0.106160 0.179178 -22 9 1 O-16 0.272020 0.171699 -23 9 1 B-10 0.000000 0.000000 -24 9 1 B-11 0.000000 0.000000 -25 9 1 Fe-54 0.000000 0.000000 -26 9 1 Fe-56 0.000000 0.000000 -27 9 1 Fe-57 0.000000 0.000000 -28 9 1 Fe-58 0.000000 0.000000 -29 9 1 Ni-58 0.000000 0.000000 -30 9 1 Ni-60 0.000000 0.000000 -31 9 1 Ni-61 0.000000 0.000000 -32 9 1 Ni-62 0.000000 0.000000 -33 9 1 Ni-64 0.000000 0.000000 -34 9 1 Mn-55 0.085133 0.082479 -35 9 1 Si-28 0.000000 0.000000 -36 9 1 Si-29 0.000000 0.000000 -37 9 1 Si-30 0.000000 0.000000 -38 9 1 Cr-50 0.000000 0.000000 -39 9 1 Cr-52 0.000000 0.000000 -40 9 1 Cr-53 0.040723 0.079827 -41 9 1 Cr-54 0.000000 0.000000 -0 9 2 H-1 1.417955 2.158027 -1 9 2 O-16 0.000000 0.000000 -2 9 2 B-10 0.269141 0.380622 -3 9 2 B-11 0.000000 0.000000 -4 9 2 Fe-54 0.000000 0.000000 -5 9 2 Fe-56 0.000000 0.000000 -6 9 2 Fe-57 0.000000 0.000000 -7 9 2 Fe-58 0.000000 0.000000 -8 9 2 Ni-58 0.000000 0.000000 -9 9 2 Ni-60 0.000000 0.000000 -10 9 2 Ni-61 0.000000 0.000000 -11 9 2 Ni-62 0.000000 0.000000 -12 9 2 Ni-64 0.000000 0.000000 -13 9 2 Mn-55 0.000000 0.000000 -14 9 2 Si-28 0.000000 0.000000 -15 9 2 Si-29 0.000000 0.000000 -16 9 2 Si-30 0.000000 0.000000 -17 9 2 Cr-50 0.000000 0.000000 -18 9 2 Cr-52 0.000000 0.000000 -19 9 2 Cr-53 0.000000 0.000000 -20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. -21 9 1 H-1 0 0 -22 9 1 O-16 0 0 -23 9 1 B-10 0 0 -24 9 1 B-11 0 0 -25 9 1 Fe-54 0 0 -26 9 1 Fe-56 0 0 -27 9 1 Fe-57 0 0 -28 9 1 Fe-58 0 0 -29 9 1 Ni-58 0 0 -30 9 1 Ni-60 0 0 -31 9 1 Ni-61 0 0 -32 9 1 Ni-62 0 0 -33 9 1 Ni-64 0 0 -34 9 1 Mn-55 0 0 -35 9 1 Si-28 0 0 -36 9 1 Si-29 0 0 -37 9 1 Si-30 0 0 -38 9 1 Cr-50 0 0 -39 9 1 Cr-52 0 0 -40 9 1 Cr-53 0 0 -41 9 1 Cr-54 0 0 -0 9 2 H-1 0 0 -1 9 2 O-16 0 0 -2 9 2 B-10 0 0 -3 9 2 B-11 0 0 -4 9 2 Fe-54 0 0 -5 9 2 Fe-56 0 0 -6 9 2 Fe-57 0 0 -7 9 2 Fe-58 0 0 -8 9 2 Ni-58 0 0 -9 9 2 Ni-60 0 0 -10 9 2 Ni-61 0 0 -11 9 2 Ni-62 0 0 -12 9 2 Ni-64 0 0 -13 9 2 Mn-55 0 0 -14 9 2 Si-28 0 0 -15 9 2 Si-29 0 0 -16 9 2 Si-30 0 0 -17 9 2 Cr-50 0 0 -18 9 2 Cr-52 0 0 -19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 9 1 1 H-1 0.106160 0.179178 -64 9 1 1 O-16 0.272020 0.171699 -65 9 1 1 B-10 0.000000 0.000000 -66 9 1 1 B-11 0.000000 0.000000 -67 9 1 1 Fe-54 0.000000 0.000000 -68 9 1 1 Fe-56 0.000000 0.000000 -69 9 1 1 Fe-57 0.000000 0.000000 -70 9 1 1 Fe-58 0.000000 0.000000 -71 9 1 1 Ni-58 0.000000 0.000000 -72 9 1 1 Ni-60 0.000000 0.000000 -73 9 1 1 Ni-61 0.000000 0.000000 -74 9 1 1 Ni-62 0.000000 0.000000 -75 9 1 1 Ni-64 0.000000 0.000000 -76 9 1 1 Mn-55 0.085133 0.082479 -77 9 1 1 Si-28 0.000000 0.000000 -78 9 1 1 Si-29 0.000000 0.000000 -79 9 1 1 Si-30 0.000000 0.000000 -80 9 1 1 Cr-50 0.000000 0.000000 -81 9 1 1 Cr-52 0.000000 0.000000 -82 9 1 1 Cr-53 0.040723 0.079827 -83 9 1 1 Cr-54 0.000000 0.000000 -42 9 1 2 H-1 0.000000 0.000000 -43 9 1 2 O-16 0.000000 0.000000 -44 9 1 2 B-10 0.000000 0.000000 -45 9 1 2 B-11 0.000000 0.000000 -46 9 1 2 Fe-54 0.000000 0.000000 -47 9 1 2 Fe-56 0.000000 0.000000 -48 9 1 2 Fe-57 0.000000 0.000000 -49 9 1 2 Fe-58 0.000000 0.000000 -50 9 1 2 Ni-58 0.000000 0.000000 -51 9 1 2 Ni-60 0.000000 0.000000 -52 9 1 2 Ni-61 0.000000 0.000000 -53 9 1 2 Ni-62 0.000000 0.000000 -54 9 1 2 Ni-64 0.000000 0.000000 -55 9 1 2 Mn-55 0.000000 0.000000 -56 9 1 2 Si-28 0.000000 0.000000 -57 9 1 2 Si-29 0.000000 0.000000 -58 9 1 2 Si-30 0.000000 0.000000 -59 9 1 2 Cr-50 0.000000 0.000000 -60 9 1 2 Cr-52 0.000000 0.000000 -61 9 1 2 Cr-53 0.000000 0.000000 -62 9 1 2 Cr-54 0.000000 0.000000 -21 9 2 1 H-1 0.000000 0.000000 -22 9 2 1 O-16 0.000000 0.000000 -23 9 2 1 B-10 0.000000 0.000000 -24 9 2 1 B-11 0.000000 0.000000 -25 9 2 1 Fe-54 0.000000 0.000000 -26 9 2 1 Fe-56 0.000000 0.000000 -27 9 2 1 Fe-57 0.000000 0.000000 -28 9 2 1 Fe-58 0.000000 0.000000 -29 9 2 1 Ni-58 0.000000 0.000000 -30 9 2 1 Ni-60 0.000000 0.000000 -31 9 2 1 Ni-61 0.000000 0.000000 -32 9 2 1 Ni-62 0.000000 0.000000 -33 9 2 1 Ni-64 0.000000 0.000000 -34 9 2 1 Mn-55 0.000000 0.000000 -35 9 2 1 Si-28 0.000000 0.000000 -36 9 2 1 Si-29 0.000000 0.000000 -37 9 2 1 Si-30 0.000000 0.000000 -38 9 2 1 Cr-50 0.000000 0.000000 -39 9 2 1 Cr-52 0.000000 0.000000 -40 9 2 1 Cr-53 0.000000 0.000000 -41 9 2 1 Cr-54 0.000000 0.000000 -0 9 2 2 H-1 1.417955 2.158027 -1 9 2 2 O-16 0.000000 0.000000 -2 9 2 2 B-10 0.000000 0.000000 -3 9 2 2 B-11 0.000000 0.000000 -4 9 2 2 Fe-54 0.000000 0.000000 -5 9 2 2 Fe-56 0.000000 0.000000 -6 9 2 2 Fe-57 0.000000 0.000000 -7 9 2 2 Fe-58 0.000000 0.000000 -8 9 2 2 Ni-58 0.000000 0.000000 -9 9 2 2 Ni-60 0.000000 0.000000 -10 9 2 2 Ni-61 0.000000 0.000000 -11 9 2 2 Ni-62 0.000000 0.000000 -12 9 2 2 Ni-64 0.000000 0.000000 -13 9 2 2 Mn-55 0.000000 0.000000 -14 9 2 2 Si-28 0.000000 0.000000 -15 9 2 2 Si-29 0.000000 0.000000 -16 9 2 2 Si-30 0.000000 0.000000 -17 9 2 2 Cr-50 0.000000 0.000000 -18 9 2 2 Cr-52 0.000000 0.000000 -19 9 2 2 Cr-53 0.000000 0.000000 -20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 8 1 1 H-1 0 0 +64 8 1 1 O-16 0 0 +65 8 1 1 B-10 0 0 +66 8 1 1 B-11 0 0 +67 8 1 1 Fe-54 0 0 +68 8 1 1 Fe-56 0 0 +69 8 1 1 Fe-57 0 0 +70 8 1 1 Fe-58 0 0 +71 8 1 1 Ni-58 0 0 +72 8 1 1 Ni-60 0 0 +73 8 1 1 Ni-61 0 0 +74 8 1 1 Ni-62 0 0 +75 8 1 1 Ni-64 0 0 +76 8 1 1 Mn-55 0 0 +77 8 1 1 Si-28 0 0 +78 8 1 1 Si-29 0 0 +79 8 1 1 Si-30 0 0 +80 8 1 1 Cr-50 0 0 +81 8 1 1 Cr-52 0 0 +82 8 1 1 Cr-53 0 0 +83 8 1 1 Cr-54 0 0 +42 8 1 2 H-1 0 0 +43 8 1 2 O-16 0 0 +44 8 1 2 B-10 0 0 +45 8 1 2 B-11 0 0 +46 8 1 2 Fe-54 0 0 +47 8 1 2 Fe-56 0 0 +48 8 1 2 Fe-57 0 0 +49 8 1 2 Fe-58 0 0 +50 8 1 2 Ni-58 0 0 +51 8 1 2 Ni-60 0 0 +52 8 1 2 Ni-61 0 0 +53 8 1 2 Ni-62 0 0 +54 8 1 2 Ni-64 0 0 +55 8 1 2 Mn-55 0 0 +56 8 1 2 Si-28 0 0 +57 8 1 2 Si-29 0 0 +58 8 1 2 Si-30 0 0 +59 8 1 2 Cr-50 0 0 +60 8 1 2 Cr-52 0 0 +61 8 1 2 Cr-53 0 0 +62 8 1 2 Cr-54 0 0 +21 8 2 1 H-1 0 0 +22 8 2 1 O-16 0 0 +23 8 2 1 B-10 0 0 +24 8 2 1 B-11 0 0 +25 8 2 1 Fe-54 0 0 +26 8 2 1 Fe-56 0 0 +27 8 2 1 Fe-57 0 0 +28 8 2 1 Fe-58 0 0 +29 8 2 1 Ni-58 0 0 +30 8 2 1 Ni-60 0 0 +31 8 2 1 Ni-61 0 0 +32 8 2 1 Ni-62 0 0 +33 8 2 1 Ni-64 0 0 +34 8 2 1 Mn-55 0 0 +35 8 2 1 Si-28 0 0 +36 8 2 1 Si-29 0 0 +37 8 2 1 Si-30 0 0 +38 8 2 1 Cr-50 0 0 +39 8 2 1 Cr-52 0 0 +40 8 2 1 Cr-53 0 0 +41 8 2 1 Cr-54 0 0 +0 8 2 2 H-1 0 0 +1 8 2 2 O-16 0 0 +2 8 2 2 B-10 0 0 +3 8 2 2 B-11 0 0 +4 8 2 2 Fe-54 0 0 +5 8 2 2 Fe-56 0 0 +6 8 2 2 Fe-57 0 0 +7 8 2 2 Fe-58 0 0 +8 8 2 2 Ni-58 0 0 +9 8 2 2 Ni-60 0 0 +10 8 2 2 Ni-61 0 0 +11 8 2 2 Ni-62 0 0 +12 8 2 2 Ni-64 0 0 +13 8 2 2 Mn-55 0 0 +14 8 2 2 Si-28 0 0 +15 8 2 2 Si-29 0 0 +16 8 2 2 Si-30 0 0 +17 8 2 2 Cr-50 0 0 +18 8 2 2 Cr-52 0 0 +19 8 2 2 Cr-53 0 0 +20 8 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +21 8 1 H-1 0 0 +22 8 1 O-16 0 0 +23 8 1 B-10 0 0 +24 8 1 B-11 0 0 +25 8 1 Fe-54 0 0 +26 8 1 Fe-56 0 0 +27 8 1 Fe-57 0 0 +28 8 1 Fe-58 0 0 +29 8 1 Ni-58 0 0 +30 8 1 Ni-60 0 0 +31 8 1 Ni-61 0 0 +32 8 1 Ni-62 0 0 +33 8 1 Ni-64 0 0 +34 8 1 Mn-55 0 0 +35 8 1 Si-28 0 0 +36 8 1 Si-29 0 0 +37 8 1 Si-30 0 0 +38 8 1 Cr-50 0 0 +39 8 1 Cr-52 0 0 +40 8 1 Cr-53 0 0 +41 8 1 Cr-54 0 0 +0 8 2 H-1 0 0 +1 8 2 O-16 0 0 +2 8 2 B-10 0 0 +3 8 2 B-11 0 0 +4 8 2 Fe-54 0 0 +5 8 2 Fe-56 0 0 +6 8 2 Fe-57 0 0 +7 8 2 Fe-58 0 0 +8 8 2 Ni-58 0 0 +9 8 2 Ni-60 0 0 +10 8 2 Ni-61 0 0 +11 8 2 Ni-62 0 0 +12 8 2 Ni-64 0 0 +13 8 2 Mn-55 0 0 +14 8 2 Si-28 0 0 +15 8 2 Si-29 0 0 +16 8 2 Si-30 0 0 +17 8 2 Cr-50 0 0 +18 8 2 Cr-52 0 0 +19 8 2 Cr-53 0 0 +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0.106160 0.179178 +22 9 1 O-16 0.272020 0.171699 +23 9 1 B-10 0.000000 0.000000 +24 9 1 B-11 0.000000 0.000000 +25 9 1 Fe-54 0.000000 0.000000 +26 9 1 Fe-56 0.000000 0.000000 +27 9 1 Fe-57 0.000000 0.000000 +28 9 1 Fe-58 0.000000 0.000000 +29 9 1 Ni-58 0.000000 0.000000 +30 9 1 Ni-60 0.000000 0.000000 +31 9 1 Ni-61 0.000000 0.000000 +32 9 1 Ni-62 0.000000 0.000000 +33 9 1 Ni-64 0.000000 0.000000 +34 9 1 Mn-55 0.085133 0.082479 +35 9 1 Si-28 0.000000 0.000000 +36 9 1 Si-29 0.000000 0.000000 +37 9 1 Si-30 0.000000 0.000000 +38 9 1 Cr-50 0.000000 0.000000 +39 9 1 Cr-52 0.000000 0.000000 +40 9 1 Cr-53 0.040723 0.079827 +41 9 1 Cr-54 0.000000 0.000000 +0 9 2 H-1 1.417955 2.158027 +1 9 2 O-16 0.000000 0.000000 +2 9 2 B-10 0.269141 0.380622 +3 9 2 B-11 0.000000 0.000000 +4 9 2 Fe-54 0.000000 0.000000 +5 9 2 Fe-56 0.000000 0.000000 +6 9 2 Fe-57 0.000000 0.000000 +7 9 2 Fe-58 0.000000 0.000000 +8 9 2 Ni-58 0.000000 0.000000 +9 9 2 Ni-60 0.000000 0.000000 +10 9 2 Ni-61 0.000000 0.000000 +11 9 2 Ni-62 0.000000 0.000000 +12 9 2 Ni-64 0.000000 0.000000 +13 9 2 Mn-55 0.000000 0.000000 +14 9 2 Si-28 0.000000 0.000000 +15 9 2 Si-29 0.000000 0.000000 +16 9 2 Si-30 0.000000 0.000000 +17 9 2 Cr-50 0.000000 0.000000 +18 9 2 Cr-52 0.000000 0.000000 +19 9 2 Cr-53 0.000000 0.000000 +20 9 2 Cr-54 0.000000 0.000000 material group in nuclide mean std. dev. 21 9 1 H-1 0 0 22 9 1 O-16 0 0 23 9 1 B-10 0 0 @@ -1578,175 +1452,133 @@ 17 9 2 Cr-50 0 0 18 9 2 Cr-52 0 0 19 9 2 Cr-53 0 0 -20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -21 10 1 H-1 0 0 -22 10 1 O-16 0 0 -23 10 1 B-10 0 0 -24 10 1 B-11 0 0 -25 10 1 Fe-54 0 0 -26 10 1 Fe-56 0 0 -27 10 1 Fe-57 0 0 -28 10 1 Fe-58 0 0 -29 10 1 Ni-58 0 0 -30 10 1 Ni-60 0 0 -31 10 1 Ni-61 0 0 -32 10 1 Ni-62 0 0 -33 10 1 Ni-64 0 0 -34 10 1 Mn-55 0 0 -35 10 1 Si-28 0 0 -36 10 1 Si-29 0 0 -37 10 1 Si-30 0 0 -38 10 1 Cr-50 0 0 -39 10 1 Cr-52 0 0 -40 10 1 Cr-53 0 0 -41 10 1 Cr-54 0 0 -0 10 2 H-1 0 0 -1 10 2 O-16 0 0 -2 10 2 B-10 0 0 -3 10 2 B-11 0 0 -4 10 2 Fe-54 0 0 -5 10 2 Fe-56 0 0 -6 10 2 Fe-57 0 0 -7 10 2 Fe-58 0 0 -8 10 2 Ni-58 0 0 -9 10 2 Ni-60 0 0 -10 10 2 Ni-61 0 0 -11 10 2 Ni-62 0 0 -12 10 2 Ni-64 0 0 -13 10 2 Mn-55 0 0 -14 10 2 Si-28 0 0 -15 10 2 Si-29 0 0 -16 10 2 Si-30 0 0 -17 10 2 Cr-50 0 0 -18 10 2 Cr-52 0 0 -19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in group out nuclide mean std. dev. -63 10 1 1 H-1 0 0 -64 10 1 1 O-16 0 0 -65 10 1 1 B-10 0 0 -66 10 1 1 B-11 0 0 -67 10 1 1 Fe-54 0 0 -68 10 1 1 Fe-56 0 0 -69 10 1 1 Fe-57 0 0 -70 10 1 1 Fe-58 0 0 -71 10 1 1 Ni-58 0 0 -72 10 1 1 Ni-60 0 0 -73 10 1 1 Ni-61 0 0 -74 10 1 1 Ni-62 0 0 -75 10 1 1 Ni-64 0 0 -76 10 1 1 Mn-55 0 0 -77 10 1 1 Si-28 0 0 -78 10 1 1 Si-29 0 0 -79 10 1 1 Si-30 0 0 -80 10 1 1 Cr-50 0 0 -81 10 1 1 Cr-52 0 0 -82 10 1 1 Cr-53 0 0 -83 10 1 1 Cr-54 0 0 -42 10 1 2 H-1 0 0 -43 10 1 2 O-16 0 0 -44 10 1 2 B-10 0 0 -45 10 1 2 B-11 0 0 -46 10 1 2 Fe-54 0 0 -47 10 1 2 Fe-56 0 0 -48 10 1 2 Fe-57 0 0 -49 10 1 2 Fe-58 0 0 -50 10 1 2 Ni-58 0 0 -51 10 1 2 Ni-60 0 0 -52 10 1 2 Ni-61 0 0 -53 10 1 2 Ni-62 0 0 -54 10 1 2 Ni-64 0 0 -55 10 1 2 Mn-55 0 0 -56 10 1 2 Si-28 0 0 -57 10 1 2 Si-29 0 0 -58 10 1 2 Si-30 0 0 -59 10 1 2 Cr-50 0 0 -60 10 1 2 Cr-52 0 0 -61 10 1 2 Cr-53 0 0 -62 10 1 2 Cr-54 0 0 -21 10 2 1 H-1 0 0 -22 10 2 1 O-16 0 0 -23 10 2 1 B-10 0 0 -24 10 2 1 B-11 0 0 -25 10 2 1 Fe-54 0 0 -26 10 2 1 Fe-56 0 0 -27 10 2 1 Fe-57 0 0 -28 10 2 1 Fe-58 0 0 -29 10 2 1 Ni-58 0 0 -30 10 2 1 Ni-60 0 0 -31 10 2 1 Ni-61 0 0 -32 10 2 1 Ni-62 0 0 -33 10 2 1 Ni-64 0 0 -34 10 2 1 Mn-55 0 0 -35 10 2 1 Si-28 0 0 -36 10 2 1 Si-29 0 0 -37 10 2 1 Si-30 0 0 -38 10 2 1 Cr-50 0 0 -39 10 2 1 Cr-52 0 0 -40 10 2 1 Cr-53 0 0 -41 10 2 1 Cr-54 0 0 -0 10 2 2 H-1 0 0 -1 10 2 2 O-16 0 0 -2 10 2 2 B-10 0 0 -3 10 2 2 B-11 0 0 -4 10 2 2 Fe-54 0 0 -5 10 2 2 Fe-56 0 0 -6 10 2 2 Fe-57 0 0 -7 10 2 2 Fe-58 0 0 -8 10 2 2 Ni-58 0 0 -9 10 2 2 Ni-60 0 0 -10 10 2 2 Ni-61 0 0 -11 10 2 2 Ni-62 0 0 -12 10 2 2 Ni-64 0 0 -13 10 2 2 Mn-55 0 0 -14 10 2 2 Si-28 0 0 -15 10 2 2 Si-29 0 0 -16 10 2 2 Si-30 0 0 -17 10 2 2 Cr-50 0 0 -18 10 2 2 Cr-52 0 0 -19 10 2 2 Cr-53 0 0 -20 10 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +20 9 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 9 1 1 H-1 0.106160 0.179178 +64 9 1 1 O-16 0.272020 0.171699 +65 9 1 1 B-10 0.000000 0.000000 +66 9 1 1 B-11 0.000000 0.000000 +67 9 1 1 Fe-54 0.000000 0.000000 +68 9 1 1 Fe-56 0.000000 0.000000 +69 9 1 1 Fe-57 0.000000 0.000000 +70 9 1 1 Fe-58 0.000000 0.000000 +71 9 1 1 Ni-58 0.000000 0.000000 +72 9 1 1 Ni-60 0.000000 0.000000 +73 9 1 1 Ni-61 0.000000 0.000000 +74 9 1 1 Ni-62 0.000000 0.000000 +75 9 1 1 Ni-64 0.000000 0.000000 +76 9 1 1 Mn-55 0.085133 0.082479 +77 9 1 1 Si-28 0.000000 0.000000 +78 9 1 1 Si-29 0.000000 0.000000 +79 9 1 1 Si-30 0.000000 0.000000 +80 9 1 1 Cr-50 0.000000 0.000000 +81 9 1 1 Cr-52 0.000000 0.000000 +82 9 1 1 Cr-53 0.040723 0.079827 +83 9 1 1 Cr-54 0.000000 0.000000 +42 9 1 2 H-1 0.000000 0.000000 +43 9 1 2 O-16 0.000000 0.000000 +44 9 1 2 B-10 0.000000 0.000000 +45 9 1 2 B-11 0.000000 0.000000 +46 9 1 2 Fe-54 0.000000 0.000000 +47 9 1 2 Fe-56 0.000000 0.000000 +48 9 1 2 Fe-57 0.000000 0.000000 +49 9 1 2 Fe-58 0.000000 0.000000 +50 9 1 2 Ni-58 0.000000 0.000000 +51 9 1 2 Ni-60 0.000000 0.000000 +52 9 1 2 Ni-61 0.000000 0.000000 +53 9 1 2 Ni-62 0.000000 0.000000 +54 9 1 2 Ni-64 0.000000 0.000000 +55 9 1 2 Mn-55 0.000000 0.000000 +56 9 1 2 Si-28 0.000000 0.000000 +57 9 1 2 Si-29 0.000000 0.000000 +58 9 1 2 Si-30 0.000000 0.000000 +59 9 1 2 Cr-50 0.000000 0.000000 +60 9 1 2 Cr-52 0.000000 0.000000 +61 9 1 2 Cr-53 0.000000 0.000000 +62 9 1 2 Cr-54 0.000000 0.000000 +21 9 2 1 H-1 0.000000 0.000000 +22 9 2 1 O-16 0.000000 0.000000 +23 9 2 1 B-10 0.000000 0.000000 +24 9 2 1 B-11 0.000000 0.000000 +25 9 2 1 Fe-54 0.000000 0.000000 +26 9 2 1 Fe-56 0.000000 0.000000 +27 9 2 1 Fe-57 0.000000 0.000000 +28 9 2 1 Fe-58 0.000000 0.000000 +29 9 2 1 Ni-58 0.000000 0.000000 +30 9 2 1 Ni-60 0.000000 0.000000 +31 9 2 1 Ni-61 0.000000 0.000000 +32 9 2 1 Ni-62 0.000000 0.000000 +33 9 2 1 Ni-64 0.000000 0.000000 +34 9 2 1 Mn-55 0.000000 0.000000 +35 9 2 1 Si-28 0.000000 0.000000 +36 9 2 1 Si-29 0.000000 0.000000 +37 9 2 1 Si-30 0.000000 0.000000 +38 9 2 1 Cr-50 0.000000 0.000000 +39 9 2 1 Cr-52 0.000000 0.000000 +40 9 2 1 Cr-53 0.000000 0.000000 +41 9 2 1 Cr-54 0.000000 0.000000 +0 9 2 2 H-1 1.417955 2.158027 +1 9 2 2 O-16 0.000000 0.000000 +2 9 2 2 B-10 0.000000 0.000000 +3 9 2 2 B-11 0.000000 0.000000 +4 9 2 2 Fe-54 0.000000 0.000000 +5 9 2 2 Fe-56 0.000000 0.000000 +6 9 2 2 Fe-57 0.000000 0.000000 +7 9 2 2 Fe-58 0.000000 0.000000 +8 9 2 2 Ni-58 0.000000 0.000000 +9 9 2 2 Ni-60 0.000000 0.000000 +10 9 2 2 Ni-61 0.000000 0.000000 +11 9 2 2 Ni-62 0.000000 0.000000 +12 9 2 2 Ni-64 0.000000 0.000000 +13 9 2 2 Mn-55 0.000000 0.000000 +14 9 2 2 Si-28 0.000000 0.000000 +15 9 2 2 Si-29 0.000000 0.000000 +16 9 2 2 Si-30 0.000000 0.000000 +17 9 2 2 Cr-50 0.000000 0.000000 +18 9 2 2 Cr-52 0.000000 0.000000 +19 9 2 2 Cr-53 0.000000 0.000000 +20 9 2 2 Cr-54 0.000000 0.000000 material group out nuclide mean std. dev. +21 9 1 H-1 0 0 +22 9 1 O-16 0 0 +23 9 1 B-10 0 0 +24 9 1 B-11 0 0 +25 9 1 Fe-54 0 0 +26 9 1 Fe-56 0 0 +27 9 1 Fe-57 0 0 +28 9 1 Fe-58 0 0 +29 9 1 Ni-58 0 0 +30 9 1 Ni-60 0 0 +31 9 1 Ni-61 0 0 +32 9 1 Ni-62 0 0 +33 9 1 Ni-64 0 0 +34 9 1 Mn-55 0 0 +35 9 1 Si-28 0 0 +36 9 1 Si-29 0 0 +37 9 1 Si-30 0 0 +38 9 1 Cr-50 0 0 +39 9 1 Cr-52 0 0 +40 9 1 Cr-53 0 0 +41 9 1 Cr-54 0 0 +0 9 2 H-1 0 0 +1 9 2 O-16 0 0 +2 9 2 B-10 0 0 +3 9 2 B-11 0 0 +4 9 2 Fe-54 0 0 +5 9 2 Fe-56 0 0 +6 9 2 Fe-57 0 0 +7 9 2 Fe-58 0 0 +8 9 2 Ni-58 0 0 +9 9 2 Ni-60 0 0 +10 9 2 Ni-61 0 0 +11 9 2 Ni-62 0 0 +12 9 2 Ni-64 0 0 +13 9 2 Mn-55 0 0 +14 9 2 Si-28 0 0 +15 9 2 Si-29 0 0 +16 9 2 Si-30 0 0 +17 9 2 Cr-50 0 0 +18 9 2 Cr-52 0 0 +19 9 2 Cr-53 0 0 +20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. 21 10 1 H-1 0 0 22 10 1 O-16 0 0 23 10 1 B-10 0 0 @@ -1788,79 +1620,193 @@ 17 10 2 Cr-50 0 0 18 10 2 Cr-52 0 0 19 10 2 Cr-53 0 0 -20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. -9 11 1 H-1 0.138558 0.260695 -10 11 1 O-16 0.042575 0.049271 -11 11 1 B-10 0.000000 0.000000 -12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.041034 0.049102 -14 11 1 Zr-91 0.027328 0.021092 -15 11 1 Zr-92 0.009788 0.009282 -16 11 1 Zr-94 0.043543 0.036697 -17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.824153 0.917955 -1 11 2 O-16 0.041986 0.060727 -2 11 2 B-10 0.048216 0.042726 -3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.048596 0.067712 -5 11 2 Zr-91 0.000000 0.000000 -6 11 2 Zr-92 0.000000 0.000000 -7 11 2 Zr-94 0.043195 0.041363 -8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 11 1 H-1 0 0 -10 11 1 O-16 0 0 -11 11 1 B-10 0 0 -12 11 1 B-11 0 0 -13 11 1 Zr-90 0 0 -14 11 1 Zr-91 0 0 -15 11 1 Zr-92 0 0 -16 11 1 Zr-94 0 0 -17 11 1 Zr-96 0 0 -0 11 2 H-1 0 0 -1 11 2 O-16 0 0 -2 11 2 B-10 0 0 -3 11 2 B-11 0 0 -4 11 2 Zr-90 0 0 -5 11 2 Zr-91 0 0 -6 11 2 Zr-92 0 0 -7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 11 1 1 H-1 0.111411 0.247294 -28 11 1 1 O-16 0.042575 0.049271 -29 11 1 1 B-10 0.000000 0.000000 -30 11 1 1 B-11 0.000000 0.000000 -31 11 1 1 Zr-90 0.041034 0.049102 -32 11 1 1 Zr-91 0.027328 0.021092 -33 11 1 1 Zr-92 0.009788 0.009282 -34 11 1 1 Zr-94 0.043543 0.036697 -35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.027147 0.020009 -19 11 1 2 O-16 0.000000 0.000000 -20 11 1 2 B-10 0.000000 0.000000 -21 11 1 2 B-11 0.000000 0.000000 -22 11 1 2 Zr-90 0.000000 0.000000 -23 11 1 2 Zr-91 0.000000 0.000000 -24 11 1 2 Zr-92 0.000000 0.000000 -25 11 1 2 Zr-94 0.000000 0.000000 -26 11 1 2 Zr-96 0.000000 0.000000 -9 11 2 1 H-1 0.000000 0.000000 -10 11 2 1 O-16 0.000000 0.000000 -11 11 2 1 B-10 0.000000 0.000000 -12 11 2 1 B-11 0.000000 0.000000 -13 11 2 1 Zr-90 0.000000 0.000000 -14 11 2 1 Zr-91 0.000000 0.000000 -15 11 2 1 Zr-92 0.000000 0.000000 -16 11 2 1 Zr-94 0.000000 0.000000 -17 11 2 1 Zr-96 0.000000 0.000000 -0 11 2 2 H-1 0.824153 0.917955 -1 11 2 2 O-16 0.041986 0.060727 -2 11 2 2 B-10 0.000000 0.000000 -3 11 2 2 B-11 0.000000 0.000000 -4 11 2 2 Zr-90 0.048596 0.067712 -5 11 2 2 Zr-91 0.000000 0.000000 -6 11 2 2 Zr-92 0.000000 0.000000 -7 11 2 2 Zr-94 0.043195 0.041363 -8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 10 1 H-1 0 0 +22 10 1 O-16 0 0 +23 10 1 B-10 0 0 +24 10 1 B-11 0 0 +25 10 1 Fe-54 0 0 +26 10 1 Fe-56 0 0 +27 10 1 Fe-57 0 0 +28 10 1 Fe-58 0 0 +29 10 1 Ni-58 0 0 +30 10 1 Ni-60 0 0 +31 10 1 Ni-61 0 0 +32 10 1 Ni-62 0 0 +33 10 1 Ni-64 0 0 +34 10 1 Mn-55 0 0 +35 10 1 Si-28 0 0 +36 10 1 Si-29 0 0 +37 10 1 Si-30 0 0 +38 10 1 Cr-50 0 0 +39 10 1 Cr-52 0 0 +40 10 1 Cr-53 0 0 +41 10 1 Cr-54 0 0 +0 10 2 H-1 0 0 +1 10 2 O-16 0 0 +2 10 2 B-10 0 0 +3 10 2 B-11 0 0 +4 10 2 Fe-54 0 0 +5 10 2 Fe-56 0 0 +6 10 2 Fe-57 0 0 +7 10 2 Fe-58 0 0 +8 10 2 Ni-58 0 0 +9 10 2 Ni-60 0 0 +10 10 2 Ni-61 0 0 +11 10 2 Ni-62 0 0 +12 10 2 Ni-64 0 0 +13 10 2 Mn-55 0 0 +14 10 2 Si-28 0 0 +15 10 2 Si-29 0 0 +16 10 2 Si-30 0 0 +17 10 2 Cr-50 0 0 +18 10 2 Cr-52 0 0 +19 10 2 Cr-53 0 0 +20 10 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 10 1 1 H-1 0 0 +64 10 1 1 O-16 0 0 +65 10 1 1 B-10 0 0 +66 10 1 1 B-11 0 0 +67 10 1 1 Fe-54 0 0 +68 10 1 1 Fe-56 0 0 +69 10 1 1 Fe-57 0 0 +70 10 1 1 Fe-58 0 0 +71 10 1 1 Ni-58 0 0 +72 10 1 1 Ni-60 0 0 +73 10 1 1 Ni-61 0 0 +74 10 1 1 Ni-62 0 0 +75 10 1 1 Ni-64 0 0 +76 10 1 1 Mn-55 0 0 +77 10 1 1 Si-28 0 0 +78 10 1 1 Si-29 0 0 +79 10 1 1 Si-30 0 0 +80 10 1 1 Cr-50 0 0 +81 10 1 1 Cr-52 0 0 +82 10 1 1 Cr-53 0 0 +83 10 1 1 Cr-54 0 0 +42 10 1 2 H-1 0 0 +43 10 1 2 O-16 0 0 +44 10 1 2 B-10 0 0 +45 10 1 2 B-11 0 0 +46 10 1 2 Fe-54 0 0 +47 10 1 2 Fe-56 0 0 +48 10 1 2 Fe-57 0 0 +49 10 1 2 Fe-58 0 0 +50 10 1 2 Ni-58 0 0 +51 10 1 2 Ni-60 0 0 +52 10 1 2 Ni-61 0 0 +53 10 1 2 Ni-62 0 0 +54 10 1 2 Ni-64 0 0 +55 10 1 2 Mn-55 0 0 +56 10 1 2 Si-28 0 0 +57 10 1 2 Si-29 0 0 +58 10 1 2 Si-30 0 0 +59 10 1 2 Cr-50 0 0 +60 10 1 2 Cr-52 0 0 +61 10 1 2 Cr-53 0 0 +62 10 1 2 Cr-54 0 0 +21 10 2 1 H-1 0 0 +22 10 2 1 O-16 0 0 +23 10 2 1 B-10 0 0 +24 10 2 1 B-11 0 0 +25 10 2 1 Fe-54 0 0 +26 10 2 1 Fe-56 0 0 +27 10 2 1 Fe-57 0 0 +28 10 2 1 Fe-58 0 0 +29 10 2 1 Ni-58 0 0 +30 10 2 1 Ni-60 0 0 +31 10 2 1 Ni-61 0 0 +32 10 2 1 Ni-62 0 0 +33 10 2 1 Ni-64 0 0 +34 10 2 1 Mn-55 0 0 +35 10 2 1 Si-28 0 0 +36 10 2 1 Si-29 0 0 +37 10 2 1 Si-30 0 0 +38 10 2 1 Cr-50 0 0 +39 10 2 1 Cr-52 0 0 +40 10 2 1 Cr-53 0 0 +41 10 2 1 Cr-54 0 0 +0 10 2 2 H-1 0 0 +1 10 2 2 O-16 0 0 +2 10 2 2 B-10 0 0 +3 10 2 2 B-11 0 0 +4 10 2 2 Fe-54 0 0 +5 10 2 2 Fe-56 0 0 +6 10 2 2 Fe-57 0 0 +7 10 2 2 Fe-58 0 0 +8 10 2 2 Ni-58 0 0 +9 10 2 2 Ni-60 0 0 +10 10 2 2 Ni-61 0 0 +11 10 2 2 Ni-62 0 0 +12 10 2 2 Ni-64 0 0 +13 10 2 2 Mn-55 0 0 +14 10 2 2 Si-28 0 0 +15 10 2 2 Si-29 0 0 +16 10 2 2 Si-30 0 0 +17 10 2 2 Cr-50 0 0 +18 10 2 2 Cr-52 0 0 +19 10 2 2 Cr-53 0 0 +20 10 2 2 Cr-54 0 0 material group out nuclide mean std. dev. +21 10 1 H-1 0 0 +22 10 1 O-16 0 0 +23 10 1 B-10 0 0 +24 10 1 B-11 0 0 +25 10 1 Fe-54 0 0 +26 10 1 Fe-56 0 0 +27 10 1 Fe-57 0 0 +28 10 1 Fe-58 0 0 +29 10 1 Ni-58 0 0 +30 10 1 Ni-60 0 0 +31 10 1 Ni-61 0 0 +32 10 1 Ni-62 0 0 +33 10 1 Ni-64 0 0 +34 10 1 Mn-55 0 0 +35 10 1 Si-28 0 0 +36 10 1 Si-29 0 0 +37 10 1 Si-30 0 0 +38 10 1 Cr-50 0 0 +39 10 1 Cr-52 0 0 +40 10 1 Cr-53 0 0 +41 10 1 Cr-54 0 0 +0 10 2 H-1 0 0 +1 10 2 O-16 0 0 +2 10 2 B-10 0 0 +3 10 2 B-11 0 0 +4 10 2 Fe-54 0 0 +5 10 2 Fe-56 0 0 +6 10 2 Fe-57 0 0 +7 10 2 Fe-58 0 0 +8 10 2 Ni-58 0 0 +9 10 2 Ni-60 0 0 +10 10 2 Ni-61 0 0 +11 10 2 Ni-62 0 0 +12 10 2 Ni-64 0 0 +13 10 2 Mn-55 0 0 +14 10 2 Si-28 0 0 +15 10 2 Si-29 0 0 +16 10 2 Si-30 0 0 +17 10 2 Cr-50 0 0 +18 10 2 Cr-52 0 0 +19 10 2 Cr-53 0 0 +20 10 2 Cr-54 0 0 material group in nuclide mean std. dev. +9 11 1 H-1 0.138558 0.260695 +10 11 1 O-16 0.042575 0.049271 +11 11 1 B-10 0.000000 0.000000 +12 11 1 B-11 0.000000 0.000000 +13 11 1 Zr-90 0.041034 0.049102 +14 11 1 Zr-91 0.027328 0.021092 +15 11 1 Zr-92 0.009788 0.009282 +16 11 1 Zr-94 0.043543 0.036697 +17 11 1 Zr-96 0.000000 0.000000 +0 11 2 H-1 0.824153 0.917955 +1 11 2 O-16 0.041986 0.060727 +2 11 2 B-10 0.048216 0.042726 +3 11 2 B-11 0.000000 0.000000 +4 11 2 Zr-90 0.048596 0.067712 +5 11 2 Zr-91 0.000000 0.000000 +6 11 2 Zr-92 0.000000 0.000000 +7 11 2 Zr-94 0.043195 0.041363 +8 11 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 9 11 1 H-1 0 0 10 11 1 O-16 0 0 11 11 1 B-10 0 0 @@ -1878,79 +1824,79 @@ 5 11 2 Zr-91 0 0 6 11 2 Zr-92 0 0 7 11 2 Zr-94 0 0 -8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. -9 12 1 H-1 0.151924 0.200147 -10 12 1 O-16 0.039280 0.026086 -11 12 1 B-10 0.000000 0.000000 -12 12 1 B-11 0.000000 0.000000 -13 12 1 Zr-90 0.017578 0.022079 -14 12 1 Zr-91 0.039984 0.025285 -15 12 1 Zr-92 0.001172 0.006230 -16 12 1 Zr-94 0.001668 0.005966 -17 12 1 Zr-96 0.004328 0.005325 -0 12 2 H-1 0.942412 0.866849 -1 12 2 O-16 0.047438 0.048161 -2 12 2 B-10 0.041655 0.031202 -3 12 2 B-11 0.000000 0.000000 -4 12 2 Zr-90 0.021193 0.017456 -5 12 2 Zr-91 0.007901 0.009268 -6 12 2 Zr-92 0.009422 0.012802 -7 12 2 Zr-94 0.043324 0.027551 -8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. -9 12 1 H-1 0 0 -10 12 1 O-16 0 0 -11 12 1 B-10 0 0 -12 12 1 B-11 0 0 -13 12 1 Zr-90 0 0 -14 12 1 Zr-91 0 0 -15 12 1 Zr-92 0 0 -16 12 1 Zr-94 0 0 -17 12 1 Zr-96 0 0 -0 12 2 H-1 0 0 -1 12 2 O-16 0 0 -2 12 2 B-10 0 0 -3 12 2 B-11 0 0 -4 12 2 Zr-90 0 0 -5 12 2 Zr-91 0 0 -6 12 2 Zr-92 0 0 -7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. -27 12 1 1 H-1 0.122301 0.187298 -28 12 1 1 O-16 0.039280 0.026086 -29 12 1 1 B-10 0.000000 0.000000 -30 12 1 1 B-11 0.000000 0.000000 -31 12 1 1 Zr-90 0.017578 0.022079 -32 12 1 1 Zr-91 0.039984 0.025285 -33 12 1 1 Zr-92 0.001172 0.006230 -34 12 1 1 Zr-94 0.001668 0.005966 -35 12 1 1 Zr-96 0.004328 0.005325 -18 12 1 2 H-1 0.029622 0.017760 -19 12 1 2 O-16 0.000000 0.000000 -20 12 1 2 B-10 0.000000 0.000000 -21 12 1 2 B-11 0.000000 0.000000 -22 12 1 2 Zr-90 0.000000 0.000000 -23 12 1 2 Zr-91 0.000000 0.000000 -24 12 1 2 Zr-92 0.000000 0.000000 -25 12 1 2 Zr-94 0.000000 0.000000 -26 12 1 2 Zr-96 0.000000 0.000000 -9 12 2 1 H-1 0.000000 0.000000 -10 12 2 1 O-16 0.000000 0.000000 -11 12 2 1 B-10 0.000000 0.000000 -12 12 2 1 B-11 0.000000 0.000000 -13 12 2 1 Zr-90 0.000000 0.000000 -14 12 2 1 Zr-91 0.000000 0.000000 -15 12 2 1 Zr-92 0.000000 0.000000 -16 12 2 1 Zr-94 0.000000 0.000000 -17 12 2 1 Zr-96 0.000000 0.000000 -0 12 2 2 H-1 0.942412 0.866849 -1 12 2 2 O-16 0.047438 0.048161 -2 12 2 2 B-10 0.000000 0.000000 -3 12 2 2 B-11 0.000000 0.000000 -4 12 2 2 Zr-90 0.021193 0.017456 -5 12 2 2 Zr-91 0.007901 0.009268 -6 12 2 2 Zr-92 0.009422 0.012802 -7 12 2 2 Zr-94 0.043324 0.027551 -8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +8 11 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +27 11 1 1 H-1 0.111411 0.247294 +28 11 1 1 O-16 0.042575 0.049271 +29 11 1 1 B-10 0.000000 0.000000 +30 11 1 1 B-11 0.000000 0.000000 +31 11 1 1 Zr-90 0.041034 0.049102 +32 11 1 1 Zr-91 0.027328 0.021092 +33 11 1 1 Zr-92 0.009788 0.009282 +34 11 1 1 Zr-94 0.043543 0.036697 +35 11 1 1 Zr-96 0.000000 0.000000 +18 11 1 2 H-1 0.027147 0.020009 +19 11 1 2 O-16 0.000000 0.000000 +20 11 1 2 B-10 0.000000 0.000000 +21 11 1 2 B-11 0.000000 0.000000 +22 11 1 2 Zr-90 0.000000 0.000000 +23 11 1 2 Zr-91 0.000000 0.000000 +24 11 1 2 Zr-92 0.000000 0.000000 +25 11 1 2 Zr-94 0.000000 0.000000 +26 11 1 2 Zr-96 0.000000 0.000000 +9 11 2 1 H-1 0.000000 0.000000 +10 11 2 1 O-16 0.000000 0.000000 +11 11 2 1 B-10 0.000000 0.000000 +12 11 2 1 B-11 0.000000 0.000000 +13 11 2 1 Zr-90 0.000000 0.000000 +14 11 2 1 Zr-91 0.000000 0.000000 +15 11 2 1 Zr-92 0.000000 0.000000 +16 11 2 1 Zr-94 0.000000 0.000000 +17 11 2 1 Zr-96 0.000000 0.000000 +0 11 2 2 H-1 0.824153 0.917955 +1 11 2 2 O-16 0.041986 0.060727 +2 11 2 2 B-10 0.000000 0.000000 +3 11 2 2 B-11 0.000000 0.000000 +4 11 2 2 Zr-90 0.048596 0.067712 +5 11 2 2 Zr-91 0.000000 0.000000 +6 11 2 2 Zr-92 0.000000 0.000000 +7 11 2 2 Zr-94 0.043195 0.041363 +8 11 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +9 11 1 H-1 0 0 +10 11 1 O-16 0 0 +11 11 1 B-10 0 0 +12 11 1 B-11 0 0 +13 11 1 Zr-90 0 0 +14 11 1 Zr-91 0 0 +15 11 1 Zr-92 0 0 +16 11 1 Zr-94 0 0 +17 11 1 Zr-96 0 0 +0 11 2 H-1 0 0 +1 11 2 O-16 0 0 +2 11 2 B-10 0 0 +3 11 2 B-11 0 0 +4 11 2 Zr-90 0 0 +5 11 2 Zr-91 0 0 +6 11 2 Zr-92 0 0 +7 11 2 Zr-94 0 0 +8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 12 1 H-1 0.151924 0.200147 +10 12 1 O-16 0.039280 0.026086 +11 12 1 B-10 0.000000 0.000000 +12 12 1 B-11 0.000000 0.000000 +13 12 1 Zr-90 0.017578 0.022079 +14 12 1 Zr-91 0.039984 0.025285 +15 12 1 Zr-92 0.001172 0.006230 +16 12 1 Zr-94 0.001668 0.005966 +17 12 1 Zr-96 0.004328 0.005325 +0 12 2 H-1 0.942412 0.866849 +1 12 2 O-16 0.047438 0.048161 +2 12 2 B-10 0.041655 0.031202 +3 12 2 B-11 0.000000 0.000000 +4 12 2 Zr-90 0.021193 0.017456 +5 12 2 Zr-91 0.007901 0.009268 +6 12 2 Zr-92 0.009422 0.012802 +7 12 2 Zr-94 0.043324 0.027551 +8 12 2 Zr-96 0.000000 0.000000 material group in nuclide mean std. dev. 9 12 1 H-1 0 0 10 12 1 O-16 0 0 11 12 1 B-10 0 0 @@ -1968,4 +1914,58 @@ 5 12 2 Zr-91 0 0 6 12 2 Zr-92 0 0 7 12 2 Zr-94 0 0 -8 12 2 Zr-96 0 0 \ No newline at end of file +8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +27 12 1 1 H-1 0.122301 0.187298 +28 12 1 1 O-16 0.039280 0.026086 +29 12 1 1 B-10 0.000000 0.000000 +30 12 1 1 B-11 0.000000 0.000000 +31 12 1 1 Zr-90 0.017578 0.022079 +32 12 1 1 Zr-91 0.039984 0.025285 +33 12 1 1 Zr-92 0.001172 0.006230 +34 12 1 1 Zr-94 0.001668 0.005966 +35 12 1 1 Zr-96 0.004328 0.005325 +18 12 1 2 H-1 0.029622 0.017760 +19 12 1 2 O-16 0.000000 0.000000 +20 12 1 2 B-10 0.000000 0.000000 +21 12 1 2 B-11 0.000000 0.000000 +22 12 1 2 Zr-90 0.000000 0.000000 +23 12 1 2 Zr-91 0.000000 0.000000 +24 12 1 2 Zr-92 0.000000 0.000000 +25 12 1 2 Zr-94 0.000000 0.000000 +26 12 1 2 Zr-96 0.000000 0.000000 +9 12 2 1 H-1 0.000000 0.000000 +10 12 2 1 O-16 0.000000 0.000000 +11 12 2 1 B-10 0.000000 0.000000 +12 12 2 1 B-11 0.000000 0.000000 +13 12 2 1 Zr-90 0.000000 0.000000 +14 12 2 1 Zr-91 0.000000 0.000000 +15 12 2 1 Zr-92 0.000000 0.000000 +16 12 2 1 Zr-94 0.000000 0.000000 +17 12 2 1 Zr-96 0.000000 0.000000 +0 12 2 2 H-1 0.942412 0.866849 +1 12 2 2 O-16 0.047438 0.048161 +2 12 2 2 B-10 0.000000 0.000000 +3 12 2 2 B-11 0.000000 0.000000 +4 12 2 2 Zr-90 0.021193 0.017456 +5 12 2 2 Zr-91 0.007901 0.009268 +6 12 2 2 Zr-92 0.009422 0.012802 +7 12 2 2 Zr-94 0.043324 0.027551 +8 12 2 2 Zr-96 0.000000 0.000000 material group out nuclide mean std. dev. +9 12 1 H-1 0 0 +10 12 1 O-16 0 0 +11 12 1 B-10 0 0 +12 12 1 B-11 0 0 +13 12 1 Zr-90 0 0 +14 12 1 Zr-91 0 0 +15 12 1 Zr-92 0 0 +16 12 1 Zr-94 0 0 +17 12 1 Zr-96 0 0 +0 12 2 H-1 0 0 +1 12 2 O-16 0 0 +2 12 2 B-10 0 0 +3 12 2 B-11 0 0 +4 12 2 Zr-90 0 0 +5 12 2 Zr-91 0 0 +6 12 2 Zr-92 0 0 +7 12 2 Zr-94 0 0 +8 12 2 Zr-96 0 0 \ No newline at end of file diff --git a/tests/test_track_output/results_test.dat b/tests/test_track_output/results_test.dat new file mode 100644 index 0000000000..6ded87a0ec --- /dev/null +++ b/tests/test_track_output/results_test.dat @@ -0,0 +1,9 @@ + + + + + + + + + From b3646f871b0fec01af66590a08a53506eaabd108 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 12 Nov 2015 13:29:37 -0500 Subject: [PATCH 28/48] Removed test_track_output/results_test.dat and added to .gitignore --- .gitignore | 1 + tests/test_track_output/results_test.dat | 9 --------- 2 files changed, 1 insertion(+), 9 deletions(-) delete mode 100644 tests/test_track_output/results_test.dat diff --git a/.gitignore b/.gitignore index ef67316fb9..6ff974757a 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ inputs_error.dat # Test build files tests/build/ tests/ctestscript.run +tests/test_track_output/results_test.dat # HDF5 files *.h5 diff --git a/tests/test_track_output/results_test.dat b/tests/test_track_output/results_test.dat deleted file mode 100644 index 6ded87a0ec..0000000000 --- a/tests/test_track_output/results_test.dat +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - From c9cf1c536a13e9141e684678c9e462a79f0215f8 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 12 Nov 2015 13:34:54 -0500 Subject: [PATCH 29/48] Added general results_test.dat to .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6ff974757a..b2bdeba7a1 100644 --- a/.gitignore +++ b/.gitignore @@ -37,11 +37,11 @@ src/xml-fortran/xmlreader # Test results error file results_error.dat inputs_error.dat +results_test.dat # Test build files tests/build/ tests/ctestscript.run -tests/test_track_output/results_test.dat # HDF5 files *.h5 From de27a944f5cad8e1e84de092ae23d33af1d9faba Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 Nov 2015 17:05:32 -0500 Subject: [PATCH 30/48] Fixed bug in OpenCG compatibility module with Lattice outside attribute --- openmc/opencg_compatible.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 019d2aabcf..c0f6c943cb 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -877,6 +877,7 @@ def get_opencg_lattice(openmc_lattice): pitch = openmc_lattice.pitch lower_left = openmc_lattice.lower_left universes = openmc_lattice.universes + outside = openmc_lattice.outside if len(pitch) == 2: new_pitch = np.ones(3, dtype=np.float64) @@ -909,6 +910,8 @@ def get_opencg_lattice(openmc_lattice): opencg_lattice.dimension = dimension opencg_lattice.width = pitch opencg_lattice.universes = universe_array + if outside: + opencg_lattice.outside = outside offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * @@ -955,6 +958,7 @@ def get_openmc_lattice(opencg_lattice): width = opencg_lattice.width offset = opencg_lattice.offset universes = opencg_lattice.universes + outside = opencg_lattice.outside # Initialize an empty array for the OpenMC nested Universes in this Lattice universe_array = np.ndarray(tuple(np.array(dimension)), @@ -985,6 +989,8 @@ def get_openmc_lattice(opencg_lattice): openmc_lattice.pitch = width openmc_lattice.universes = universe_array openmc_lattice.lower_left = lower_left + if outside: + openmc_lattice.outside = outside # Add the OpenMC Lattice to the global collection of all OpenMC Lattices OPENMC_LATTICES[lattice_id] = openmc_lattice From 36d1b17e13f52ee5dfb59d22cfabeb36c35f7563 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 Nov 2015 17:12:30 -0500 Subject: [PATCH 31/48] OpenCG compatibility module now converts lattice outer/outside OpenMC/OpenCG appropriate version --- openmc/opencg_compatible.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index c0f6c943cb..6da21fa055 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -910,8 +910,8 @@ def get_opencg_lattice(openmc_lattice): opencg_lattice.dimension = dimension opencg_lattice.width = pitch opencg_lattice.universes = universe_array - if outside: - opencg_lattice.outside = outside + if outside != None: + opencg_lattice.outside = get_opencg_universe(outside) offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * @@ -958,7 +958,7 @@ def get_openmc_lattice(opencg_lattice): width = opencg_lattice.width offset = opencg_lattice.offset universes = opencg_lattice.universes - outside = opencg_lattice.outside + outer = opencg_lattice.outside # Initialize an empty array for the OpenMC nested Universes in this Lattice universe_array = np.ndarray(tuple(np.array(dimension)), @@ -989,8 +989,8 @@ def get_openmc_lattice(opencg_lattice): openmc_lattice.pitch = width openmc_lattice.universes = universe_array openmc_lattice.lower_left = lower_left - if outside: - openmc_lattice.outside = outside + if outer != None: + openmc_lattice.outer = get_openmc_universe(outer) # Add the OpenMC Lattice to the global collection of all OpenMC Lattices OPENMC_LATTICES[lattice_id] = openmc_lattice From 179b32ca39e16486c5e3b1e07bd5591381b10e23 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 Nov 2015 22:01:53 -0500 Subject: [PATCH 32/48] Corrected outside to outer for OpenCG lattices --- openmc/opencg_compatible.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 6da21fa055..3164c97885 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -877,7 +877,7 @@ def get_opencg_lattice(openmc_lattice): pitch = openmc_lattice.pitch lower_left = openmc_lattice.lower_left universes = openmc_lattice.universes - outside = openmc_lattice.outside + outer = openmc_lattice.outer if len(pitch) == 2: new_pitch = np.ones(3, dtype=np.float64) @@ -910,8 +910,8 @@ def get_opencg_lattice(openmc_lattice): opencg_lattice.dimension = dimension opencg_lattice.width = pitch opencg_lattice.universes = universe_array - if outside != None: - opencg_lattice.outside = get_opencg_universe(outside) + if outer != None: + opencg_lattice.outside = get_opencg_universe(outer) offset = np.array(lower_left, dtype=np.float64) - \ ((np.array(pitch, dtype=np.float64) * From c8111b1e21f14b9519b9d78a0ec673dfa15eebef Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Sat, 14 Nov 2015 22:40:36 -0500 Subject: [PATCH 33/48] Fixed get_opencg_cell routine for cells without any surfaces --- openmc/opencg_compatible.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 3164c97885..2b5c76459d 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -486,20 +486,22 @@ def get_opencg_cell(openmc_cell): # works if the region is a single half-space or an intersection of # half-spaces, i.e., no complex cells. region = openmc_cell.region - if isinstance(region, Halfspace): - surface = region.surface - halfspace = -1 if region.side == '-' else 1 - opencg_cell.add_surface(get_opencg_surface(surface), halfspace) - elif isinstance(region, Intersection): - for node in region.nodes: - if not isinstance(node, Halfspace): - raise NotImplementedError("Complex cells not yet supported " - "in OpenCG.") - surface = node.surface - halfspace = -1 if node.side == '-' else 1 + if region != None: + if isinstance(region, Halfspace): + surface = region.surface + halfspace = -1 if region.side == '-' else 1 opencg_cell.add_surface(get_opencg_surface(surface), halfspace) - else: - raise NotImplementedError("Complex cells not yet supported in OpenCG.") + elif isinstance(region, Intersection): + for node in region.nodes: + if not isinstance(node, Halfspace): + raise NotImplementedError("Complex cells not yet " + "supported in OpenCG.") + surface = node.surface + halfspace = -1 if node.side == '-' else 1 + opencg_cell.add_surface(get_opencg_surface(surface), halfspace) + else: + raise NotImplementedError("Complex cells not yet supported " + "in OpenCG.") # Add the OpenMC Cell to the global collection of all OpenMC Cells OPENMC_CELLS[cell_id] = openmc_cell From 2c19aaae74c84d7ffe5c77946d3b854404459cb0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 16 Nov 2015 08:03:52 -0500 Subject: [PATCH 34/48] Changed conditionals for lattice outer to be more Pythonic per comments by @paulromano --- openmc/opencg_compatible.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 2b5c76459d..8fc48bcf4c 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -912,7 +912,7 @@ def get_opencg_lattice(openmc_lattice): opencg_lattice.dimension = dimension opencg_lattice.width = pitch opencg_lattice.universes = universe_array - if outer != None: + if outer is not None: opencg_lattice.outside = get_opencg_universe(outer) offset = np.array(lower_left, dtype=np.float64) - \ @@ -991,7 +991,7 @@ def get_openmc_lattice(opencg_lattice): openmc_lattice.pitch = width openmc_lattice.universes = universe_array openmc_lattice.lower_left = lower_left - if outer != None: + if outer is not None: openmc_lattice.outer = get_openmc_universe(outer) # Add the OpenMC Lattice to the global collection of all OpenMC Lattices From c38fcdc073fd8c14d4fe96f49377ced65c28b41d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 16 Nov 2015 08:06:43 -0500 Subject: [PATCH 35/48] Changed conditionals for cell region to be more Pythonic per comments by @paulromano --- openmc/opencg_compatible.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 8fc48bcf4c..93c0e5fae7 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -486,7 +486,7 @@ def get_opencg_cell(openmc_cell): # works if the region is a single half-space or an intersection of # half-spaces, i.e., no complex cells. region = openmc_cell.region - if region != None: + if region is not None: if isinstance(region, Halfspace): surface = region.surface halfspace = -1 if region.side == '-' else 1 From b8e9e25da8cbedc7af7e4826de19c65f7f0497ec Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 20:04:56 -0500 Subject: [PATCH 36/48] Added fine granularity control for MGXS Libraries --- openmc/mgxs/library.py | 52 ++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 4c173f81a9..2a293cb0ba 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -53,6 +53,8 @@ class Library(object): The types of cross sections in the library (e.g., ['total', 'scatter']) domain_type : {'material', 'cell', 'distribcell', 'universe'} Domain type for spatial homogenization + domains : Iterable of Material, Cell or Universe + The spatial domain(s) for which MGXS in the Library are computed correction : 'P0' or None Apply the P0 correction to scattering matrices if set to 'P0' energy_groups : EnergyGroups @@ -80,6 +82,7 @@ class Library(object): self._by_nuclide = None self._mgxs_types = [] self._domain_type = None + self._domains = 'all' self._correction = 'P0' self._energy_groups = None self._tally_trigger = None @@ -105,6 +108,7 @@ class Library(object): clone._by_nuclide = self.by_nuclide clone._mgxs_types = self.mgxs_types clone._domain_type = self.domain_type + clone._domains = self.domains clone._correction = self.correction clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._tally_trigger = copy.deepcopy(self.tally_trigger, memo) @@ -153,22 +157,24 @@ class Library(object): def by_nuclide(self): return self._by_nuclide - @property - def domains(self): - if self.domain_type is None: - raise ValueError('Unable to get all domains without a domain type') - - if self.domain_type == 'material': - return self.openmc_geometry.get_all_materials() - elif self.domain_type == 'cell' or self.domain_type == 'distribcell': - return self.openmc_geometry.get_all_material_cells() - elif self.domain_type == 'universe': - return self.openmc_geometry.get_all_universes() - @property def domain_type(self): return self._domain_type + @property + def domains(self): + if self._domains == 'all': + if self.domain_type == 'material': + return self.openmc_geometry.get_all_materials() + elif self.domain_type == 'cell' or self.domain_type == 'distribcell': + return self.openmc_geometry.get_all_material_cells() + elif self.domain_type == 'universe': + return self.openmc_geometry.get_all_universes() + else: + raise ValueError('Unable to get domains without a domain type') + else: + return self._domains + @property def correction(self): return self._correction @@ -223,6 +229,28 @@ class Library(object): cv.check_value('domain type', domain_type, tuple(openmc.mgxs.DOMAIN_TYPES)) self._domain_type = domain_type + @domains.setter + def domains(self, domains): + + # Use all materials, cells or universes in the geometry as domains + if domains == 'all': + self._domains = domains + + # User specified a list of material, cell or universe domains + else: + if self.domain_type == 'material': + cv.check_iterable_type('domain', domains, openmc.Material) + elif self.domain_type == 'cell': + cv.check_iterable_type('domain', domains, openmc.Cell) + elif self.domain_type == 'universe': + cv.check_iterable_type('domain', domains, openmc.Universe) + else: + msg = 'Unable to set domains with ' \ + 'domain type "{}"'.format(self.domain_type) + raise ValueError(msg) + + self._domains = domains + @correction.setter def correction(self, correction): cv.check_value('correction', correction, ('P0', None)) From d74dc64bd01ece1fd85ddaf46b99d8df9409ce85 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 20:09:56 -0500 Subject: [PATCH 37/48] MGXS Library domains setter now works for distribcells --- openmc/mgxs/library.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 2a293cb0ba..ee9ffc4fa3 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -166,7 +166,7 @@ class Library(object): if self._domains == 'all': if self.domain_type == 'material': return self.openmc_geometry.get_all_materials() - elif self.domain_type == 'cell' or self.domain_type == 'distribcell': + elif self.domain_type in ['cell', 'distribcell']: return self.openmc_geometry.get_all_material_cells() elif self.domain_type == 'universe': return self.openmc_geometry.get_all_universes() @@ -240,7 +240,7 @@ class Library(object): else: if self.domain_type == 'material': cv.check_iterable_type('domain', domains, openmc.Material) - elif self.domain_type == 'cell': + elif self.domain_type in ['cell', 'distribcell']: cv.check_iterable_type('domain', domains, openmc.Cell) elif self.domain_type == 'universe': cv.check_iterable_type('domain', domains, openmc.Universe) From 698dba369b2655a7c1ce1d2117efcc642330e087 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 20:31:22 -0500 Subject: [PATCH 38/48] Added colorize routine to Python API Plot class to generate random color schemes --- openmc/plots.py | 97 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 67 insertions(+), 30 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index 6cff095ec0..449374a3f4 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -5,9 +5,9 @@ import sys import numpy as np +import openmc +import openmc.checkvalue as cv from openmc.clean_xml import * -from openmc.checkvalue import (check_type, check_value, check_length, - check_greater_than, check_less_than) if sys.version_info[0] >= 3: basestring = str @@ -143,70 +143,70 @@ class Plot(object): self._id = AUTO_PLOT_ID AUTO_PLOT_ID += 1 else: - check_type('plot ID', plot_id, Integral) - check_greater_than('plot ID', plot_id, 0, equality=True) + cv.check_type('plot ID', plot_id, Integral) + cv.check_greater_than('plot ID', plot_id, 0, equality=True) self._id = plot_id @name.setter def name(self, name): - check_type('plot name', name, basestring) + cv.check_type('plot name', name, basestring) self._name = name @width.setter def width(self, width): - check_type('plot width', width, Iterable, Real) - check_length('plot width', width, 2, 3) + cv.check_type('plot width', width, Iterable, Real) + cv.check_length('plot width', width, 2, 3) self._width = width @origin.setter def origin(self, origin): - check_type('plot origin', origin, Iterable, Real) - check_length('plot origin', origin, 3) + cv.check_type('plot origin', origin, Iterable, Real) + cv.check_length('plot origin', origin, 3) self._origin = origin @pixels.setter def pixels(self, pixels): - check_type('plot pixels', pixels, Iterable, Integral) - check_length('plot pixels', pixels, 2, 3) + cv.check_type('plot pixels', pixels, Iterable, Integral) + cv.check_length('plot pixels', pixels, 2, 3) for dim in pixels: - check_greater_than('plot pixels', dim, 0) + cv.check_greater_than('plot pixels', dim, 0) self._pixels = pixels @filename.setter def filename(self, filename): - check_type('filename', filename, basestring) + cv.check_type('filename', filename, basestring) self._filename = filename @color.setter def color(self, color): - check_type('plot color', color, basestring) - check_value('plot color', color, ['cell', 'mat']) + cv.check_type('plot color', color, basestring) + cv.check_value('plot color', color, ['cell', 'mat']) self._color = color @type.setter def type(self, plottype): - check_type('plot type', plottype, basestring) - check_value('plot type', plottype, ['slice', 'voxel']) + cv.check_type('plot type', plottype, basestring) + cv.check_value('plot type', plottype, ['slice', 'voxel']) self._type = plottype @basis.setter def basis(self, basis): - check_type('plot basis', basis, basestring) - check_value('plot basis', basis, ['xy', 'xz', 'yz']) + cv.check_type('plot basis', basis, basestring) + cv.check_value('plot basis', basis, ['xy', 'xz', 'yz']) self._basis = basis @background.setter def background(self, background): - check_type('plot background', background, Iterable, Integral) - check_length('plot background', background, 3) + cv.check_type('plot background', background, Iterable, Integral) + cv.check_length('plot background', background, 3) for rgb in background: - check_greater_than('plot background',rgb, 0, True) - check_less_than('plot background', rgb, 256) + cv.check_greater_than('plot background',rgb, 0, True) + cv.check_less_than('plot background', rgb, 256) self._background = background @col_spec.setter def col_spec(self, col_spec): - check_type('plot col_spec parameter', col_spec, dict, Integral) + cv.check_type('plot col_spec parameter', col_spec, dict, Integral) for key in col_spec: if key < 0: @@ -229,18 +229,18 @@ class Plot(object): @mask_componenets.setter def mask_components(self, mask_components): - check_type('plot mask_components', mask_components, Iterable, Integral) + cv.check_type('plot mask_components', mask_components, Iterable, Integral) for component in mask_components: - check_greater_than('plot mask_components', component, 0, True) + cv.check_greater_than('plot mask_components', component, 0, True) self._mask_components = mask_components @mask_background.setter def mask_background(self, mask_background): - check_type('plot mask background', mask_background, Iterable, Integral) - check_length('plot mask background', mask_background, 3) + cv.check_type('plot mask background', mask_background, Iterable, Integral) + cv.check_length('plot mask background', mask_background, 3) for rgb in mask_background: - check_greater_than('plot mask background', rgb, 0, True) - check_less_than('plot mask background', rgb, 256) + cv.check_greater_than('plot mask background', rgb, 0, True) + cv.check_less_than('plot mask background', rgb, 256) self._mask_background = mask_background def __repr__(self): @@ -261,6 +261,43 @@ class Plot(object): string += '{0: <16}{1}{2}\n'.format('\tCol Spec', '=\t', self._col_spec) return string + def colorize(self, geometry, seed=1): + """Generate a color scheme for each domain in the plot. + + This routine may be used to generate random, reproducible color schemes. + The colors generated are based upon cell/material IDs in the geometry. + + Params + ------ + geometry : openmc.Geometry + The geometry for which the plot is created + seed : Integral + The random number seed used to generate the color scheme + + """ + + cv.check_type('geometry', geometry, openmc.Geometry) + cv.check_type('seed', seed, Integral) + cv.check_greater_than('seed', seed, 1, equality=True) + + # Get collections of the domains which will be plotted + if self.color is 'mat': + domains = geometry.get_all_materials() + else: + domains = geometry.get_all_materials() + + # Set the seed for the random number generator + np.random.seed(seed) + + # Generate random colors for each feature + self.col_spec = {} + for domain in domains: + r = np.random.randint(0, 255) + g = np.random.randint(0, 255) + b = np.random.randint(0, 255) + self.col_spec[domain.id] = (r, g, b) + + def get_plot_xml(self): """Return XML representation of the plot From 64a7cd960728407df4ea3f9376b362b1a7aa070f Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 20:39:03 -0500 Subject: [PATCH 39/48] Added colorize routine to PlotsFile --- openmc/plots.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openmc/plots.py b/openmc/plots.py index 449374a3f4..acc7d4d13c 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -386,6 +386,25 @@ class PlotsFile(object): self._plots.remove(plot) + def colorize(self, geometry, seed=1): + """Generate a consistent color scheme for each domain in each plot. + + This routine may be used to generate random, reproducible color schemes. + The colors generated are based upon cell/material IDs in the geometry. + The color schemes will be consistent for all plots in "plots.xml". + + Params + ------ + geometry : openmc.Geometry + The geometry for which the plots are defined + seed : Integral + The random number seed used to generate the color scheme + + """ + + for plot in self._plots: + plot.colorize(geometry, seed) + def _create_plot_subelements(self): for plot in self._plots: xml_element = plot.get_plot_xml() From 372d751fa64967443adcc655bed2bf3d89512822 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 21:18:26 -0500 Subject: [PATCH 40/48] Added alpha compositing scheme to Python API Plot class to highlight domains --- openmc/plots.py | 60 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index acc7d4d13c..d04f9a036e 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -270,7 +270,7 @@ class Plot(object): Params ------ geometry : openmc.Geometry - The geometry for which the plot is created + The geometry for which the plot is defined seed : Integral The random number seed used to generate the color scheme @@ -284,7 +284,7 @@ class Plot(object): if self.color is 'mat': domains = geometry.get_all_materials() else: - domains = geometry.get_all_materials() + domains = geometry.get_all_cells() # Set the seed for the random number generator np.random.seed(seed) @@ -295,9 +295,63 @@ class Plot(object): r = np.random.randint(0, 255) g = np.random.randint(0, 255) b = np.random.randint(0, 255) - self.col_spec[domain.id] = (r, g, b) + self.col_spec[domain] = (r, g, b) + def highlight_domains(self, geometry, domains, seed=1, + alpha=0.5, background='grey'): + """Use alpha compositing to highlight one or more domains in the plot. + + This routine generates a color scheme and applies alpha compositing + to make all domains except the highlighted ones partially transparent. + + Params + ------ + geometry : openmc.Geometry + The geometry for which the plot is defined + domains : Iterable of Integral + A collection of the domain IDs to highlight in the plot + seed : Integral + The random number seed used to generate the color scheme + alpha : Real in [0,1] + The value to apply in alpha compisiting + background : 3-tuple of Integral or 'white' or 'black' or 'grey' + The background color to apply in alpha compisiting + + """ + + cv.check_iterable_type('domains', domains, Integral) + cv.check_type('alpha', alpha, Real) + cv.check_greater_than('alpha', alpha, 0., equality=True) + cv.check_less_than('alpha', alpha, 1., equality=True) + + # Get a background (R,G,B) tuple to apply in alpha compositing + if isinstance(background, basestring): + if background == 'white': + background = (255, 255, 255) + elif background == 'black': + background = (0, 0, 0) + elif background == 'grey': + background = (160, 160, 160) + else: + msg = 'The background "{}" is not defined'.format(background) + raise ValueError(msg) + + cv.check_iterable_type('background', background, Integral) + + # Generate a color scheme + self.colorize(geometry, seed) + + # Apply alpha compositing to the colors for all domains + # other than those the user wishes to highlight + for domain_id in self.col_spec: + if domain_id not in domains: + r, g, b = self.col_spec[domain_id] + r = int(((1-alpha) * background[0]) + (alpha * r)) + g = int(((1-alpha) * background[1]) + (alpha * g)) + b = int(((1-alpha) * background[2]) + (alpha * b)) + self._col_spec[domain_id] = (r, g, b) + def get_plot_xml(self): """Return XML representation of the plot From 0933cd7e8aa74d8a6f39bcc901de4e2bb2de9273 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 21:19:42 -0500 Subject: [PATCH 41/48] Added alpha compositing routine to PlotsFile in Python API --- openmc/plots.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/openmc/plots.py b/openmc/plots.py index d04f9a036e..aedc6ed41b 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -459,6 +459,32 @@ class PlotsFile(object): for plot in self._plots: plot.colorize(geometry, seed) + + def highlight_domains(self, geometry, domains, seed=1, + alpha=0.5, background='grey'): + """Use alpha compositing to highlight one or more domains in the plot. + + This routine generates a color scheme and applies alpha compositing + to make all domains except the highlighted ones partially transparent. + + Params + ------ + geometry : openmc.Geometry + The geometry for which the plot is defined + domains : Iterable of Integral + A collection of the domain IDs to highlight in the plot + seed : Integral + The random number seed used to generate the color scheme + alpha : Real in [0,1] + The value to apply in alpha compisiting + background : 3-tuple of Integral or 'white' or 'black' or 'grey' + The background color to apply in alpha compisiting + + """ + + for plot in self._plots: + plot.highlight_domains(geometry, domains, seed, alpha, background) + def _create_plot_subelements(self): for plot in self._plots: xml_element = plot.get_plot_xml() From 59f9b77333710b26300afddd32d556aa00536564 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 17 Nov 2015 21:21:14 -0500 Subject: [PATCH 42/48] Fixed bug in Plot.colorize() for cell plots --- openmc/plots.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index acc7d4d13c..e805e09d27 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -284,7 +284,7 @@ class Plot(object): if self.color is 'mat': domains = geometry.get_all_materials() else: - domains = geometry.get_all_materials() + domains = geometry.get_all_cells() # Set the seed for the random number generator np.random.seed(seed) @@ -295,7 +295,7 @@ class Plot(object): r = np.random.randint(0, 255) g = np.random.randint(0, 255) b = np.random.randint(0, 255) - self.col_spec[domain.id] = (r, g, b) + self.col_spec[domain] = (r, g, b) def get_plot_xml(self): From 4d3c97f6989ff385b09fbcc4d8e7f5e1bb70cdc4 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 18 Nov 2015 11:01:12 -0500 Subject: [PATCH 43/48] Made upper bound for random colors 256 per comments by @paulromano --- openmc/plots.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index e805e09d27..41254d832d 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -267,8 +267,8 @@ class Plot(object): This routine may be used to generate random, reproducible color schemes. The colors generated are based upon cell/material IDs in the geometry. - Params - ------ + Parameters + ---------- geometry : openmc.Geometry The geometry for which the plot is created seed : Integral @@ -292,9 +292,9 @@ class Plot(object): # Generate random colors for each feature self.col_spec = {} for domain in domains: - r = np.random.randint(0, 255) - g = np.random.randint(0, 255) - b = np.random.randint(0, 255) + r = np.random.randint(0, 256) + g = np.random.randint(0, 256) + b = np.random.randint(0, 256) self.col_spec[domain] = (r, g, b) @@ -393,8 +393,8 @@ class PlotsFile(object): The colors generated are based upon cell/material IDs in the geometry. The color schemes will be consistent for all plots in "plots.xml". - Params - ------ + Parameters + ---------- geometry : openmc.Geometry The geometry for which the plots are defined seed : Integral From 0c7d58457e2738c1373c1e9747462434721c68fe Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 18 Nov 2015 11:04:09 -0500 Subject: [PATCH 44/48] Now using American English for gray (not grey) in alpha transparency --- openmc/plots.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index e0237f525d..0f12c8a93a 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -298,7 +298,7 @@ class Plot(object): self.col_spec[domain] = (r, g, b) def highlight_domains(self, geometry, domains, seed=1, - alpha=0.5, background='grey'): + alpha=0.5, background='gray'): """Use alpha compositing to highlight one or more domains in the plot. This routine generates a color scheme and applies alpha compositing @@ -314,7 +314,7 @@ class Plot(object): The random number seed used to generate the color scheme alpha : Real in [0,1] The value to apply in alpha compisiting - background : 3-tuple of Integral or 'white' or 'black' or 'grey' + background : 3-tuple of Integral or 'white' or 'black' or 'gray' The background color to apply in alpha compisiting """ @@ -330,7 +330,7 @@ class Plot(object): background = (255, 255, 255) elif background == 'black': background = (0, 0, 0) - elif background == 'grey': + elif background == 'gray': background = (160, 160, 160) else: msg = 'The background "{}" is not defined'.format(background) @@ -460,7 +460,7 @@ class PlotsFile(object): def highlight_domains(self, geometry, domains, seed=1, - alpha=0.5, background='grey'): + alpha=0.5, background='gray'): """Use alpha compositing to highlight one or more domains in the plot. This routine generates a color scheme and applies alpha compositing @@ -476,7 +476,7 @@ class PlotsFile(object): The random number seed used to generate the color scheme alpha : Real in [0,1] The value to apply in alpha compisiting - background : 3-tuple of Integral or 'white' or 'black' or 'grey' + background : 3-tuple of Integral or 'white' or 'black' or 'gray' The background color to apply in alpha compisiting """ From 7abbee6df69a0c50e4167b07f3173a31c258a820 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 18 Nov 2015 11:05:10 -0500 Subject: [PATCH 45/48] Revised docstring Params -> Parameters for alpha transparency --- openmc/plots.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openmc/plots.py b/openmc/plots.py index 0f12c8a93a..636ca225cb 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -302,10 +302,11 @@ class Plot(object): """Use alpha compositing to highlight one or more domains in the plot. This routine generates a color scheme and applies alpha compositing - to make all domains except the highlighted ones partially transparent. + to make all domains except the highlighted ones appear partially + transparent. - Params - ------ + Parameters + ---------- geometry : openmc.Geometry The geometry for which the plot is defined domains : Iterable of Integral @@ -466,8 +467,8 @@ class PlotsFile(object): This routine generates a color scheme and applies alpha compositing to make all domains except the highlighted ones partially transparent. - Params - ------ + Parameters + ---------- geometry : openmc.Geometry The geometry for which the plot is defined domains : Iterable of Integral From cfe1f1dfcd420bc235432c3edef5848e45f6076f Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 18 Nov 2015 11:10:31 -0500 Subject: [PATCH 46/48] Added check to MGXS Library domains setter to compare with domains in geometry --- openmc/mgxs/library.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index ee9ffc4fa3..9def79eeb2 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -240,15 +240,24 @@ class Library(object): else: if self.domain_type == 'material': cv.check_iterable_type('domain', domains, openmc.Material) + all_domains = self.openmc_geometry.get_all_materials() elif self.domain_type in ['cell', 'distribcell']: cv.check_iterable_type('domain', domains, openmc.Cell) + all_domains = self.openmc_geometry.get_all_material_cells() elif self.domain_type == 'universe': cv.check_iterable_type('domain', domains, openmc.Universe) + all_domains = self.openmc_geometry.get_all_universes() else: msg = 'Unable to set domains with ' \ 'domain type "{}"'.format(self.domain_type) raise ValueError(msg) + # Check that each domain can be found in the geometry + for domain in domains: + if domain not in all_domains: + msg = 'Domain "{}" could not be found in the geometry' + raise ValueError(msg) + self._domains = domains @correction.setter From 9e4cd5ae2b0c6d437efb6b574c703f41eaf40882 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 18 Nov 2015 11:57:36 -0500 Subject: [PATCH 47/48] Fixed typo in error checking in MGXS Library domains setter per comment by @nelsonag --- openmc/mgxs/library.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index 9def79eeb2..87c6665b2d 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -255,7 +255,8 @@ class Library(object): # Check that each domain can be found in the geometry for domain in domains: if domain not in all_domains: - msg = 'Domain "{}" could not be found in the geometry' + msg = 'Domain "{}" could not be found in the ' \ + 'geometry.'.format(domain) raise ValueError(msg) self._domains = domains From a592f2ad1501aa8cb8c7f4e813ea335628ab70e0 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 19 Nov 2015 07:16:48 -0600 Subject: [PATCH 48/48] Extend length of string for reading region specification to 1000 --- src/input_xml.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index ae01b0b5cc..5449b169dd 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -994,7 +994,7 @@ contains logical :: boundary_exists character(MAX_LINE_LEN) :: filename character(MAX_WORD_LEN) :: word - character(MAX_LINE_LEN) :: region_spec + character(1000) :: region_spec type(Cell), pointer :: c class(Surface), pointer :: s class(Lattice), pointer :: lat